Automatisation de création d'onglet

Bonjour à tous.

Me revoici avec un nouveau projet et défi!

Voici un fichier, aucune donnée confidentielle donc tout va bien.

Ce fichier représente l'état des gestionnaires par magasin (onglet "Structure général magasins"), et d'autres onglets représentent individuellement les développements des gestionnaires (Sylvain Baron, ou Mona Sammoud par exemple).

Ne vous préoccupez pas des onglets ils ne sont pas encore terminé ni mis en forme.

Le but est de suivre le développement des gestionnaires.

Mon défi est de faire une sorte de mini boîte de dialogue apparaissant à l'ouverture du fichier avec les choix suivants :

"Que voulez-vous faire"?

  1. "Consulter la structure des magasins"
    1. L'onglet "Structure général magasins" s'ouvre
  2. "Consulter la fiche de développement d'un gestionnaire"
    1. Une boîte de recherche apparaît : "saisir le nom" (le must serait de proposer des noms au fur et à mesure de la saisie) et valider
    2. l'onglet de la fiche individuelle correspondant au nom s'ouvre
  3. "Créer une nouvelle fiche de développement"
    1. L'onglet type de développement (qui sera masqué) se recopie alors en dernier
    2. le superviseur note alors le nom du gestionnaire
    3. le nom du gestionnaire inscrit se rajoute automatiquement dans une base de donnée dynamique masquée (pour la recherche)
    4. si possible le nom du gestionnaire se recopie automatiquement dans l'onglet

La boîte de dialogue se réduit en une icone bouton lorsque l'on clique ailleurs dans la feuille, et se développe lorsque l'on clique sur l'icone

Qu'en dites-vous? trop compliqué?

Merci d'avance pour votre aide comme d'habitude

Laurent

Ce n'est pas "trop compliqué". De mon côté, j'aurais terminé si tu nous avais fourni une base de données factice et un onglet de développement type.

Mais là n'est pas le but de mon intervention. Il s'agit-là d'une appli clé en main que tu aimerais qu'on développe pour toi. Alors, je proposerais à la modération du site d'ouvrir un service payant (une adhésion "Premium" par exemple) pour ce type de demande.

Personne pour répondre à Optimix parmi les administrateurs? Je n'ai pas lu la charte du site. Le demandeur va aussi tenter sa chance ailleurs. Le travail gratuit est du travail dissimulé? Cela n'incite pas à embaucher?

Bonjour Optimix et Scraper

Vous y allez fort je trouve... car le fichier n'est pas encore terminé donc on est loin de quelque chose de "clé en main", surtout si on m'explique les raisonnements que je peux reproduire pour plus tard.

Le travail gratuit est du travail dissimulé?

Vraiment les gars, sérieux? Toutes les réponses que l'on trouve sur le forum seraient donc du travail dissimulé? Donc sous entendons que tout ce qui se fait ici serait illégal?

Honnêtement, si vous pensez comme ça vous devriez remettre en question votre présence ici, car si vous ne voulez pas faire partie du développement des gens, de leur apprentissage ou de l'aide apportée, pourquoi êtes-vous ici si n'est pour renvoyer les personnes ailleurs?

