Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Si le fichier est localisé....

14 réponses
Avatar
denys.p
Bonjour,

Est-il possible qu'une macro puisse effectuer des instructions selon l'empl=
acement du fichier ?

Voici: j'ai deux fichiers identiques qui sont situ=E9s 1) dans le W et l'au=
tre dans le L

Chaque matin, je copie le fichier du W et le colle dans le L.... Chaque mat=
in aussi, l'usager du W clique sur un bouton sur la feuille Data et va cher=
cher de l'information sur un fichier sur le W.... et c'est la m=EAme chose =
pour l'usager du "drive" L....il clique sur le bouton qui va chercher l'inf=
o sur le L.

Lorsque je copie le fichier le matin, je dois toujours changer l'info dans =
le VBA afin que l'usager du L puisse aller chercher la bonne info (celle du=
L et non pas celle du W).

J'ai donc deux lignes de code

'Workbooks.Open Filename:=3D"\\W etc...
Workbooks.Open Filename:=3D"\\L etc...

et je mets un apostrophe devant celui que je veux cacher...

Y a-t-il moyen de dire =E0 excel quelque chose dans le genre.... si le fich=
ier actuel est dans le W alors Workbooks.Open Filename:=3D"\\W etc... sino=
n Workbooks.Open Filename:=3D"\\L etc...

Juste pour m'=E9viter de faire des erreurs....

Ce serait gentil...

Merci pour votre temps

Denys

10 réponses

1 2
Avatar
Jacky
Bonsoir,
Y a-t-il moyen de dire à excel quelque chose dans le genre....




Comme ceci peut-être, en adaptent les noms et chemin
'-------------------
If ThisWorkbook.Path= "W:BUREAU" Then
Lechemin = "L etc...
LeClasseur = "xxxxxx.xlsm"
Else
Lechemin = "W etc...
LeClasseur = "yyyyyy.xlsm"
End If
Workbooks.Open Filename:=Lechemin & LeClasseur 'ouverture fichier
'-----------------
--
Salutations
JJ


a écrit dans le message de news:

Bonjour,

Est-il possible qu'une macro puisse effectuer des instructions selon l'emplacement du fichier ?

Voici: j'ai deux fichiers identiques qui sont situés 1) dans le W et l'autre dans le L

Chaque matin, je copie le fichier du W et le colle dans le L.... Chaque matin aussi, l'usager du W clique sur
un bouton sur la feuille Data et va chercher de l'information sur un fichier sur le W.... et c'est la même
chose pour l'usager du "drive" L....il clique sur le bouton qui va chercher l'info sur le L.

Lorsque je copie le fichier le matin, je dois toujours changer l'info dans le VBA afin que l'usager du L
puisse aller chercher la bonne info (celle du L et non pas celle du W).

J'ai donc deux lignes de code

'Workbooks.Open Filename:="W etc...
Workbooks.Open Filename:="L etc...

et je mets un apostrophe devant celui que je veux cacher...

Y a-t-il moyen de dire à excel quelque chose dans le genre.... si le fichier actuel est dans le W alors
Workbooks.Open Filename:="W etc... sinon Workbooks.Open Filename:="L etc...

Juste pour m'éviter de faire des erreurs....

Ce serait gentil...

Merci pour votre temps

Denys
Avatar
MichD
Bonjour,

Simplement un commentaire...

J'ajouterai qu'il faut faire attention au symbole "=" en VBA car VBA devient alors
sensible à la casse des caractères. On peut utiliser alors les fonctions "Ucase(Chemin)" ou
"LCase(Chemin) des 2 côtés de la comparaison afin d'éviter une méprise...
Avatar
La Norme Française c'est pas le FN
On Thu, 14 May 2015 21:35:27 +0200, "Jacky" wrote:

Bonsoir,
Y a-t-il moyen de dire à excel quelque chose dans le genre....




Comme ceci peut-être, en adaptent les noms et chemin
'-------------------
If ThisWorkbook.Path= "W:BUREAU" Then
Lechemin = "L etc...
LeClasseur = "xxxxxx.xlsm"
Else
Lechemin = "W etc...
LeClasseur = "yyyyyy.xlsm"
End If
Workbooks.Open Filename:=Lechemin & LeClasseur 'ouverture fichier
'-----------------
--
Salutations
JJ



