Bonjour,
Je me permets de solliciter votre aide car je cherche depuis quelques jours en vain.
Je vais essayer d’exprimer clairement ma requête :
J’ai un fichier Excel avec plusieurs onglets dont le 1er onglet qui s’appelle « Projet ».
Dans cet onglet Projet, en cellule D8, j’ai le nombre d’intervenant au projet.
Je souhaiterai que, lorsque cette cellule est remplie, une macro se lance pour créer X onglet – X correspondant au nombre renseigné en cellule D8.
Cet onglet prendrait comme nom « Mandat de gestion » & le nom renseigné de l’interlocuteur. Donc :
- Pour l’onglet créé 1 : Mandat de gestion Associé 1
- Pour l’onglet créé 2 : Mandat de gestion Associé 2 etc
Là où cela se complique pour moi : il peut arriver au départ qu’il n’y ait que 2 interlocuteurs. Mais au fil du temps un ou plusieurs interlocuteur(s) s’ajoute(nt).
Si le nombre d’interlocuteur passe à 3 au lieu de 2, je souhaiterais qu’un seul nouvel onglet se créé avec le nom « Mandat de gestion Associé 3 » et qu’il n’y ait pas 3 nouveaux onglets.
De fait, je pense que dans ma macro il faut d’abord vérifier que l’onglet avec le même nom n’existe pas.
J’avais essayé un début de code mais étant très novice il doit y avoir pas mal d’erreurs (je le mets quand même ci-dessous pour info).
Je mets le classeur exemple en PJ.
Pourriez-vous m’apporter votre aide ?
Merci beaucoup par avance.
Cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 If Range("D8") = 2 Then For Each Sheet In Worksheets If Sheet.Name = "Mandat de gestion " & Worksheets("Projet").Range("d19") Then End If Else Sheets.Add before:=Sheets("Suite des commentaires") With ActiveSheet .Name = "Mandat de gestion " & Worksheets("Projet").Range("d19") End With If Sheet.Name = "Mandat de gestion " & Worksheets("Projet").Range("f19") Then End If Else Sheets.Add before:=Sheets("Suite des commentaires") With ActiveSheet .Name = "Mandat de gestion " & Worksheets("Projet").Range("f19") End With Next Sheets("Projet").Select Else If Range("D8") = 3 Then
Partager