Fonction workbooks.open d'un fichier distant

poups

XLDnaute Occasionnel
Bonjour a tous,
J'espère désépérément depuis plusieurs jours d'ouvrir un classeur a distance situé sur un disque réseau

Impossible ...

Dim chemin As String
chemin = Dir("R:\Service Clients-Interne\Documents partages\")
Workbooks.Open chemin & "Liste code DI.xlsm"

Je suis compleitement bloqué et démunie .... je crack !
merci d'avance pour une aide présieuse
poups
 

Dranreb

XLDnaute Barbatruc
Re : Fonction workbooks.open d'un fichier distant

Bonsoir
Que cherchez vous à obtenir du Dir ? Le nom de fichier ou de dossier qu'il rend ne saurait être un chemin !
Mais là vous semblez tout connaitre de ce que vous voulez ouvrir, alors peut être :
VB:
ChDrive "R": ChDir "R:\Service Clients-Interne\Documents partages"
Workbooks.Open "Liste code DI.xlsm"
 
Dernière édition:

poups

XLDnaute Occasionnel
Re : Fonction workbooks.open d'un fichier distant

Bonjour Dranred,
Tu es encore une fois mon sauveur (j'espère !)

En faite j'avais écris un autre poste "Copier coller des données d'un classeur fermer à un autre à l'ouverture du dernier " mais personne ne m'a répondu alors j'ai gratté / cherché, ecris un autre post...


Pour résumé mes basses sont placé sur un disque réseau
A l'ouverture de mon classeur excel (local), je veux aller chercher mes données à jour et les coller dans mon classeur (local)

La fonction marche, quand mes fichier sont sur le bureau de mon PC
Ne marche plus des que je met la base sur le réseau

La base à un non fixe, et l'emplacement est connu également

La méthode que j'ai employé est :

Private Sub Workbook_Open()

ChDrive "R:": ChDir "R:\Service Clients-Interne\Documents partages"
Workbooks.Open "Liste code DI.xlsm"
Workbooks("Liste code DI.xlsm").Worksheets("Code_DI").Cells.Copy


ThisWorkbook("Projet SFF_22-11-13.xlsm").Activate
Sheets("Code_DI").Activate
Range("A1").Select
ActiveSheet.Paste

Application.DisplayAlerts = False
Workbooks("Liste code DI.xlsm").Close

End Sub

Le chemin reseau semble etre reconu, mais cela m'indique une erreur "1004" erreur application ou objet a l'exécution workbooks.Open

Merci de ton aide, je vais peut être pouvoir avancer aujourd'hui
Poups
 
Dernière édition:

poups

XLDnaute Occasionnel
Re : Fonction workbooks.open d'un fichier distant

Poufff ! j'avais oublier un répertoir dans on chemun ....
Ca marche !

Une dernière question :
mon but etant juste de récupérer des infos en masquer dans une feuille du classeur source
Je n'ai donc pas bessoin d'exécuter les macro de ce fichier à l'ouverture (si il y en a)
Peut on forcer à l'arrêt les macro de ce fichier lors de l'ouverture ?

merci
Poups
 

Dranreb

XLDnaute Barbatruc
Re : Fonction workbooks.open d'un fichier distant

Bonjour.
Essayez comme ça :
VB:
Private Sub Workbook_Open()
Dim ClasSrc As Workbook
ChDrive "R:": ChDir "R:\Service Clients-Interne\Documents partages"
Application.EnableEvents = False
Set ClasSrc = Workbooks.Open("Liste code DI.xlsm")
Application.EnableEvents = True
ClasSrc.Worksheets("Code_DI").Cells.Copy Destination:=ThisWorkbook.Worksheets("Code_DI").[A1]
ClasSrc.Close SaveChanges:=False
End Sub
 

Dranreb

XLDnaute Barbatruc
Re : Fonction workbooks.open d'un fichier distant

Bonsoir.
Mettre devant l'instruction que cette circonstance fait planter:
On Error Resume Next
Juste derrière ces deux instructions :
If Err Then MsgBox "Ça va pas !" & vbLF & Err.Description, vbCritical, "Ouverture " & Me.Name: Exit Sub
On Error GoTo 0
 

poups

XLDnaute Occasionnel
Re : Fonction workbooks.open d'un fichier distant

Bonjour Dranred,
Je reviens sur ce sujet que j'avais laissé de coté le temps de faire le reste de mon fichier
Je n'ai pas à mon avis pas tous compris ....

J'ai écris cela me cela ne marche pas

Private Sub Mise_a_jour_donnees()

On Error Resume Next

' Récupérer les données dans les 5 classeurs fermés sur le serveur à l'ouverture de ce fichier

Application.ScreenUpdating = False
Application.Visible = False
Application.DisplayAlerts = False


'//// Base Liste interlocuteur Agence /////
' Détermine le chemin des fichiers sources


ChDrive "R": ChDir "R:\Service Clients-Interne\Documents partages\Bases de données"

If Err Then MsgBox "Ça va pas !" & vbLf & Err.Description, vbCritical, "Ouverture " & Me.Name: Exit Sub
On Error GoTo 0

Workbooks.Open "Liste interlocuteur Agence.xlsm"
'Selectionne et copie données fichier source
Workbooks("Liste interlocuteur Agence.xlsm").Worksheets("Données_Agence").Range("A1:J200").Copy
'Copie données fichier source sou classeur en cours
Windows("Projet SFF_22-11-13.xlsm").Activate
Sheets("Données_Agence").Activate
Range("A1").Select
ActiveSheet.Paste
Workbooks("Liste interlocuteur Agence.xlsm").Close

Application.ScreenUpdating = True
Application.Visible = True

End Sub

Le but étant de ne pas mettre VB en défaut si le serveur n'est pas dispo

Merci d'avance
Poups
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Fonction workbooks.open d'un fichier distant

Bonjour
Vérifiez si, dans VBE, menus Outils, Options, onglet Général, rubrique Récupération d'erreurs, ce ne serait pas l'option Arrêt sur toutes les erreurs qui serait cochée au lieu d'une des deux autres.
 

poups

XLDnaute Occasionnel
Re : Fonction workbooks.open d'un fichier distant

C'était encore cela tu est le meilleur Dranred !

Ma derniére question porte sur le nom de mon fichier ou est écrit ce programme :
Windows("Projet SFF_22-11-13.xlsm").Activate
Mon PB est que ce nom change au fure et à mesure des versions et le l'avancement de mon fichier
Je cherche le moyen que le non soit pas incrit en dure, mais porte le nom du fichier actif

est ce possible ?

Merci d'avance
Poups
 

Dranreb

XLDnaute Barbatruc
Re : Fonction workbooks.open d'un fichier distant

Vous avez deux expressions spéciales qui désignent chacune un certain classeur:
1) - ActiveWorkBook: désigne le classeur actif, quel que soit le lieu où se trouve le code qui l'utilise,
2) - ThisWorkbook: désigne le classeur auquel appartient le code, quel que soit le classeur actif.
En outre pour ce dernier vous pouvez utilisez les objets Worksheets dont le nom figurent dans la rubrique Microsoft Excel Objets à gauche du nom Excel de la feuille rappelé entre parenthèses.
 