Je suis juste... wow... première fois dans un forum (et j'en ai parcouru plein de différents) qu'on me sort ça...

Je ne suis pas fort du tout en VBA donc je cherche de l'aide, mais vous c'est juste : "paye moi et je le te fais" ou "va voir ailleurs!"

On est loin de l'entraide, du partage du savoir etc...

Je suis technicien à la formation et ce genre de discours, ça me fait vraiment mal de l'entendre... Je demande juste de l'aide et qu'on m'explique comment tel ou tel personne a fait pour en arriver à tel résultat... mais bon... chacun ses valeurs n'est-ce pas?

Bonjour à tous,

Tout d'abord merci pour la description précise de la problématique.

Mon avis personnel sur la question est qu'un fichier de ce type dérive très souvent sur d'autres demandes complémentaires à ce dernier, qui demandent un temps de développement conséquent, et qui, parfois, sont soumis à facturation par certaines sociétés il est vrai, tout comme par exemple des cours de formation EXCEL que l'on pourrait trouver ici. C'est pourquoi la construction de fichier très élaborés en partant de quasiment rien peut être mal perçue.

Sans compter la maintenance derrière en cas de bug, qui est encore plus chronophage pour quelqu'un qui n'est pas à l'origine du code.

Là au vu de votre besoin ça ne me semble pas infaisable, mais tout dépend des prochaines étapes que vous allez demander le cas échéant.

Je vous joins donc mon jet qui répond, si j'ai bien tout compris et lu à l'ensemble des points :

'USERFORM 1 :
Private Sub CommandButton1_Click()
Worksheets("Structure général magasins").Activate
Unload Me
End Sub

Private Sub CommandButton2_Click()
Unload Me
UserForm2.Show
End Sub

Private Sub CommandButton3_Click()
Dim NOM$
NOM = InputBox("Merci d'entrer le nom du nouveau gestionnaire", "Nouveau gestionnaire")
With Worksheets("base de donnée gestionnaire")
    .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row + 1, 1) = NOM
End With
Worksheets("Fiche Type gestionnaire").Copy After:=Worksheets(Worksheets.Count)
With Worksheets(Worksheets.Count)
    .Visible = 1
    .Name = NOM
    .Tab.ColorIndex = 50
    .[C2] = NOM
End With
Unload Me
End Sub

'USERFORM 2 :
Private Sub CommandButton1_Click()
On Error GoTo ERREUR
Worksheets(CStr(Me.ComboBox1)).Activate
Unload Me
Exit Sub

ERREUR:
MsgBox "Aucune feuille avec ce nom n'a été trouvé", vbCritical + vbOKOnly
End Sub

Private Sub UserForm_Initialize()
Dim L As Byte
With Worksheets("base de donnée gestionnaire")
    For L = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
        Me.ComboBox1.AddItem .Cells(L, 1)
    Next L
End With
End Sub

A adapter à votre convenance.

Il serait aussi possible de masquer toutes les feuilles de gestionnaires sauf sélection, mais ce n'était pas votre demande donc j'ai écarté ce cas et ne me suis limité qu'à votre demande.

Pour ce qui est de l'aspect de la macro toujours visible ce que je vous conseille : c'est d'intégrer la macro directement dans votre ruban EXCEL afin d'y avoir accès sur ce fichier :

image

Cdlt,

Bonjour,

Bon je vais modérer mes propos... J'avoue y être aller un peu fort effectivement.

En fait ce que je souhaite par dessus tout, c'est apprendre et comprendre. Donc le fait d'acheter quelque chose ne m'apporte absolument rien, mis à part d'avoir un beau produit fini tout propre mais c'est tout. Le but c'est de se développer et de devenir meilleur.

Donc le fait de demander tout ceci ici dans ce forum et d'autres aussi sur d'autres sujets me permet de pouvoir comprendre et de pouvoir reproduire tout ou partie de ce que les autres, vous, m'apprenez.

Donc je m'excuse sincèrement auprès de la communauté pour mes propos un peu vifs qui n'ont rien à faire ici.

Pour ton travail Ergotamine, je te remercie vraiment c'est efficace et ça fonctionne super!

Je vais regarder de plus près le code pour bien le comprendre. Je te reviens si j'ai des questions.

Sur ton opinion oui je comprends tout à fait ce que tu dis et oui j'avoue j'aime quand c'est précis et ça me joue des tours parfois, être trop pointilleux ou perfectionniste c'est pas facile tous les jours...

Bonjour,

Après avoir pris le temps de regarder, je trouve vraiment cool tout ça.

J'ai remarqué que si je masque l'onglet d'un gestionnaire (si j'ai beaucoup de gestionnaires par exemple) je peux toujours faire la requête ça me propose toujours le nom, mais l'onglet de s'affiche pas lors de la validation de ma recherche (il reste masqué donc).

Est-ce qu'un bout de code comme ça pourrait fonctionner si on l'insère au bon endroit (je ne sais pas où)?

Sub Afficher_onglet_masqué()
' Afficher_onglet_masqué Macro
Sheets("Baron Sylvain").Visible = True
Sheets("Baron Sylvain").Open
End Sub

