Bonjour à tous,

Je viens avec une erreur toute basique, mais je n'arrive pas à voir d'où vient le problème...

J'explique : en gros j'ai un fichier disponible sur l'intranet qui recense les employés, j'utilise cette base dans un de mes fichiers. S'ouvrant en lecture seul, je suis obligé de l'enregistrer sous afin d'utiliser les données.

Donc en gros : J'ouvre le classeur (1), à l'ouverture il va chercher l'annuaire, classeur(2),le sauvegarde dans un endroit bien précis sous un nom bien précis. Ensuite il copie une plage de cellule de la feuille (2) du classeur(2) vers ma feuille(1) du fichier d'origine classeur(1).

J'ai fait un fichier excel test qui fonctionne parfaitement avec une userfom et commandbutton pour le lancer, mais une fois dans le "vrai" et au « workbook_Open », ça me met l'erreur, alors que tous est bien nommé... Enfin voila le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub Workbook_Open()
 
    Dim Chemin As String, Reponse As Boolean
    Dim Classeur_Maitre As String
    Dim Classeur_Slave As String
 
    Application.DisplayAlerts = False
 
   Classeur_Maitre = "Copie de Ficher Création.xls"
 
   Application.Workbooks.Open ("http://xxx/yyyy/zzzz/Annuaire.xls")
   ActiveWorkbook.SaveAs Filename:="S:\99-Commun-tmp\Clem F\Annuaire Save\annuaire.xls"
   Classeur_Slave = "annuaire.xls"
 
Workbooks(Classeur_Slave).Sheets(2).Range("A1:Z1000").Copy Workbooks(Classeur_Maitre).Sheets(6).Range("A1")
 
              Workbooks(Classeur_Slave).Close savechanges:=False
 
          MsgBox "Annuaire à jour"
 
UserForm1.Show
End Sub
Le message d’erreur se situe sur cette ligne là :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Workbooks(Classeur_Slave).Sheets(2).Range("A1:Z1000").Copy Workbooks(Classeur_Maitre).Sheets(6).Range("A1")
Alors que lorsque je passé ma souris sur les classeur slave ou maitre, il m’indique bien les bon .xls…

Voilà, si vous avez une idée de mon erreur… Merci !

Je précise que j'utilise les sheets(x) car le nom de la feuille de l'annuaire change régulièrement, mais ne change pas de place.