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   -
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



A voir également:

5 réponses

Le Pingou Messages postés 12250 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
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

1
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 !
0
tchernosplif Messages postés 600 Date d'inscription   Statut Membre Dernière intervention   247
 
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.
0
ridel66 Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
Pourquoi pas ?

Je vais essayer, même si il existe peut être une solution plus directe.

Merci
0
Mytå Messages postés 2973 Date d'inscription   Statut Contributeur Dernière intervention   954
 
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å
0
ridel66 Messages postés 73 Date d'inscription   Statut Membre Dernière intervention  
 
Exact, tu soulèves un nouveau problème pour moi, je dois réflèchir encore un peu !
Merci @+
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention  
 
Bonjour,
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? --
0
Mytå Messages postés 2973 Date d'inscription   Statut Contributeur Dernière intervention   954
 
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å
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention  
 
Salut Myta
Oui. Bon ok. alors "Ligne utile..."
M'en vais de ce pas corriger mes posts (7 et 8).
Merci et bonne journée à toi.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention  
 
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 :
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? --
0