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).
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...
Merci beaucoup à tous.... ça fonctionne maintenant....
Au lieu d'une lettre, je mettais le chemin complet du serveur....
Maintenant ça roule bien
Bonne fin de semaine à tous et merci pour votre aide :-)
Denys
denys.p
Le vendredi 15 mai 2015 10:30:51 UTC-4, MichD a écrit :
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 donnai t pas les résultats attendus quand on cherche à accéder au dossier d'un ordin ateur distant. Il existe une fonction de substitution pour contourner ce probl ème, qui pourrait peut-être t'aider à régler ton problème (code à recopi er dans un module standard du classeur où tu veux l'utiliser) :
'================ 'une procédure pour remplacer ChDir avec un lecteur/répertoire rése au
'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 l a 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 '-----------------------------------------------------------------
Effectivement Denis...en réseau c'est pas mal plus compliqué....
Le vendredi 15 mai 2015 10:30:51 UTC-4, MichD a écrit :
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 donnai t pas les
résultats attendus quand on cherche à accéder au dossier d'un ordin ateur
distant. Il existe une fonction de substitution pour contourner ce probl ème, qui
pourrait peut-être t'aider à régler ton problème (code à recopi er dans un module
standard du classeur où tu veux l'utiliser) :
'================
'une procédure pour remplacer ChDir avec un lecteur/répertoire rése au
'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 l a 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
'-----------------------------------------------------------------
Effectivement Denis...en réseau c'est pas mal plus compliqué....
Le vendredi 15 mai 2015 10:30:51 UTC-4, MichD a écrit :
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 donnai t pas les résultats attendus quand on cherche à accéder au dossier d'un ordin ateur distant. Il existe une fonction de substitution pour contourner ce probl ème, qui pourrait peut-être t'aider à régler ton problème (code à recopi er dans un module standard du classeur où tu veux l'utiliser) :
'================ 'une procédure pour remplacer ChDir avec un lecteur/répertoire rése au
'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 l a 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 '-----------------------------------------------------------------
Effectivement Denis...en réseau c'est pas mal plus compliqué....
Jacky
Hello Denis
Je ne travaille pas en réseau et je n'ai pas accès à un réseau
Un code Vba que j'utilise perso.(sans ChDir) dans un petit réseau et qui fait du bon boulot ;o) '-------------------------------- Sub OuvertureFichierDistant() Dim LePCdistant As String, LeClasseurDistant As String If Environ("COMPUTERNAME") = "BUREAU" Then LePCdistant = "LeNomDuPc1rep1rep2rep3" LeClasseurDistant = "xxxxxx.xlsm" Else LePCdistant = "LeNomDuPc2rep1rep2rep3" LeClasseurDistant = "yyyyyy.xlsm" End If ' Workbooks.Open Filename:=LePCdistant & LeClasseurDistant 'ouverture fichier distant ''''' ''''' 'etc.. End Sub '--------------------------------- -- Salutations JJ
"MichD" a écrit dans le message de news: mj4vul$jra$
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 '-----------------------------------------------------------------
Hello Denis
Je ne travaille pas en réseau et je n'ai pas accès à un réseau
Un code Vba que j'utilise perso.(sans ChDir) dans un petit réseau et qui fait du bon boulot ;o)
'--------------------------------
Sub OuvertureFichierDistant()
Dim LePCdistant As String, LeClasseurDistant As String
If Environ("COMPUTERNAME") = "BUREAU" Then
LePCdistant = "\LeNomDuPc1rep1rep2rep3"
LeClasseurDistant = "xxxxxx.xlsm"
Else
LePCdistant = "\LeNomDuPc2rep1rep2rep3"
LeClasseurDistant = "yyyyyy.xlsm"
End If
'
Workbooks.Open Filename:=LePCdistant & LeClasseurDistant 'ouverture fichier distant
'''''
'''''
'etc..
End Sub
'---------------------------------
--
Salutations
JJ
"MichD" <michdenis@hotmail.com> a écrit dans le message de news: mj4vul$jra$1@speranza.aioe.org...
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
'-----------------------------------------------------------------
Je ne travaille pas en réseau et je n'ai pas accès à un réseau
Un code Vba que j'utilise perso.(sans ChDir) dans un petit réseau et qui fait du bon boulot ;o) '-------------------------------- Sub OuvertureFichierDistant() Dim LePCdistant As String, LeClasseurDistant As String If Environ("COMPUTERNAME") = "BUREAU" Then LePCdistant = "LeNomDuPc1rep1rep2rep3" LeClasseurDistant = "xxxxxx.xlsm" Else LePCdistant = "LeNomDuPc2rep1rep2rep3" LeClasseurDistant = "yyyyyy.xlsm" End If ' Workbooks.Open Filename:=LePCdistant & LeClasseurDistant 'ouverture fichier distant ''''' ''''' 'etc.. End Sub '--------------------------------- -- Salutations JJ
"MichD" a écrit dans le message de news: mj4vul$jra$
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 '-----------------------------------------------------------------
MichD
Bonjour Jacky,
La fonction de Laurent Longre est utile dans le cas par exemple où tu veux définir le chemin par défaut sur un réseau pour par la suite ouvrir l'explorateur Windows directement dans le répertoire du lecteur réseau désiré. Je crois que combinaison des commandes "Chdrive()" et "Chdir()" ne fonctionne pas dans un tel environnement.
x = Application.GetOpenFilename
Bonjour Jacky,
La fonction de Laurent Longre est utile dans le cas par exemple où tu veux
définir le chemin par défaut sur un réseau pour par la suite ouvrir l'explorateur
Windows directement dans le répertoire du lecteur réseau désiré. Je crois que
combinaison des commandes "Chdrive()" et "Chdir()" ne fonctionne pas dans
un tel environnement.
La fonction de Laurent Longre est utile dans le cas par exemple où tu veux définir le chemin par défaut sur un réseau pour par la suite ouvrir l'explorateur Windows directement dans le répertoire du lecteur réseau désiré. Je crois que combinaison des commandes "Chdrive()" et "Chdir()" ne fonctionne pas dans un tel environnement.