XL 2021 Nom de feuille vba

89ric

XLDnaute Junior
Bonjour, je cherche à renvoyer dans une cellule d'une feuille copiée et renommée avec une textbox (il s'agit d'un date du style "21 janvier") le nom de cette feuille mais je rencontre une erreur que je ne parviens pas à résoudre. J'ai parcouru divers forums mais après plusieurs heures de recherche, je ne sais plus où chercher... Pouvez-vous m'aider ?
Je vous remercie d'avance.
Voici le code:

Private Sub CommandButton1_Click()
Dim Nomfeuille As String

derligne = Sheets("Bilan").Range("C456541").End(xlUp).Row + 1
Sheets("Bilan").Cells(derligne, 3) = UserForm1.TextBox1

Sheets("Modèle").Copy After:=Sheets("Bilan")
ActiveSheet.Name = TextBox1
Nomfeuille = ActiveSheet.Name
ActiveSheet.Select

ActiveSheet.Cells(1, 6).Formula = "=" & Nomfeuille
ActiveSheet.Cells(1, 11).Formula = "=Bilan!H2"

Sheets("Bilan").Cells(derligne, 4).Formula = "=" & Nomfeuille & "!K9"
Sheets("Bilan").Cells(derligne, 5).Formula = "=" & Nomfeuille & "!M9"
Sheets("Bilan").Cells(derligne, 6).Formula = "=" & Nomfeuille & "!L9"

ActiveSheet.Select

Unload UserForm1

End Sub

Je vous joins le fichier.
 

Pièces jointes

  • Test.xlsm
    41.2 KB · Affichages: 8

TooFatBoy

XLDnaute Barbatruc
Bonjour,

je cherche à renvoyer dans une cellule d'une feuille copiée et renommée avec une textbox (il s'agit d'un date du style "21 janvier") le nom de cette feuille mais je rencontre une erreur que je ne parviens pas à résoudre.
Il ne faut pas utiliser ActiveSheet.Cells(1, 6).Formula = "=" & Nomfeuille
mais simplement ActiveSheet.Cells(1, 6).Vaue = Nomfeuille

Il y a un autre problème dans ta macro : si le tableau est vide, le calcul de DerLigne est faux à cause des cellules C4 et C5 fusionnées.
J'ai donc défusionné les deux cellules et écrit "Dates" en C5 (à l'encre invisible... 😁).

Une proposition en pièce jointe.


ps : tu devrais peut-être utiliser un Tableau Structuré pour ta feuille "Bilan".
 

Pièces jointes

  • Test (1).xlsm
    41 KB · Affichages: 1
Dernière édition:

Dudu2

XLDnaute Barbatruc
Bonjour,

Un code a tester...
Code:
Sub a()
    Dim NomFeuille As String
    Dim x As Integer
 
    NomFeuille = "21/01/2024"
    GoSub CheckNomFeuille
 
    NomFeuille = Replace(NomFeuille, "/", "-")
    GoSub CheckNomFeuille
    Exit Sub
 
CheckNomFeuille:
    x = VérifierNomFeuille(NomFeuille)
    If x = 0 Then
        MsgBox "Le nom de la feuille """ & NomFeuille & """ est correct !"
    Else
        MsgBox "Le nom de la feuille """ & NomFeuille & """ contient un caractère interdit en position " & x & " !"
    End If
    Return
End Sub

'---------------------------------------------------------------
'Vérifier si un nom de feuille contient des caractères interdits
'---------------------------------------------------------------
Function VérifierNomFeuille(NomFeuille As String) As Integer
    Dim TabCaractèresInterdits() As String
    Dim i As Integer
    Dim k As Integer
    '
    Const ListeCaractèresInterdits = "\,/,"",*,[,],:,?"
    TabCaractèresInterdits = Split(ListeCaractèresInterdits, ",")
    
    For i = LBound(TabCaractèresInterdits) To UBound(TabCaractèresInterdits)
        k = InStr(NomFeuille, TabCaractèresInterdits(i))
        If Not k = 0 Then Exit For
    Next i
  
    If i <= UBound(TabCaractèresInterdits) Then
        VérifierNomFeuille = k
    Else
        VérifierNomFeuille = 0
    End If
End Function
 

Dudu2

XLDnaute Barbatruc
Le code ci-dessus pour montrer que si tu saisis la date comme ça, il n'y a pas d'erreur.
1705868384169.png
 

89ric

XLDnaute Junior
Bonjour,


Il ne faut pas utiliser ActiveSheet.Cells(1, 6).Formula = "=" & Nomfeuille
mais simplement ActiveSheet.Cells(1, 6).Vaue = Nomfeuille

Il y a un autre problème dans ta macro : si le tableau est vide, le calcul de DerLigne est faux à cause des cellules C4 et C5 fusionnées.
J'ai donc défusionné les deux cellules et écrit "Dates" en C5 (à l'encre invisible... 😁).

Une proposition en pièce jointe.


ps : tu devrais peut-être utiliser un Tableau Structuré pour ta feuille "Bilan".
Super! Un grand merci, ça fonctionne! Et effectivement, j'avais aussi ce problème avec le calcul de Derligne que je ne m'expliquais pas... Et merci pour la réponse ultra rapide!!!
 

Discussions similaires

Réponses
17
Affichages
1 K

Membres actuellement en ligne

Statistiques des forums

Discussions
313 271
Messages
2 096 724
Membres
106 720
dernier inscrit
Alain EDZOA