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

(vba) tests conditionnels sur chemins (paths)

13 réponses
Avatar
j-pascal
Bonsoir,

Est-il possible d'effectuer des tests conditionnels sur l'existence d'un
chemin ?

Ex :

IF "cette destination existe" :
ChDir "C:\Documents and Settings\toto\Bureau" THEN
"cette destination"
ELSE
IF "cette autre destination existe" :
ChDir "C:\Documents and Settings\zaza\Bureau" THEN
"cette autre destination"
ETC.

C'est très mal exprimé, j'en conviens, mais peut-être m'aurez-vous compris
...

Merci d'avance pour vos lumières,

Cordialement,

JP

10 réponses

1 2
Avatar
LSteph
Bonsoir,Jp


;-) un indice!

On obtient quoi... si un truc qu'on utilise n'existe pas
...!?

@+

--
lSteph
dim tst as boolean

Bonsoir,

Est-il possible d'effectuer des tests conditionnels sur l'existence d'un
chemin ?

Ex :

IF "cette destination existe" :
ChDir "C:Documents and SettingstotoBureau" THEN
"cette destination"
ELSE
IF "cette autre destination existe" :
ChDir "C:Documents and SettingszazaBureau" THEN
"cette autre destination"
ETC.

C'est très mal exprimé, j'en conviens, mais peut-être m'aurez-vous
compris ...

Merci d'avance pour vos lumières,

Cordialement,

JP


Avatar
jps
bonsoir j-pascal
si tu veux te donner le choix entre l'un et l'autre de ces chemins, tu peux
écrire

On Error Resume Next
ChDir "C:Documents and SettingstotoBureau"
ChDir "C:Documents and SettingszazaBureau"

mais j'ai dû mal comprendre
jps

"j-pascal" a écrit dans le message de news:
%
Bonsoir,

Est-il possible d'effectuer des tests conditionnels sur l'existence d'un
chemin ?

Ex :

IF "cette destination existe" :
ChDir "C:Documents and SettingstotoBureau" THEN
"cette destination"
ELSE
IF "cette autre destination existe" :
ChDir "C:Documents and SettingszazaBureau" THEN
"cette autre destination"
ETC.

C'est très mal exprimé, j'en conviens, mais peut-être m'aurez-vous compris
...

Merci d'avance pour vos lumières,

Cordialement,

JP


Avatar
LSteph
Sub testchemin()
Dim tst As Boolean
On Error Resume Next
ChDir "c:nimportequoi"
tst = CurDir = "c:nimportequoi"
On Error GoTo 0
If Not tst Then ChDir "c:"
End Sub


Bonsoir,

Est-il possible d'effectuer des tests conditionnels sur l'existence d'un
chemin ?

Ex :

IF "cette destination existe" :
ChDir "C:Documents and SettingstotoBureau" THEN
"cette destination"
ELSE
IF "cette autre destination existe" :
ChDir "C:Documents and SettingszazaBureau" THEN
"cette autre destination"
ETC.

C'est très mal exprimé, j'en conviens, mais peut-être m'aurez-vous
compris ...

Merci d'avance pour vos lumières,

Cordialement,

JP


Avatar
j-pascal
Mal à comprendre ? Alors là, ça serait bien la première fois sur ce forum
(lol). Demande à LSteph, il lit dans mes pensées ;-)

Cette appli doit fonctionner sur 5 PC différents quant à leurs "paths".

Pour ne pas avoir à "configurer" chaque chemin, je pensais à un test
conditionnel qui balaye les 5 chemins et qui va là où le chemin existe !
J'accepte volontiers un ExitSub si le chemin n'existe pas ...

Est-ce plus clair ?

JP ;-)

"jps" a écrit dans le message de news:

bonsoir j-pascal
si tu veux te donner le choix entre l'un et l'autre de ces chemins, tu
peux écrire

On Error Resume Next
ChDir "C:Documents and SettingstotoBureau"
ChDir "C:Documents and SettingszazaBureau"

mais j'ai dû mal comprendre
jps

"j-pascal" a écrit dans le message de news:
%
Bonsoir,

Est-il possible d'effectuer des tests conditionnels sur l'existence d'un
chemin ?

Ex :

IF "cette destination existe" :
ChDir "C:Documents and SettingstotoBureau" THEN
"cette destination"
ELSE
IF "cette autre destination existe" :
ChDir "C:Documents and SettingszazaBureau" THEN
"cette autre destination"
ETC.

