XL 2019 CodeName Value

David

XLDnaute Occasionnel
Bonjour à tous,

Je butte sur un petit problème, je me sers des codename pour appeler mes onglet en vba, mais quand j'appelle le fichier, je n'arrive pas à trouver la syntaxe, j'ai un message d'erreur.

VB:
Workbooks(Nom).Feuil1.Range("C" & CptNoms) = DateNaissanceExtra

Je ne peux pas mettre
Code:
Workbooks(Nom).Worksheets(1).Range("C" & CptNoms) = DateNaissanceExtra
parce que cela fait appel au premier onglet à gauche, si on le bouge ça ne marchera plus.

Et je ne veux pas me servir du nom de l'onglet qui peut être changé.

Qu'elle est la bonne méthode?

Merci
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Et pour y voir plus clair, (ou pas)
Fais ce test, sur un classeur vierge
VB:
Sub test()
MsgBox ThisWorkbook.Sheets(1).Name
MsgBox ActiveWorkbook.Sheets(1).Name
MsgBox Feuil1.Name
Sheets.Add
MsgBox Range("A1").Parent.Name
MsgBox Sheets(Range("A1").Parent.Name).Name
End Sub
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,
Hello Staple :),

Petite fonction perso :
VB:
Function FeuilleParNomDeCode(ByVal NomDeCode As String, Optional ByVal NomClasseur As String = "") As Worksheet
    Dim wk As Workbook, wsh As Worksheet
    On Error GoTo FIN
    ' obtention du classeur
    If NomClasseur = "" Then
        Set wk = ThisWorkbook
    Else
        Set wk = Workbooks(NomClasseur)
    End If
    ' Parcours des feuille du classeur
    If Not wk Is Nothing Then
        For Each wsh In wk.Worksheets
            ' UCASE pour toujours être insensible à la casse
            If UCase(wsh.CodeName) = UCase(NomDeCode) Then Exit For
        Next
    End If
FIN:
    On Error GoTo 0
    ' Renvoie de l'objet feuille ou nothing
    Set FeuilleParNomDeCode = wsh
End Function

Dim ws as worksheet
'Utilisation, pour retourner la feuille OSS117 du classeur 'Polards'
set ws = FeuilleParNomDeCode("OSS117"; "Polards")

'Pour retourner la feuille OSS117 du classeur qui contient la macro
set ws = FeuilleParNomDeCode("OSS117")

cordialement
 

Staple1600

XLDnaute Barbatruc
Bonjour Roblochon

On voit où les affres du confinement peuvent mener...;)
Utilisation, pour retourner la feuille OSS117 du classeur 'Polards'
Revoir ce "mouais" film ;)
Si j'étais moi, ce serait plutôt
Monty Python and the Holy Grail
ou Monty Python's Life of Brian

Georgette, branche le magnétoscope, on va se payer une bonne tranche de rigolade.

PS: On aura compris que ce message est là, juste pour le plaisir de croiser Roblochon ;)
 

David

XLDnaute Occasionnel
Merci à tous les 2.

Je suis sur 2 classeurs d'ou l’appelle Workbooks , Feuil1.Range("C" & CptNoms) = DateNaissanceExtra ne marchait pas,ça n'arrivait pas sur la bonne feuille, je l'ai placé au bon endroit ;) et ça marche.

Je prends quand même la fonction et je la garde précieusement.

Merci et bonne fin de journée.
 

Discussions similaires