(je ne sais pas comment faire pour le paramétrer en fonction de la recherche effectuée et si l'onglet est masqué ou non)

Pour ce qui est d'afficher la macro dans le ruban c'est une fonction que je ne connaissais pas et qui est intéressante. Donc merci.

Mais j'ai des collègues où la manipulation de fichiers excel doit être facile, et je sais qu'il est possible de créer un bouton toujours visible sur la feuille, j'ai essayé de le créer mais je n'arrive pas à retrouver la macro que tu as créée, elle est intégrée quelque part?

Enfin, j'ai remarqué que si on se trompe dans le nom du nouveau gestionnaire, l'erreur dans le nom se retrouve dans la base de donnée et dans l'onglet aussi (c'est ce que l'on veut aussi en quelque sorte), mais si je corrige le nom dans la case NOM DU GESTIONNAIRE rien ne change. Y a-t-il un moyen pour que la correction soit reprise dans l'onglet et la base de donnée des noms?

Merci d'avance et bonne journée

Laurent

Bonjour,

Une V2 suite à vos commentaires. J'ai ajouté un USERFORM 3 afin que vous ayez toujours accès au menu.

Cdlt,

Hello,

Effectivement nous pouvons avoir accès en tout temps au menu c'est super.

Je ne trouve toujours pas le code que tu as écrit car je souhaiterais pouvoir le comprendre par moi-même aussi (d'où mes demande sur ce forum aussi ). Surtout également que la fiche type n'est pas terminée d'être mise en forme donc si ça change de cellule pour y inscrire le nom, il faut que je le fasse aussi dans le code.

J'ai fait un essai et la recherche de nom ne se fait que dans un ordre précis. Si je cherche Sylvain Baron (recherché comme tel), Excel ne le trouvera pas et ne me le proposera pas si il a été inscrit comme Baron Sylvain. Et ça, mes collègues sont parfois un peu rebelle sur ce genre de précision.

Ça me pose problème dans d'autres tableaux, et c'est couru d'avance que là aussi ça va être la même chose. Pourtant je n'ai pas vu de recherche dans ton code, comment ça fonctionne?

Enfin, je suppose que ça va devenir trop compliqué de demander au code de vérifier que les fiches correspondent toujours à la liste des gestionnaires, car malheureusement nous en avons qui nous quittent et donc c'est inutile de conserver des données sur eux (je les exporterai ailleurs pour archivage mais pas sur ce fichier). J'ai fait le test et si je supprime un onglet, le nom reste. Ça risque d'alourdir la recherche.

J'ai aussi tenté de faire un classement alphabétique mais la liste de s'actualise pas quand on rajoute un nom. Apparemment il faut l'inclure dans le code et pas juste en faire un tableau . J'ai regardé sur le forum, mais je ne suis pas plus avancé car ce n'est pas les mêmes critères que les miens.

Mais sinon on s'approche du but!

En tout cas merci pour le temps passé.

Bonjour,

Une nouvelle version avec :
- Tri des noms lors de l'ajout d'une nouvelle feuille
- Suppression d'un gestionnaire après consultation de sa feuille, que ce soit la feuille ou son nom dans la BDD
- Allègement du code en cas de feuille non trouvée

Pour le code il se trouve dans :
- ThisWorkbook
- Module 1
- UserForm1 à 3 (double cliquez dessus)

Pour votre question par rapport à vos collègues vous leur expliquerez que l'intérêt d'avoir une combobox n'est pas de taper le nom dedans mais de la sélectionner. Sinon autant mettre un textbox. Je ne gère pas l'inversion nom/prénom désolé, car si je commence à me lancer, vous risquez de tomber dans le développement spécifique (Cf. les besoins sur mon premier sujet).

Cdlt,

Bonjour,

Merci pour ta mise à jour.

Je le teste auprès de mes collègues actuellement et j'aurai du feed-back.

Mais de mon point de vue c'est pas mal complet.

J'ai effectivement trouvé le code merci

Je te reviens avec mes commentaires.

Bonne journée

Rechercher des sujets similaires à "automatisation creation onglet"