C'est très mal exprimé, j'en conviens, mais peut-être m'aurez-vous
compris ...

Merci d'avance pour vos lumières,

Cordialement,

JP






Avatar
j-pascal
Re,

Puis-je t'inviter à jeter un oeil sur les précisions que j'ai apportées à
jps ?
Merci pour ta présente proposition, je testerai demain (zut, c'est déjà
demain ;-( Chouette, je vais pouvoir tester mes MdP dynamiques [hs] )

Bonne nuit,

JP

"LSteph" a écrit dans le message de news:



Sub testchemin()
Dim tst As Boolean
On Error Resume Next
ChDir "c:nimportequoi"
tst = CurDir = "c:nimportequoi"
On Error GoTo 0
If Not tst Then ChDir "c:"
End Sub


Bonsoir,

Est-il possible d'effectuer des tests conditionnels sur l'existence d'un
chemin ?

Ex :

IF "cette destination existe" :
ChDir "C:Documents and SettingstotoBureau" THEN
"cette destination"
ELSE
IF "cette autre destination existe" :
ChDir "C:Documents and SettingszazaBureau" THEN
"cette autre destination"
ETC.

C'est très mal exprimé, j'en conviens, mais peut-être m'aurez-vous
compris ...

Merci d'avance pour vos lumières,

Cordialement,

JP




Avatar
jps
eh ben, si c 'est cela, j-pascal, tu écris tous tes paths comme je te l'ai
suggéré et tu fais précéder ces lignes du On Error Resume Next
ainsi, ta proc trouvera toujours le bon chemin
tu n'oublies pas, par contre, de remettre la gestion d'erreur à plat en
ajoutant tout de suite après tes chemins On Error GoTo 0
voili voilou
jps

"j-pascal" a écrit dans le message de news:
%
Mal à comprendre ? Alors là, ça serait bien la première fois sur ce forum
(lol). Demande à LSteph, il lit dans mes pensées ;-)

Cette appli doit fonctionner sur 5 PC différents quant à leurs "paths".

Pour ne pas avoir à "configurer" chaque chemin, je pensais à un test
conditionnel qui balaye les 5 chemins et qui va là où le chemin existe !
J'accepte volontiers un ExitSub si le chemin n'existe pas ...

Est-ce plus clair ?

JP ;-)

"jps" a écrit dans le message de news:

bonsoir j-pascal
si tu veux te donner le choix entre l'un et l'autre de ces chemins, tu
peux écrire

On Error Resume Next
ChDir "C:Documents and SettingstotoBureau"
ChDir "C:Documents and SettingszazaBureau"

mais j'ai dû mal comprendre
jps

"j-pascal" a écrit dans le message de news:
%
Bonsoir,

Est-il possible d'effectuer des tests conditionnels sur l'existence d'un
chemin ?

Ex :

IF "cette destination existe" :
ChDir "C:Documents and SettingstotoBureau" THEN
"cette destination"
ELSE
IF "cette autre destination existe" :
ChDir "C:Documents and SettingszazaBureau" THEN
"cette autre destination"
ETC.

C'est très mal exprimé, j'en conviens, mais peut-être m'aurez-vous
compris ...

Merci d'avance pour vos lumières,

Cordialement,

JP









Avatar
LSteph
Bonjour,

L'exemple que je t'ai proposé pour comprendre peut s'adapter à d'autres
objectifs, le but étant d'envisager et décrire méthodiquement ce qui se
passe.
On veut faire un test , on peut utiliser un booleen qui permet le cas
échéant d'être invoqué par la suite s'il renferme un résultat.
S'il est à faux et
qu'au moment de l'alimenter on invoque une expression qui provoque une
erreur il va rester à faux c'est ainsi qu'on peut tester un chemin qui
existe peut-être et et sinon proposé celui dont on est certain

La file dans le On error resume next sautera chaque fois à l'instruction
suivante lorsqu'elle rencontre une erreur et ce jusqu'au on error goto 0

De la même façon, pour ta simple question ponctuelle du chemin
la proposition de Jps peut beaucoup plus simplement être utilisée dans
ce cas. Dès qu'un chemin sera bon il sera choisi, mais..
les instruction suivantes sont quand même executée donc si tu mets une
liste de chemins selon la prop de Jean Paul c'est la dernière
proposition valide qui sera prise en compte.

