[VBA] Création de feuille depuis userform
Bonjour à tous,
Je viens vers vous car je tombe sur un problème, j'utilise un userForm qui fonctionne très bien, cet userForm permet lorsque l'on clique sur enregistrer de :
1 - Copier la feuille model en avant dernière position et la renomme (Cette feuille contient de cellules nommées)
2 - Insère les information de l'userForm dans certaine cellule
Jusque là pas de soucis, sauf que lorsque je clique sur Enregistrer, j’obtiens un message d'erreur pour toutes les cellules nommées disant que le nom existe déjà
(le Nom "xxx" existe déjà voulez-vous modifié la référence par celle-ci ou la renomer)
Je clic sur Oui pour chaque alert (autant de fois qu'une cellule nommée est rencontrée)
Ma feuille est bien créer, les informations y figurent bien, les références fonctionnes aussi dans le tableau résumé qui se trouve en 1ère feuille
En gros tout fonctionne sauf que j'ai cette multitude de fenêtre alerte me signalant que le Nom existe déjà.
Voici la source du bouton enregistrer
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| ' Crée une nouvelle feuille (fiche) : Artiste
Private Sub CommandButton1_Click()
' Copie la feuille model en avant dernière position
Sheets("Model").Copy after:=Sheets(Sheets.Count - 1) ' <= C est à partir d'ici que ca pose problème
' Renomme la feuille
ActiveSheet.Name = denome & " (art)"
' Ajoute les informations dans la feuille
ActiveSheet.Range("art_name").Value = AddArtiste.denome
ActiveSheet.Range("art_name2").Value = AddArtiste.art_name
ActiveSheet.Range("art_rue").Value = AddArtiste.art_rue
ActiveSheet.Range("art_com").Value = AddArtiste.art_com
ActiveSheet.Range("art_tel").Value = AddArtiste.art_tel
ActiveSheet.Range("art_mail").Value = AddArtiste.art_mail
ActiveSheet.Range("art_retro").Value = AddArtiste.art_retro
ActiveSheet.Range("ent_name2").Value = AddArtiste.ent_name
ActiveSheet.Range("ent_rue").Value = AddArtiste.ent_rue
ActiveSheet.Range("ent_com").Value = AddArtiste.ent_com
ActiveSheet.Range("art_tva").Value = AddArtiste.ent_tva
ActiveSheet.Range("ent_web").Value = AddArtiste.ent_web
ActiveSheet.Range("ent_cb").Value = AddArtiste.art_cb
' Reinitialise le formulaire
Dim Ctrl As Control
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox Then Ctrl.Value = ""
Next
' Je ne met pas de End car je compte réutiliser le formulaire, je le réinitialise uniquement
End Sub |
Comment empêcher cette alerte d'apparaître ?
D'avance merci de votre aide