Enchaînement de macros
Résolu
ridel66
Messages postés
73
Statut
Membre
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 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
- Activer les macros excel android ✓ - Forum Excel
- Maintenance macros excel ✓ - Forum VB / VBA
- Le classeur macros personnelles dans le dossier de démarrage doit être ouvert - Forum Excel
- Logiciel enchainement musique automatique gratuit - Télécharger - DJ & Karaoké
- Macros word - Guide
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
Statut
Membre
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? --