poups

XLDnaute Occasionnel
Re : Fonction workbooks.open d'un fichier distant

Salut Dranred
mon prog marche :

Private Sub CommandButton1_Click()

On Error Resume Next

'//// Base Liste interlocuteur Agence /////
'Détermine le chemin des fichiers sources

ChDrive "R": ChDir "R:\KSB Service Clients-Interne\Documents partages\Bases de données"

If Err Then MsgBox "Impossible d'accéder au fichier sur le serveur R:\" & vbLf & Err.Description, vbCritical, "Ouverture fichier" & Name: Exit Sub
On Error GoTo 0

Workbooks.Open "Liste interlocuteur Agence.xlsm"

Application.Run "'Liste interlocuteur Agence.xlsm'!Overture_Boite_de_dialogue"

End Sub

Mon probleme c'est que à la fermeture du classeur distant, le bouton de commande sur la boite de dialogue du programme ci-dessus reste plus ou moin actif et rend l'appui sur un nouveau bouton aléatoir ...

Comment je peux gérer ce bug ou lenteur d'execution ?

Merci d'avance
Poups
 

Dranreb

XLDnaute Barbatruc
Re : Fonction workbooks.open d'un fichier distant

Bonjour.
Je ne comprend pas très bien ce que vous voulez dire, puisque cette Sub CommandButton1_Click devrait se terminer au plus tard justement quand ce classeur se ferme, puisque vous avez du faire ce qu'il faut, je suppose, pour vous assurer que cela s'accompagnait forcément d'une conclusion de l'exécution de cette mystérieuse macro Overture_Boite_de_dialogue
Mais peut être devriez vous plutôt, au lieu d'un Application.Run, la lancer par un Application.OnTime la planifiant pour dans la seconde qui suit, afin de lui permettre de se terminer tout de suite avant ce lancement.
 

Statistiques des forums

Discussions
312 361
Messages
2 087 616
Membres
103 607
dernier inscrit
lolo1970