Ensuite, lorsque je sélectionne un élément de ma liste, j'ai la possibilité de cliquer sur un bouton, ce qui actionne ma macro numéro 2.
Sauriez-vous comment faire pour automatiser la seconde étape, à savoir, sélectionner tous les éléments de ma liste, et leur appliquer un par un la macro, sachant que si la sélection arrive sur une cellule vide, alors la macro s'arrête ?
Ne serait-il pas utile de voir ton code VBA?
Il pourrait également n'être pas inutile que tu joignes un fichier exemple avec ta liste et ton code vba existant dedans?
Il se pourrait que cela nous aide à t'aider, non ?
PS: il serait surtout utile que tu changes de lunettes
Bonjour Staple1600. Milles excuses. Je vais corriger cela.
Je ne peux malheureusement pas vous joindre ce document qui est plutôt sensible. J'en suis vraiment désolé et embêté. Je sais que cela permetrait de mieux visualiser.
Mais ma logique voulait appliquer ceci :
"Selection par Range de la liste (qui contient des noms),
Pour chaque cellule, activer la macro,
si la cellule suivante est vide (ne contient pas de nom), arrêt."
A priori faire une boucle sur les éléments de la liste et pour chaque éléments si l'élément n'est pas vide lancer le code de la macro, sinon sortir de la boucle.
Je ne peux malheureusement pas vous joindre ce document qui est plutôt sensible. J'en suis vraiment désolé et embêté. Je sais que cela permetrait de mieux visualiser.
Il te suffit de créer un fichier exemple sans données confidentielles mais qui reproduit l'agencement de ton fichier original.
(avec des données du type NOM1, PRENOM1 etc...)
PS: On ne joint jamais ici un fichier original.
Le demandeur doit juste prendre le temps de créer un fichier exemple qui illustre le problème rencontre et/ou le résultat à obtenir
Merci de vos réponses. Je vais tacher de vous poster un modèle afin de mieux visualiser, il est vrai que cela serait plus simple.
En attendant, Voici un bout du code de ma macro...qui s'avère être plus du bidouillage qu'autre chose, mais je suis très débutant, veuillez m'en excuser.
Elle fonctionne chez moi sous 2007, mais pas sous 97 sur mon lieu de travail. Enfin, j'ai une erreur de débogage à la fin que je ne parviens pas à résoudre. Cela m'indique : Erreur d'exécution '1004'. (Bien que cette macro fonctionne et me génère toutes mes fiches)
Voici mon code VBA de ma macro qui génère automatiquement toutes les fiches de ma liste :
VB:
Sub generateurM14()
'Je détermine ma variable du début de la liste
Dim ma_variable As Currency
ma_variable = Range("B16").Select
'Je détermine ma variable de référence qui compte les objets de ma liste grace à NBVAL(B16:B200). Les objets de ma liste sont toujours aléatoires.
Dim Limite As Currency
Limite = Range("B14")
'Je sélectionne ma cellule de départ
Range("B16").Select
'...jusqu'à ce que ma_variable arrive à la valeur de ma limite
Do Until ma_variable = Limite
'Lancer la macro de génération de fiche
ma_variable = ma_variable + 1
Application.Run ("ficheM14")
'sélectionner la feuille création de fiches
Sheets("Création des fiches").Select
'se déplacer à la valeur du dessous
ActiveCell.Offset(1, 0).Select
'recommencer...
Loop
End Sub
Merci de votre aide. Je tache de joindre un fichier le plus vite possible.
Voici une image pour visualiser un peu ce "générateur" :
Ici, l'étape 2 permet de faire du cas par cas, alors que l'étape 3 génére toutes les fiches de la liste d'un seul coup.
Il y a deux "générateurs" sur cette feuille, ils ont le même principe.