Dans ce cas si c'est pas L, c'est pas forcement W.
Moi je tsterai aussi W (on sait jamais)
Avatar
denys.p
Bonjour Jacky et Denis,

Merci beaucoup.... J'essaie et vous reviens...

Bonne longue fin de semaine.....s'il y a lieu !! :-)

Denys
Avatar
denys.p
Désolé, je n'y arrive pas.... Excel ne semble pas reconnaitre le chemin ...

Denys
Avatar
isabelle
bonjour Denys,

peut être qu'il faudrait changer de drive avant Workbooks.Open

ChDrive "W" ' lecteur
ChDir Lechemin 'répertoires
Workbooks.Open....

isabelle

Le 2015-05-15 09:42, a écrit :
Désolé, je n'y arrive pas.... Excel ne semble pas reconnaitre le chemin...

Denys

Avatar
Jacky
Re...

Met en ligne le code utilisé.

--
Salutations
JJ


a écrit dans le message de news:

Désolé, je n'y arrive pas.... Excel ne semble pas reconnaitre le chemin...

Denys
Avatar
MichD
Lorsque ton fichier est ouvert si tu exécutes cette petite macro
dans ce fichier, quel chemin est affiché dans le MsgBox

Tu fais cela pour la position du fichier sur les 2 lecteurs "W" Et "L".

Est-ce le même résultat (Chemin) pour différents ordinateurs du groupe?
As-tu testé?

'---------------------------------------
Sub Test()
MsgBox ThisWorkbook.Path
End Sub
'---------------------------------------

Et tu adaptes ces chemins :

'-------------------
If LCase(ThisWorkbook.Path)= LCase("W:BUREAU") Then
Lechemin = "L etc... 'Adapte le chemin selon ce que t'affiche la boîte de message
LeClasseur = "xxxxxx.xlsm"
Else
Lechemin = "W etc... 'Adapte le chemin selon ce que t'affiche la boîte de message
LeClasseur = "yyyyyy.xlsm"
End If
Workbooks.Open Filename:=Lechemin & LeClasseur 'ouverture fichier

Si tu exécutes la procédure pas à pas en utilisant la touche F8 en VBA après avoir
placé le curseur de la souris dans la procédure, que se passe-t-il ?
Avatar
isabelle
aussi utiliser la syntaxe suivante:

Set wk1 = Workbooks.Open(Filename:=Chemin & "" & Fichier, ReadOnly:úlse)

isabelle

Le 2015-05-15 09:51, isabelle a écrit :

ChDrive "W" ' lecteur
ChDir Lechemin 'répertoires
Workbooks.Open....

isabelle
Avatar
MichD
Je ne travaille pas en réseau et je n'ai pas accès à un réseau


Je n'ai pas de moyen de tester, mais j'ai déjà lu que ChDir ne donnait pas les
résultats attendus quand on cherche à accéder au dossier d'un ordinateur
distant. Il existe une fonction de substitution pour contourner ce problème, qui
pourrait peut-être t'aider à régler ton problème (code à recopier dans un module
standard du classeur où tu veux l'utiliser) :

'=============== 'une procédure pour remplacer ChDir avec un lecteur/répertoire réseau

'Déclaration de L'API à placer dans le haut d'un module standard
Declare Function SetCurrentDirectoryA Lib _
"kernel32" (ByVal lpPathName As String) As Long

'-----------------------------------------------------------------
Sub ChDirNet(szPath As String)
'collectif, d'après Laurent Longre, mpep
Dim lReturn As Long
lReturn = SetCurrentDirectoryA(szPath)
If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path."
End Sub
'-----------------------------------------------------------------

Example of usage afin de changer le répertoire "actif". Ceci remplace la commande ChDir()
dans un environnement
'-----------------------------------------------------------------
Sub GetFile()
On Error GoTo ErrHandler
ChDirNet "LOGD0FILESOGILVTWDocsTemp" 'Tu utilises le chemin que tu désires (réseau)
Exit Sub
ErrHandler:
MsgBox "Couldn't set path"
End Sub
'-----------------------------------------------------------------
1 2