...je reprends plus tard.. j'ai un truc sur le feu.. on peut combiner
les deux! (Tu peux y réfléchir)

@+

lSteph



Re,

Puis-je t'inviter à jeter un oeil sur les précisions que j'ai apportées
à jps ?
Merci pour ta présente proposition, je testerai demain (zut, c'est déjà
demain ;-( Chouette, je vais pouvoir tester mes MdP dynamiques [hs] )

Bonne nuit,

JP

"LSteph" a écrit dans le message de news:



Sub testchemin()
Dim tst As Boolean
On Error Resume Next
ChDir "c:nimportequoi"
tst = CurDir = "c:nimportequoi"
On Error GoTo 0
If Not tst Then ChDir "c:"
End Sub


Bonsoir,

Est-il possible d'effectuer des tests conditionnels sur l'existence
d'un chemin ?

Ex :

IF "cette destination existe" :
ChDir "C:Documents and SettingstotoBureau" THEN
"cette destination"
ELSE
IF "cette autre destination existe" :
ChDir "C:Documents and SettingszazaBureau" THEN
"cette autre destination"
ETC.

C'est très mal exprimé, j'en conviens, mais peut-être m'aurez-vous
compris ...

Merci d'avance pour vos lumières,

Cordialement,

JP







Avatar
lSteph
Re,

un message de Dj te proposait de trouver à coup sûr un chemin
(c'est peut-être in fine une façon de traiter plus directement ton
objectif le cas échéant),
c'est bizarre mais cela arrive je ne le vois plus
ni le mien de ce matin ...

je résume donc mon bout de code se voulait expliquer méthodiquement
comment mettre
dans une variable tst booléeenne le résultat de cette vérification
cela peut s'utiliser dans une sub ou dans une fonction.
On error resume next saute l'erreur passe au suivant à chaque erreur
ce qui fait que même si tous les chemins sont valides si on en met
plusieurs le seul dernier sera executé donc exit le subterfuge
pourtant plus rapide de Jps sauf qu'en parlant d'exit
c'est ce qu'on pourrait utiliser, donc on suppose la liste des
chemins en a1:a10

Option Explicit

Sub cecheminsinonlautre()
Dim c As Range, tst As Boolean

For Each c In [a1:a10]
On Error Resume Next
ChDir c
tst = CurDir = c
If tst Then Exit For
Next
If Not tst Then ChDir "c:"
End Sub

'lSteph

On 28 sep, 00:02, "j-pascal" wrote:
Re,

Puis-je t'inviter à jeter un oeil sur les précisions que j'ai apport ées à
jps ?
Merci pour ta présente proposition, je testerai demain (zut, c'est dé jà
demain ;-( Chouette, je vais pouvoir tester mes MdP dynamiques [hs] )

Bonne nuit,

JP

"LSteph" a écrit dans le message de news:




Sub testchemin()
Dim tst As Boolean
On Error Resume Next
ChDir "c:nimportequoi"
tst = CurDir = "c:nimportequoi"
On Error GoTo 0
If Not tst Then ChDir "c:"
End Sub

Bonsoir,

Est-il possible d'effectuer des tests conditionnels sur l'existence d' un
chemin ?

Ex :

IF "cette destination existe" :
ChDir "C:Documents and SettingstotoBureau" THEN
"cette destination"
ELSE
IF "cette autre destination existe" :
ChDir "C:Documents and SettingszazaBureau" THEN
"cette autre destination"
ETC.

C'est très mal exprimé, j'en conviens, mais peut-être m'aurez-vo us
compris ...

Merci d'avance pour vos lumières,

Cordialement,

JP






Avatar
Daniel.j
En effet ..
Bizarre
Peut etre parce qu'il etait un peu long
Daniel
"lSteph" a écrit dans le message de news:

Re,

un message de Dj te proposait de trouver à coup sûr un chemin
(c'est peut-être in fine une façon de traiter plus directement ton
objectif le cas échéant),
c'est bizarre mais cela arrive je ne le vois plus
ni le mien de ce matin ...

je résume donc mon bout de code se voulait expliquer méthodiquement
comment mettre
dans une variable tst booléeenne le résultat de cette vérification
cela peut s'utiliser dans une sub ou dans une fonction.
On error resume next saute l'erreur passe au suivant à chaque erreur
ce qui fait que même si tous les chemins sont valides si on en met
plusieurs le seul dernier sera executé donc exit le subterfuge
pourtant plus rapide de Jps sauf qu'en parlant d'exit
c'est ce qu'on pourrait utiliser, donc on suppose la liste des
chemins en a1:a10

Option Explicit

Sub cecheminsinonlautre()
Dim c As Range, tst As Boolean

For Each c In [a1:a10]
On Error Resume Next
ChDir c
tst = CurDir = c
If tst Then Exit For
Next
If Not tst Then ChDir "c:"
End Sub

'lSteph

On 28 sep, 00:02, "j-pascal" wrote:
Re,

Puis-je t'inviter à jeter un oeil sur les précisions que j'ai apportées à
jps ?
Merci pour ta présente proposition, je testerai demain (zut, c'est déjà
demain ;-( Chouette, je vais pouvoir tester mes MdP dynamiques [hs] )

Bonne nuit,

JP

"LSteph" a écrit dans le message de news:




Sub testchemin()
Dim tst As Boolean
On Error Resume Next
ChDir "c:nimportequoi"
tst = CurDir = "c:nimportequoi"
On Error GoTo 0
If Not tst Then ChDir "c:"
End Sub

Bonsoir,

Est-il possible d'effectuer des tests conditionnels sur l'existence
d'un
chemin ?

Ex :

IF "cette destination existe" :
ChDir "C:Documents and SettingstotoBureau" THEN
"cette destination"
ELSE
IF "cette autre destination existe" :
ChDir "C:Documents and SettingszazaBureau" THEN
"cette autre destination"
ETC.

C'est très mal exprimé, j'en conviens, mais peut-être m'aurez-vous
compris ...

Merci d'avance pour vos lumières,

Cordialement,

JP






Avatar
Daniel.j
http://www.cijoint.fr/cij68083683227016.xls

Daniel

"lSteph" a écrit dans le message de news:

Re,

un message de Dj te proposait de trouver à coup sûr un chemin
(c'est peut-être in fine une façon de traiter plus directement ton
objectif le cas échéant),
c'est bizarre mais cela arrive je ne le vois plus
ni le mien de ce matin ...

je résume donc mon bout de code se voulait expliquer méthodiquement
comment mettre
dans une variable tst booléeenne le résultat de cette vérification
cela peut s'utiliser dans une sub ou dans une fonction.
On error resume next saute l'erreur passe au suivant à chaque erreur
ce qui fait que même si tous les chemins sont valides si on en met
plusieurs le seul dernier sera executé donc exit le subterfuge
pourtant plus rapide de Jps sauf qu'en parlant d'exit
c'est ce qu'on pourrait utiliser, donc on suppose la liste des
chemins en a1:a10

Option Explicit

Sub cecheminsinonlautre()
Dim c As Range, tst As Boolean

For Each c In [a1:a10]
On Error Resume Next
ChDir c
tst = CurDir = c
If tst Then Exit For
Next
If Not tst Then ChDir "c:"
End Sub

'lSteph

On 28 sep, 00:02, "j-pascal" wrote:
Re,

Puis-je t'inviter à jeter un oeil sur les précisions que j'ai apportées à
jps ?
Merci pour ta présente proposition, je testerai demain (zut, c'est déjà
demain ;-( Chouette, je vais pouvoir tester mes MdP dynamiques [hs] )

Bonne nuit,

JP

"LSteph" a écrit dans le message de news:




Sub testchemin()
Dim tst As Boolean
On Error Resume Next
ChDir "c:nimportequoi"
tst = CurDir = "c:nimportequoi"
On Error GoTo 0
If Not tst Then ChDir "c:"
End Sub

Bonsoir,

Est-il possible d'effectuer des tests conditionnels sur l'existence
d'un
chemin ?

Ex :

IF "cette destination existe" :
ChDir "C:Documents and SettingstotoBureau" THEN
"cette destination"
ELSE
IF "cette autre destination existe" :
ChDir "C:Documents and SettingszazaBureau" THEN
"cette autre destination"
ETC.

C'est très mal exprimé, j'en conviens, mais peut-être m'aurez-vous
compris ...

Merci d'avance pour vos lumières,

Cordialement,

JP






1 2