Bonjour à tous les "répondeurs" !
et merci @ vous de vous penchez sur ma validitée...
ce qui appel la function est une inputbox
Le_nom = InputBox("Veuillez donner un nom à cette nouvelle feuille. Attention ! Pas d'espace, pas de caractères spéciaux, merci.", "Ajout d'un suivi de compte")
If vérif_validitée_nom(Le_nom) = False Then
la cellule nommée LouReeD est bien une cellule d'une des feuilles du classeur.
Pour moi la valeur de la variable Le_nom est sans guillemet, au vu du code, non ?
Pour ce qui est de l'ambiguïté je ne travail qu'avec un seul classeur ouvert...
Je vais finir par laisser Excel gérer les noms de tableau tout seul....
Comment faire référence à un tableau d'une feuille quelconque en VBA sans connaître son nom ?
C'est juste pour faire un tri par date croissante sur une de ses colonnes...
Je crois savoir, mais l'idée de mettre un nom "valable" pour un tableau fraichement créé me paraissais plus propre et plus pro...
Merci encore @ vous et @ bientôt
LouReeD
En fait dans le code l'égalité n'est pas trouvée entre LouReeD et loureed, la feuille se créée, le tableau avec, et Excel renome automatiquement le tableau en loureed_1 car il existe déjà l'étiquette LouReeD.
Dans le code Excel, en fait VBA n'arrive pas à identifier l'égalité...
Le rajout de "_1" n'intervient pas si je met en nom : "pouette"
la feuille pouette est créée, le tableau avec et le nom du tableau est bien pouette....
@ bientôt
LouReeD
Ci-dessous le code de création de feuille:
Sub Ajouter_un_compte()
Dim Der_colonne As Long
Dim Nom_du_tableau
Dim Le_nom As String
Application.ScreenUpdating = False
Le_nom = InputBox("Veuillez donner un nom à cette nouvelle feuille. Attention ! Pas d'espaces, pas de caractère spéciaux, merci.", "Ajout d'un suivi de compte")
If vérif_validitée_nom(Le_nom) = False Then
MsgBox ("Erreur dans le nom. Pas d'espaces, pas de caractères spéciaux, pas plus de 28 caractères ou bien la feuille existe déjà.")
Exit Sub
End If
On Error Resume Next
Sheets(Le_nom).Activate
If Err <> 0 Then
Application.EnableEvents = False
Sheets("Livret_Vierge").Visible = True
Sheets("Livret_Vierge").Select
Sheets("Livret_Vierge").Copy after:=Sheets(12)
ActiveSheet.Name = Le_nom
Nom_du_tableau = ActiveCell.Offset(-1, 0).ListObject.Name
ActiveSheet.ListObjects(Nom_du_tableau).Name = Le_nom Sheets("Livret_Vierge").Visible = False
Sheets("BD").Select
Der_colonne = Sheets("BD").Cells(4, Cells.Columns.Count).End(xlToLeft).Column
Sheets("BD").Cells(4, Der_colonne + 1).Value = Le_nom
Sheets("Système").Activate
Application.EnableEvents = True
Else
MsgBox ("Ce nom est déjà utilisé...")
End If
Application.ScreenUpdating = True
End Sub
je commence à avoir un doute sur la partie surlignée... Pauvre de moi