Enchaînement de macros
Résolu
ridel66
Messages postés
73
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour tout le monde,
Comment faire pour executer deux macros à la suite l'une de l'autre.
Exemple:
1/Création de nouvelle feuille
Sub NouveauBénéficiaire()
Sheets("Planning Bénéficiaire").Copy After:=Sheets(3)
ActiveSheet.Visible = True
End Sub
2/ Saisie d'un nom dans cette nouvelle feuille
3/ Renommer cette feuille comme la cellule saisie
Sub renommer()
ActiveSheet.Name = [A3]
End Sub
Cordialement
Comment faire pour executer deux macros à la suite l'une de l'autre.
Exemple:
1/Création de nouvelle feuille
Sub NouveauBénéficiaire()
Sheets("Planning Bénéficiaire").Copy After:=Sheets(3)
ActiveSheet.Visible = True
End Sub
2/ Saisie d'un nom dans cette nouvelle feuille
3/ Renommer cette feuille comme la cellule saisie
Sub renommer()
ActiveSheet.Name = [A3]
End Sub
Cordialement
A voir également:
- Enchaînement de macros
- Macros word - Guide
- Activer les macros excel android ✓ - Forum Excel
- Logiciel enchainement musique automatique gratuit - Télécharger - DJ & Karaoké
- Maintenance macros excel ✓ - Forum VB / VBA
- My macros - Télécharger - Organisation
5 réponses
Bonjour,
Vous insérez le nom de la deuxième procédure dans la première:
Exemple:
Vous insérez le nom de la deuxième procédure dans la première:
Exemple:
Sub NouveauBénéficiaire() Sheets("Planning Bénéficiaire").Copy After:=Sheets(3) ActiveSheet.Visible = True call renommer End Sub
ridel66
Messages postés
73
Date d'inscription
Statut
Membre
Dernière intervention
Merci pour la solution qui permet l'execution des macros l'une aprés l'autre !
je ne suis pas spécialiste, mais je ferais une troisième macro qui exécuterai les 2 autres macro et + si nécessaire, avec des raccourcis clavier que tu leur attribuerais au préalable.
Salut le forum
Si ta cellule [A3] est vide ou que le nom existe déjà
ActiveSheet.Name = [A3] va générer une erreur.
Merci de mieux expliquer ta demande.
Mytå
Si ta cellule [A3] est vide ou que le nom existe déjà
ActiveSheet.Name = [A3] va générer une erreur.
Merci de mieux expliquer ta demande.
Mytå
Bonjour,
Code à modifier en fonction du contenu souhaité de la cellule A3 (texte, nombre, date ...)
Cordialement,
-- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --
Code à modifier en fonction du contenu souhaité de la cellule A3 (texte, nombre, date ...)
Sub NouveauBénéficiaire() Dim resultat As String Sheets("Planning Bénéficiaire").Copy After:=Sheets(3) ActiveSheet.Visible = True resultat = InputBox("Inscrire en Cellule A3 : ","Saisie A3") [A3] = resultat 'à modifier si l'on veux un résultat en nombre : CInt(resultat) ou CDate(resultat) etc... ActiveSheet.Name = [A3] End Sub
Cordialement,
-- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --
Salut le forum
«ActiveSheet.Visible = True 'ligne inutile»
Pijaku, cette ligne est la car il copie un feuille masquée.
Référence : Erreur Macro si feuille masquée
Mytå
«ActiveSheet.Visible = True 'ligne inutile»
Pijaku, cette ligne est la car il copie un feuille masquée.
Référence : Erreur Macro si feuille masquée
Mytå
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re- tout le monde,
Une autre solution consiste à exécuter la macro 1 et créer dans la nouvelle feuille une macro évènementielle se déclenchant lors de la saisie dans A3 :
Attention tout de même : à chaque fois que l'on modifie le contenu de A3 dans cette feuille, la macro changera le nom de la feuille... Selon les cas cela peut être pratique...ou pas!
Cordialement,
-- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --
Une autre solution consiste à exécuter la macro 1 et créer dans la nouvelle feuille une macro évènementielle se déclenchant lors de la saisie dans A3 :
Sub NouveauBénéficiaire() Dim X As Integer Sheets("Feuil1").Copy After:=Sheets(3) ActiveSheet.Visible = True With ActiveWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule X = .CountOfLines .InsertLines X + 1, "Private Sub Worksheet_Change(ByVal Target As Range)" .InsertLines X + 2, "If IsEmpty([A3]) Or ActiveSheet.Name = [A3] Then" .InsertLines X + 3, "Exit Sub" .InsertLines X + 4, "Else" .InsertLines X + 5, "ActiveSheet.Name = [A3]" .InsertLines X + 6, "End If" .InsertLines X + 7, "End Sub" End With End Sub
Attention tout de même : à chaque fois que l'on modifie le contenu de A3 dans cette feuille, la macro changera le nom de la feuille... Selon les cas cela peut être pratique...ou pas!
Cordialement,
-- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --