Tester le nom du classeur ouvert

Bonjour,

Je souhaite tester le nom du classeur que je viens d'ouvrir pour effectuer un vba ou non.

Private Sub Workbook_Open()

If ThisWorkbook = "REACH-V1.1.xlsm" Then
'Si le classeur se nommme "REACH-V1.1.xlsm" alors on execute le script

    Sheets("Composition du produit").Select
    Range("G2:J" & [A65000].End(xlDown).Row).Select
    Selection.ClearContents
    Range("A1").Select
    Sheets("Nomenclature").Select
    Range("A1:L" & [A65000].End(xlDown).Row).Select
    Selection.ClearContents
    Range("A1").Select
    Sheets("Tri par composant").Select
    ActiveWorkbook.RefreshAll
    Sheets("Pas à pas").Select
    Range("B2", "B19").Select
    Selection.ClearContents
    Range("A1:D1").Select

Else: Exit Sub 'si le classeur ne se nomme pas "REACH-V1.1.xlsm" alors on quitte la procedure

   End If

End Sub

Hélas, cela ne fonctionne pas

Merci

Zyglur

Bonjour,

Ton code est bien placé dans "ThisWorkBook" et pas dans une feuille ou un module ?

Cordialement.

Oui , tout à fait.

Cordialement

Zyglur

Et tu as un message d'erreur ou une ligne précisément ou cela plante ? Il n'y a pas eu une malencontreuse faute de frappe dans le nom du classeur à tester ou une erreur de casse ?

Essai avec un ActiveWorkbook.Name à la place de ThisWorkBook.Name, même si théoriquement cela devrait marcher.

edit : oui je viens de voir, précise bien ThisWorkBook.Name = ...

Cela doit venir de là.

En fait je l'avais mis mais ca ne marche pas non plus.

Mon code pour le moment est comme ca :

Private Sub Workbook_Open()

If ThisWorkbook.Name = "REACH-V1.1.xlsm" Then
'Si le classeur se nommme "REACH-V1.1.xlsm" alors on execute le script

    Sheets("Composition du produit").Select
    Range("G2:J" & [A65000].End(xlDown).Row).Select
    Selection.ClearContents
    Range("A1").Select
    Sheets("Nomenclature").Select
    Range("A1:L" & [A65000].End(xlDown).Row).Select
    Selection.ClearContents
    Range("A1").Select
    Sheets("Tri par composant").Select
    ActiveWorkbook.RefreshAll
    Sheets("Pas à pas").Select
    Range("B2", "B19").Select
    Selection.ClearContents
    Range("A1:D1").Select

Else: Exit Sub 'si le classeur ne se nomme pas "REACH-V1.1.xlsm" alors on quitte la procedure

   End If

End Sub

Merci

Zyglur

Au pire si il ne contient pas de données confidentielles, si jamais tu peux joindre ton fichier, car j'ai fais un essai vite fait sur un classeur "Test.xlsm" à moi avec dans mon ThisWorkbook un simple

Private Sub Workbook_Open()

If ThisWorkBook.Name = "Test.xlsm" then
   MsgBox "blabla"
end if

end sub

et cela marche impec, j'ai bien ma message box à l'ouverture :-/

Bonsoir,

L'erreur venait de moi.

Ca fonctionne très bien.... quand on écrit le nom du fichier correctement. Je n'avais pas vu que j'avais 2 points qui se suivaient avant l'extension du fichier.

Merci

Cordialement

Zyglur

Zirak a écrit :

Il n'y a pas eu une malencontreuse faute de frappe dans le nom du classeur à tester ou une erreur de casse ?

Du moment que le problème est résolu, tout va bien.

Désolé,

J'avais dû zapper une partie de ton message.

Merci encore.

Cordialement

Zyglur

Rechercher des sujets similaires à "tester nom classeur ouvert"