Ajout auto de feuille avec changement du nom de la feuille
Bonsoir le forum
J'ai un usf qui me permet d'ajouter un nouvel utilisateur.
Lorsqu'un nouvel utilisateur est crée, 2 copies de feuilles doivent être automatiquement générées.
Il s'agit de la feuille "INFO" et la feuille "ADMIN". Chaque feuille dupliquée doit aussitôt être renommée de cette façon:
- le duplicata de la feuille "INFO" reprendre le nom de la valeur de la textbox1
- le duplicata de la feuille "ADMIN" doit être renommé de la sorte "TBC3&textbox1.value
Je n'arrive pas à bien comprendre mais je sais que le code doit comporter des erreurs que je n'arrive pas à détecter.
Je vous le soumet pour amendement avec le fichier test qui ne signale pas d'anomalies svp!
Private Sub CommandButton1_Click()
'cette macro sert à alimenter la feuille centralisation
'Sub Report_mensuel()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
Dim DEST1 As Range
Dim DEST2 As Range
Dim DEST3 As Range
Dim DEST4 As Range
Dim DEST5 As Range
Dim DEST6 As Range
Dim DEST7 As Range
Set O = Worksheets("ADMIN") 'définit l'onglet O
Set f = ActiveSheet
' O.Unprotect "dac2017"
'définit la cellule de destination DEST (B3 si B3 est vide, sinon, la première cellule vide de la colonne B)
Set DEST = IIf(O.Range("BM3").Value = "", O.Range("BM3"), O.Cells(Application.Rows.Count, 65).End(xlUp).Offset(1, 0))
Set DEST1 = IIf(O.Range("BN3").Value = "", O.Range("BN3"), O.Cells(Application.Rows.Count, 66).End(xlUp).Offset(1, 0))
Set DEST2 = IIf(O.Range("BO3").Value = "", O.Range("BO3"), O.Cells(Application.Rows.Count, 67).End(xlUp).Offset(1, 0))
Set DEST3 = IIf(O.Range("BP3").Value = "", O.Range("BP3"), O.Cells(Application.Rows.Count, 68).End(xlUp).Offset(1, 0))
Set DEST4 = IIf(O.Range("BQ3").Value = "", O.Range("BQ3"), O.Cells(Application.Rows.Count, 69).End(xlUp).Offset(1, 0))
Set DEST5 = IIf(O.Range("BR3").Value = "", O.Range("BR3"), O.Cells(Application.Rows.Count, 70).End(xlUp).Offset(1, 0))
Set DEST6 = IIf(O.Range("BS3").Value = "", O.Range("BS3"), O.Cells(Application.Rows.Count, 71).End(xlUp).Offset(1, 0))
Set DEST7 = IIf(O.Range("BT3").Value = "", O.Range("BT3"), O.Cells(Application.Rows.Count, 72).End(xlUp).Offset(1, 0))
DEST = Me.TextBox1 '= DEST 'copie la plage nommée "reel" dans DEST
'DEST1 = Me.TextBox2
'DEST2 = Me.ComboBox1
'DEST3 = Me.ComboBox3
'DEST4 = Me.ComboBox2
'DEST5 = Me.TextBox3
'DEST6 = Me.TextBox4
'DEST7 = Me.TextBox5
Sheets("INFO").Copy after:=Sheets("INFO")
On Error GoTo nomExistant
ActiveSheet.Name = DEST
On Error GoTo 0
f.Activate
'-----
Sheets("ADMIN").Copy after:=Sheets("ADMIN")
On Error GoTo nomExistant
ActiveSheet.Name = "TBC" & DEST
f.Activate
Unload Me
Exit Sub
nomExistant:
Application.DisplayAlerts = False
ActiveSheet.Delete
MsgBox "Ce nom existe déjà. Choisissez-en un autre.", 16
Exit Sub
Resume Next
End Sub
- Messages
- 2'417
- Excel
- 2019
- Inscrit
- 13/07/2017
- Emploi
- Formateur, animateur,tech.informatique
Bonjour
pas bien compris pour INFO
1/ Nouvel onglet
INFO :
INFO +contenu de la textbox1 de ton USF
ce qui donne par exemple : INFOdupont
2/Nouvel onglet
ADMIN :
TBC3+contenu de la textbox1 de ton USF
ce qui donne par exemple : TBC3dupont
si c'est cela voir à modifier dans le bouton de commande 1 de ton USF
à modifier
Sheets("INFO").Copy after:=Sheets("INFO")
On Error GoTo nomExistant
ActiveSheet.Name = "INFO" & DEST
On Error GoTo 0
f.Activate
'-----
Sheets("ADMIN").Copy after:=Sheets("ADMIN")
On Error GoTo nomExistant
ActiveSheet.Name = "TBC3" & DEST
f.Activate
Unload Mecrdlt,
André
Bonjour André et le forum
Merci pour votre réponse.
Je pense avoir bien posé mon problème.
Votre compréhension s'écarte de mes attentes.
Si vous pouvez bien relire vous me comprendrai mieux.
Je reste preneur d'autres solutions.
- Messages
- 2'417
- Excel
- 2019
- Inscrit
- 13/07/2017
- Emploi
- Formateur, animateur,tech.informatique
Bonjour
Même hélas ! après relecture je ne comprend pas, désolé
bye
Bonsoir André
Vous dite
si c'est cela voir à modifier dans le bouton de commande 1 de ton USF
à modifier
quelle partie du code faut-modifié partant de votre compréhension?