Recherche de sous dossier en vba
Résolu/Fermé
A voir également:
- Vba recherche fichier dans dossier et sous dossier
- Dossier appdata - Guide
- Fichier rar - Guide
- Mettre un mot de passe sur un dossier - Guide
- Dossier démarrage - Guide
- Impossible de supprimer un dossier - Guide
19 réponses
j'ai fait une erreur, c'est celui-ci :
Private Sub CommandButton5_Click()
Dim QuelFichier
Dim serie As String
serie = TextBox2
quelfichier = Dir "X:\CAD\Export_Data\Fichiers_Testeurs\" & serie & "\Map everest.wcf"
If quelfichier <> "" Then
MsgBox QuelFichier
Else
MsgBox "Vous n'avez pas sélectionné de fichier"
End If
End Sub
Private Sub CommandButton5_Click()
Dim QuelFichier
Dim serie As String
serie = TextBox2
quelfichier = Dir "X:\CAD\Export_Data\Fichiers_Testeurs\" & serie & "\Map everest.wcf"
If quelfichier <> "" Then
MsgBox QuelFichier
Else
MsgBox "Vous n'avez pas sélectionné de fichier"
End If
End Sub
Bonjour,
tu mets la valeur de ta textbox dans une variable :
varibale = textbox(....)
et quand tu écris pour ouvrir ton fichier :
"C:\Users\thony\Desktop\D1230_1265\" & variable
tu mets la valeur de ta textbox dans une variable :
varibale = textbox(....)
et quand tu écris pour ouvrir ton fichier :
"C:\Users\thony\Desktop\D1230_1265\" & variable
Bonjour,
j'ai bien peur de ne pas être au niveau requis :-(
voici le code que j'ai écrit mais ça plante (runtime error 76, path not find)
Private Sub CommandButton5_Click()
Dim QuelFichier
Dim serie As String
serie = TextBox2
ChDrive ("X") 'lettre du lecteur sur lequel on cherche.
ChDir "X:\CAD\Export_Data\Fichiers_Testeurs" & serie
QuelFichier = Application.GetOpenFilename("Map everest,*.wcf")
If QuelFichier <> False Then
MsgBox QuelFichier
Else
MsgBox "Vous n'avez pas sélectionné de fichier"
End If
End Sub
le fichier a trouver se trouve dans un sous dossier variable selon la valeur de la textbox
j'ai bien peur de ne pas être au niveau requis :-(
voici le code que j'ai écrit mais ça plante (runtime error 76, path not find)
Private Sub CommandButton5_Click()
Dim QuelFichier
Dim serie As String
serie = TextBox2
ChDrive ("X") 'lettre du lecteur sur lequel on cherche.
ChDir "X:\CAD\Export_Data\Fichiers_Testeurs" & serie
QuelFichier = Application.GetOpenFilename("Map everest,*.wcf")
If QuelFichier <> False Then
MsgBox QuelFichier
Else
MsgBox "Vous n'avez pas sélectionné de fichier"
End If
End Sub
le fichier a trouver se trouve dans un sous dossier variable selon la valeur de la textbox
Re,
Essaie avec ce code la :
Private Sub CommandButton5_Click()
Dim QuelFichier
Dim serie As String
serie = TextBox2
quelfichier = Dir "X:\CAD\Export_Data\Fichiers_Testeurs\" & serie & "\Map everest.wcf"
If dir <> "" Then
MsgBox QuelFichier
Else
MsgBox "Vous n'avez pas sélectionné de fichier"
End If
End Sub
Essaie avec ce code la :
Private Sub CommandButton5_Click()
Dim QuelFichier
Dim serie As String
serie = TextBox2
quelfichier = Dir "X:\CAD\Export_Data\Fichiers_Testeurs\" & serie & "\Map everest.wcf"
If dir <> "" Then
MsgBox QuelFichier
Else
MsgBox "Vous n'avez pas sélectionné de fichier"
End If
End Sub
bonsoir,
ca serait possible d'écrire le code, si vos dossiers étaient
DXXX_1299
car le code serait :
quelfichier = Dir "X:\CAD\Export_Data\Fichiers_Testeurs\D" & serie & "_1299"
sauf que vous c'est DXXX_001, DXXX_002...
vous avez bcp de dossiers?
ca serait possible d'écrire le code, si vos dossiers étaient
DXXX_1299
car le code serait :
quelfichier = Dir "X:\CAD\Export_Data\Fichiers_Testeurs\D" & serie & "_1299"
sauf que vous c'est DXXX_001, DXXX_002...
vous avez bcp de dossiers?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Private Sub CommandButton5_Click()
Dim QuelFichier
Dim serie As String
dim fso As Object, Dossier As Object
Dim sousRep As Object, Flder As Object
serie = TextBox2
'définit ton répertoire de travail
LeDossier = "X:\CAD\Export_Data\Fichiers_Testeurs\"
quelfichier = ""
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = fso.GetFolder(LeDossier)
'examen du répertoire courant
For Each Flder In Dossier.subfolders 'pour chacun de tes sous dossiers
if left(flder,len(serie)+2+len(LeDossier) = Ledossier & "\D" & serie
quelfichier =1
end if
Next
If quelfichier <> "" Then
MsgBox QuelFichier
Else
MsgBox "Vous n'avez pas sélectionné de fichier"
End If
end sub
Ca va parcourir tous tes sous dossiers. est-ce que ca marche?
Private Sub CommandButton5_Click()
Dim QuelFichier
Dim serie As String
dim fso As Object, Dossier As Object
Dim sousRep As Object, Flder As Object
serie = TextBox2
'définit ton répertoire de travail
LeDossier = "X:\CAD\Export_Data\Fichiers_Testeurs\"
quelfichier = ""
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = fso.GetFolder(LeDossier)
'examen du répertoire courant
For Each Flder In Dossier.subfolders 'pour chacun de tes sous dossiers
if left(flder,len(serie)+2+len(LeDossier) = Ledossier & "\D" & serie
quelfichier =1
end if
Next
If quelfichier <> "" Then
MsgBox QuelFichier
Else
MsgBox "Vous n'avez pas sélectionné de fichier"
End If
end sub
Ca va parcourir tous tes sous dossiers. est-ce que ca marche?
Au cas ou, avant le if left...
écrit :
a = left(flder,len(serie)+2+len(LeDossier)
b = Ledossier & "\D" & serie
et appuie sur F8, lorsque tu a spassé ces deux lignes, positionne ta souris sur a et b et regarde à quoi c'est égal.
Pour info :
len(x) = nombre de caractères d'une variable
left(x,y) = prend la gauche de la variable sur y caractères
exemepl : left("abcd",1 ) = "a"
left("abc",3) = "abc"
écrit :
a = left(flder,len(serie)+2+len(LeDossier)
b = Ledossier & "\D" & serie
et appuie sur F8, lorsque tu a spassé ces deux lignes, positionne ta souris sur a et b et regarde à quoi c'est égal.
Pour info :
len(x) = nombre de caractères d'une variable
left(x,y) = prend la gauche de la variable sur y caractères
exemepl : left("abcd",1 ) = "a"
left("abc",3) = "abc"
Bonjour,
j'ai fait une petite erreur :
remplace cette ligne :
if left(flder,len(serie)+2+len(LeDossier) = Ledossier & "\D" & serie
par
if left(flder,len(serie)+2+len(LeDossier) = Ledossier & "D" & serie
Le mieux est que tu fasses des tests et vois si ca marche car je vais pas avoir bcp de temps aujourd'hui pour regarder ton fichier.
Dis moi si ca te donne le résultat escompté.
j'ai fait une petite erreur :
remplace cette ligne :
if left(flder,len(serie)+2+len(LeDossier) = Ledossier & "\D" & serie
par
if left(flder,len(serie)+2+len(LeDossier) = Ledossier & "D" & serie
Le mieux est que tu fasses des tests et vois si ca marche car je vais pas avoir bcp de temps aujourd'hui pour regarder ton fichier.
Dis moi si ca te donne le résultat escompté.
par contre je me rends compte qu'il y a une logique de nomenclature des dossiers après X:\CAD\Export_Data\Fichiers_Testeurs\
c'est par série, ça commence avec le premier dossier
D750_774
D775_799
D800_824 .....
D2625_2649
D2650_2674
donc on a une série de 24, est ce que ça peut aider à définir dans quel répertoire trouver le dossier = textbox2 ?
c'est par série, ça commence avec le premier dossier
D750_774
D775_799
D800_824 .....
D2625_2649
D2650_2674
donc on a une série de 24, est ce que ça peut aider à définir dans quel répertoire trouver le dossier = textbox2 ?
Oui, ca aide beaucoup plus :
Private Sub CommandButton5_Click()
Dim QuelFichier
Dim serie As String
serie = TextBox2
variable = 750
QuelFichier = "X:\CAD\Export_Data\Fichiers_Testeurs\ D"
Do While variable < 999999999
If Dir(QuelFichier & variable & "_" & variable + 24 & "\" & serie & "\Map everest.wcf") <> "" Then
variables = variable
variable = 999999999 + 1
End If
variable = variable + 1
Loop
If variables <> "" Then
MsgBox "X:\CAD\Export_Data\Fichiers_Testeurs\D" & variables & "_" & variables + 24 & "\" & serie & "\Map everest.wcf"
Else
MsgBox "Vous n'avez pas sélectionné de fichier"
End If
End Sub
On devrait y arriver non?
Private Sub CommandButton5_Click()
Dim QuelFichier
Dim serie As String
serie = TextBox2
variable = 750
QuelFichier = "X:\CAD\Export_Data\Fichiers_Testeurs\ D"
Do While variable < 999999999
If Dir(QuelFichier & variable & "_" & variable + 24 & "\" & serie & "\Map everest.wcf") <> "" Then
variables = variable
variable = 999999999 + 1
End If
variable = variable + 1
Loop
If variables <> "" Then
MsgBox "X:\CAD\Export_Data\Fichiers_Testeurs\D" & variables & "_" & variables + 24 & "\" & serie & "\Map everest.wcf"
Else
MsgBox "Vous n'avez pas sélectionné de fichier"
End If
End Sub
On devrait y arriver non?
Bonjour,
entre Do While variable < 999999999 et
If Dir(QuelFichier & variable & "_" & variable + 24 & "\" & serie & "\Map everest.wcf")
ajoute a = QuelFichier & variable & "_" & variable + 24 & "\" & serie & "\Map everest.wcf"
fait F8.
La valeur de a est-elle conforme à tes dossiers?
entre Do While variable < 999999999 et
If Dir(QuelFichier & variable & "_" & variable + 24 & "\" & serie & "\Map everest.wcf")
ajoute a = QuelFichier & variable & "_" & variable + 24 & "\" & serie & "\Map everest.wcf"
fait F8.
La valeur de a est-elle conforme à tes dossiers?
hello
ça m'affiche X:\CAD\Export_Data\Fichiers_Testeurs\D750_754\1296
au lieu de X:\CAD\Export_Data\Fichiers_Testeurs\D1275_1299\1296
donc visiblement il ne fait pas le recherche sur les dossiers en D
en si en fait je commence à réfléchir, en fait c'est bon, il inscrit bien la bonne nomenclature et c'est ensuite que la boucle va se faire
ça m'affiche X:\CAD\Export_Data\Fichiers_Testeurs\D750_754\1296
au lieu de X:\CAD\Export_Data\Fichiers_Testeurs\D1275_1299\1296
donc visiblement il ne fait pas le recherche sur les dossiers en D
en si en fait je commence à réfléchir, en fait c'est bon, il inscrit bien la bonne nomenclature et c'est ensuite que la boucle va se faire
re
j'ai modifié ton code et je commence à comprendre pourquoi tu m'as fait rajouter la ligne
a = ......
j'ai intégré un break point après le loop et j'ai fait du pas à pas en regardant la valeur que prend a à chaque tour.
donc ça basculait de 750, 751, 752
du coup j'ai modifié le +1 en +25 et j'obtiens les noms de dossiers comme dans mon répertoire
End If
variable = variable + 25
Loop
j'ai enlevé le break point et lancé la macro. il y a le sablier et ça ne répond plus :-(
j'ai modifié ton code et je commence à comprendre pourquoi tu m'as fait rajouter la ligne
a = ......
j'ai intégré un break point après le loop et j'ai fait du pas à pas en regardant la valeur que prend a à chaque tour.
donc ça basculait de 750, 751, 752
du coup j'ai modifié le +1 en +25 et j'obtiens les noms de dossiers comme dans mon répertoire
End If
variable = variable + 25
Loop
j'ai enlevé le break point et lancé la macro. il y a le sablier et ça ne répond plus :-(
je pense comprendre en faisant le pas à pas, en fait la boucle perdure sans vérifier que 1293 (valeur textbox) est bien dans le dossier D1275_1299
la boucle se poursuit.
que faut il écrire pour lui faire comprendre qu'on est dans le bon dossier et que la boucle s'arrête pour ouvrir ce dossier 1293 dans le répertoire D1275_1299 ?
la boucle se poursuit.
que faut il écrire pour lui faire comprendre qu'on est dans le bon dossier et que la boucle s'arrête pour ouvrir ce dossier 1293 dans le répertoire D1275_1299 ?
pour que la boucle s'arrête :
tu dis variables = variable (pour enregistrer la bonne valeur)
et que variable = 999999999 + 1
mais la macro est longue parce que la boucle tourne jusqu'à ce qu'à
variable soit supérieur à 999999999
tu peux modifier ce chiffre et mettre la valeur que tu veux.
Dir(QuelFichier & variable & "_" & variable + 24 & "\" & serie & "\Map everest.wcf") ==> regarde si le fichier Map everest.wcf est dans le dossier quelfichier\valeurvariable_valeurvariable+24
a adapter.
tu dis variables = variable (pour enregistrer la bonne valeur)
et que variable = 999999999 + 1
mais la macro est longue parce que la boucle tourne jusqu'à ce qu'à
variable soit supérieur à 999999999
tu peux modifier ce chiffre et mettre la valeur que tu veux.
Dir(QuelFichier & variable & "_" & variable + 24 & "\" & serie & "\Map everest.wcf") ==> regarde si le fichier Map everest.wcf est dans le dossier quelfichier\valeurvariable_valeurvariable+24
a adapter.
Voici ce que j'ai fait
Private Sub CommandButton7_Click()
Dim QuelFichier
Dim serie As String
serie = TextBox2
variable = 750
QuelFichier = "X:\CAD\Export_Data\Fichiers_Testeurs\D"
Do While variable < 999999999
a = QuelFichier & variable & "_" & variable + 24 & "\" & serie & "\"
If serie <= variable + 24 Then
Application.Dialogs(xlDialogOpen).Show a
Else
End If
variable = variable + 25
Loop
End Sub
le truc c'est que ça m'ouvre bien la fenêtre de sélection mais pas dan sle répertoire qu'on vient de définir, ça ouvre dans "mes documents" (sauf que j'ai les extensions xls alors qu'il me faudrait seulement les fichiers en .wcf) et la fenêtre s'ouvre perpétuellement comme si ça bouclait dessus.
je ne sais pas si j'utilise les bons codes, le but étant d'ouvrir le dossier ayant le nom de la textbox2
Private Sub CommandButton7_Click()
Dim QuelFichier
Dim serie As String
serie = TextBox2
variable = 750
QuelFichier = "X:\CAD\Export_Data\Fichiers_Testeurs\D"
Do While variable < 999999999
a = QuelFichier & variable & "_" & variable + 24 & "\" & serie & "\"
If serie <= variable + 24 Then
Application.Dialogs(xlDialogOpen).Show a
Else
End If
variable = variable + 25
Loop
End Sub
le truc c'est que ça m'ouvre bien la fenêtre de sélection mais pas dan sle répertoire qu'on vient de définir, ça ouvre dans "mes documents" (sauf que j'ai les extensions xls alors qu'il me faudrait seulement les fichiers en .wcf) et la fenêtre s'ouvre perpétuellement comme si ça bouclait dessus.
je ne sais pas si j'utilise les bons codes, le but étant d'ouvrir le dossier ayant le nom de la textbox2
Private Sub CommandButton7_Click()
Dim QuelFichier
Dim serie As String
serie = TextBox2
variable = 750
QuelFichier = "X:\CAD\Export_Data\Fichiers_Testeurs\D"
Do While variable < 999999999
a = QuelFichier & variable & "_" & variable + 24 & "\" & serie & "\"
If dir(a,vbdirectory)<>"" Then
chdir (a)
Application.Dialogs(xlDialogOpen).Show
Else
End If
variable = variable + 25
Loop
End Sub
Je n'ai pas trouvé pour l'extension. désolée
Dim QuelFichier
Dim serie As String
serie = TextBox2
variable = 750
QuelFichier = "X:\CAD\Export_Data\Fichiers_Testeurs\D"
Do While variable < 999999999
a = QuelFichier & variable & "_" & variable + 24 & "\" & serie & "\"
If dir(a,vbdirectory)<>"" Then
chdir (a)
Application.Dialogs(xlDialogOpen).Show
Else
End If
variable = variable + 25
Loop
End Sub
Je n'ai pas trouvé pour l'extension. désolée
je susi navré pour le temps que je te prends car tu dosi avoir bien plus urgent à faire.
en tous les cas je te remercie de ton aide car les choses ont considérablement avancé grâce à toi.
c'est étrange, ça m'ouvre bien l'explorer mais dns le dossier "mes documents"
et quand je fais annuler sur la fenêtre de l'explorer, ça fait planter excel
en tous les cas je te remercie de ton aide car les choses ont considérablement avancé grâce à toi.
c'est étrange, ça m'ouvre bien l'explorer mais dns le dossier "mes documents"
et quand je fais annuler sur la fenêtre de l'explorer, ça fait planter excel
voilà ce que j'ai fait et là pas trop de soucis
Private Sub CommandButton7_Click()
Dim QuelFichier
Dim serie As String
Dim trouve
serie = textbox2
variable = 750
QuelFichier = "X:\CAD\Export_Data\Fichiers_Testeurs\D"
Do While variable < 999999999
a = QuelFichier & variable & "_" & variable + 24 & "\" & serie & "\"
If serie <= variable + 24 Then
'If Dir(a, vbDirectory) <> "" Then
ChDrive ("X")
ChDir (a)
trouve = Application.GetOpenFilename("Map everest,*.wcf", , Ouvrir)
'Application.Dialogs(xlDialogOpen).Show
Else
End If
variable = variable + 25
Loop
End Sub
quand je fixe uen valeur serie = 960 ça ne fait plus planter excel en utilisant getOpenFileName et je peux lui préciser l'extension.
et j'ai rajouté chdrive avant chdir, ça m'ouvre bien le dossier
par contre quand je fais serie = textbox2 ça me dit que le path n'est pas trouvable et en effet quand je regarde la valeur de a il reste bloqué sur le dossier D750_774 alors que la valeur est 2622, en fait visiblement la boucle ne se fait plus
je ne comprends plus rien
Private Sub CommandButton7_Click()
Dim QuelFichier
Dim serie As String
Dim trouve
serie = textbox2
variable = 750
QuelFichier = "X:\CAD\Export_Data\Fichiers_Testeurs\D"
Do While variable < 999999999
a = QuelFichier & variable & "_" & variable + 24 & "\" & serie & "\"
If serie <= variable + 24 Then
'If Dir(a, vbDirectory) <> "" Then
ChDrive ("X")
ChDir (a)
trouve = Application.GetOpenFilename("Map everest,*.wcf", , Ouvrir)
'Application.Dialogs(xlDialogOpen).Show
Else
End If
variable = variable + 25
Loop
End Sub
quand je fixe uen valeur serie = 960 ça ne fait plus planter excel en utilisant getOpenFileName et je peux lui préciser l'extension.
et j'ai rajouté chdrive avant chdir, ça m'ouvre bien le dossier
par contre quand je fais serie = textbox2 ça me dit que le path n'est pas trouvable et en effet quand je regarde la valeur de a il reste bloqué sur le dossier D750_774 alors que la valeur est 2622, en fait visiblement la boucle ne se fait plus
je ne comprends plus rien
re,
il faudrait avant le end sub que tu écrives
quelfichier =""
serie =""
a =""
variable = ""
et vois si ca le refait. Sinon, j'ai pas d'explications.
J'essaie de t'aider un maximum mais c'est pas évident!
il faudrait avant le end sub que tu écrives
quelfichier =""
serie =""
a =""
variable = ""
et vois si ca le refait. Sinon, j'ai pas d'explications.
J'essaie de t'aider un maximum mais c'est pas évident!
et regarde la valeur de trouve en pas à pas (F8) si ca se trouve, y unpb sur l'une des variables.
Je suis désolée que ca ait pris autant de temps. J'ai cru qu'on allait jamais y arrivé. C'est pas évident à distance.
en tout cas, heureuse que tu ais obtenu le résultat escompté.
en tout cas, heureuse que tu ais obtenu le résultat escompté.
Bonsoir Mélanie
les utilisateurs sont tombés sur le cas qui déroge ^^
textbox 2 = 1451
Ce répertoire existe X:\CAD\Export_Data\Fiches_liaison\D1450_1474
par contre il n'y a pas de sous dossier 1451 existant, la macro leur a affiché une erreur 52, bad name or number et du coup la panique car ne sachant pas quoi faire.
comment éviter que le débuguer s'affiche avec cette erreur et qu'à la place j'ai un message prévenant que le dossier ayant le nom de la textbox2 n'existe pas ?
Private Sub CommandButton5_Click()
Dim QuelFichier
Dim serie As String
Dim trouve
serie = TextBox2
variable = 750 'correspond au n° du premier dossier
QuelFichier = "X:\CAD\Export_Data\Fiches_liaison\D" 'répertoire contenant les dossiers
Do While variable < 9999
a = QuelFichier & variable & "_" & variable + 24 & "\" & serie & "\" 'défini la structure des répertoire de recherche
If Dir(a, vbDirectory) <> "" Then
ChDrive ("X") 'précise le disque dans lequel chercher
ChDir (a) 'précise les répertoires dans lesquels se placer
trouve = Application.GetOpenFilename("Map pdf,*.pdf", , Ouvrir) 'ouvre la fenêtre d'exploration avec l'extension du fichier précisée
Exit Sub 'met fin à la macro sans quoi excel plante
Else
End If
variable = variable + 25 'définit la valeur qu'il faut ajouter pour passer au dossier suivant
Loop
Exit Sub 'met fin à la macro sans quoi excel plante
End Sub
juste par curiosité. quand le dossier existe, ça m'ouvre donc la fenêtre avec les fichiers en pdf accessible, par contre quand je sélectionne celui que je veux et je fais "open" rien ne se passe. pour que je puisse accéder au fichier dans acrobat, je dosi faire clic droit et open et là ça s'ouvre. que faut il faire pour que ça s'ouvre directement sans le clic droit ?
merci à toi si tu as le temps de voir
les utilisateurs sont tombés sur le cas qui déroge ^^
textbox 2 = 1451
Ce répertoire existe X:\CAD\Export_Data\Fiches_liaison\D1450_1474
par contre il n'y a pas de sous dossier 1451 existant, la macro leur a affiché une erreur 52, bad name or number et du coup la panique car ne sachant pas quoi faire.
comment éviter que le débuguer s'affiche avec cette erreur et qu'à la place j'ai un message prévenant que le dossier ayant le nom de la textbox2 n'existe pas ?
Private Sub CommandButton5_Click()
Dim QuelFichier
Dim serie As String
Dim trouve
serie = TextBox2
variable = 750 'correspond au n° du premier dossier
QuelFichier = "X:\CAD\Export_Data\Fiches_liaison\D" 'répertoire contenant les dossiers
Do While variable < 9999
a = QuelFichier & variable & "_" & variable + 24 & "\" & serie & "\" 'défini la structure des répertoire de recherche
If Dir(a, vbDirectory) <> "" Then
ChDrive ("X") 'précise le disque dans lequel chercher
ChDir (a) 'précise les répertoires dans lesquels se placer
trouve = Application.GetOpenFilename("Map pdf,*.pdf", , Ouvrir) 'ouvre la fenêtre d'exploration avec l'extension du fichier précisée
Exit Sub 'met fin à la macro sans quoi excel plante
Else
End If
variable = variable + 25 'définit la valeur qu'il faut ajouter pour passer au dossier suivant
Loop
Exit Sub 'met fin à la macro sans quoi excel plante
End Sub
juste par curiosité. quand le dossier existe, ça m'ouvre donc la fenêtre avec les fichiers en pdf accessible, par contre quand je sélectionne celui que je veux et je fais "open" rien ne se passe. pour que je puisse accéder au fichier dans acrobat, je dosi faire clic droit et open et là ça s'ouvre. que faut il faire pour que ça s'ouvre directement sans le clic droit ?
merci à toi si tu as le temps de voir
Bonjour,
Pour ta seonde question, le mieux est que tu recherches sur google "ouvrir pdf vba excel" je pense que tu touveras le code correspondant (j'ai pas le temps de le faire)
sinon modifie ta macro comme suit :
Private Sub CommandButton5_Click()
Dim QuelFichier
Dim serie As String
Dim trouve
serie = TextBox2
variable = 750 'correspond au n° du premier dossier
QuelFichier = "X:\CAD\Export_Data\Fiches_liaison\D" 'répertoire contenant les dossiers
Do While variable < 9999
a = QuelFichier & variable & "_" & variable + 24 & "\" & serie & "\" 'défini la structure des répertoire de recherche
If Dir(a, vbDirectory) <> "" Then
ChDrive ("X") 'précise le disque dans lequel chercher
ChDir (a) 'précise les répertoires dans lesquels se placer
trouve = Application.GetOpenFilename("Map pdf,*.pdf", , Ouvrir) 'ouvre la fenêtre d'exploration avec l'extension du fichier précisée
if trouve = "" then
msgbox ("Vous n'avez sélectionné aucun fichier")
end if
Exit Sub 'met fin à la macro sans quoi excel plante
Else
End If
variable = variable + 25 'définit la valeur qu'il faut ajouter pour passer au dossier suivant
Loop
Exit Sub 'met fin à la macro sans quoi excel plante
End Sub
Pour ta seonde question, le mieux est que tu recherches sur google "ouvrir pdf vba excel" je pense que tu touveras le code correspondant (j'ai pas le temps de le faire)
sinon modifie ta macro comme suit :
Private Sub CommandButton5_Click()
Dim QuelFichier
Dim serie As String
Dim trouve
serie = TextBox2
variable = 750 'correspond au n° du premier dossier
QuelFichier = "X:\CAD\Export_Data\Fiches_liaison\D" 'répertoire contenant les dossiers
Do While variable < 9999
a = QuelFichier & variable & "_" & variable + 24 & "\" & serie & "\" 'défini la structure des répertoire de recherche
If Dir(a, vbDirectory) <> "" Then
ChDrive ("X") 'précise le disque dans lequel chercher
ChDir (a) 'précise les répertoires dans lesquels se placer
trouve = Application.GetOpenFilename("Map pdf,*.pdf", , Ouvrir) 'ouvre la fenêtre d'exploration avec l'extension du fichier précisée
if trouve = "" then
msgbox ("Vous n'avez sélectionné aucun fichier")
end if
Exit Sub 'met fin à la macro sans quoi excel plante
Else
End If
variable = variable + 25 'définit la valeur qu'il faut ajouter pour passer au dossier suivant
Loop
Exit Sub 'met fin à la macro sans quoi excel plante
End Sub
hello
ça ne donne rien, ça serait valable si on avait l'exploreur et qu'on ne sélectionnait aucun fichier.
là le pb rencontré, c'est que le dossier cherché n'existe pas et il faudrait un msgbox qui indique "ce dossier n'existe pas"
je n'arrive pas à savoir comment le traduire et où le placer sinon j'ai la boucle qui ne se fait plus en m'indiquant "loop without do"
ça ne donne rien, ça serait valable si on avait l'exploreur et qu'on ne sélectionnait aucun fichier.
là le pb rencontré, c'est que le dossier cherché n'existe pas et il faudrait un msgbox qui indique "ce dossier n'existe pas"
je n'arrive pas à savoir comment le traduire et où le placer sinon j'ai la boucle qui ne se fait plus en m'indiquant "loop without do"
juste par curiosité si tu écris :
ChDrive ("X") 'précise le disque dans lequel chercher
ChDir (a) 'précise les répertoires dans lesquels se placer
zz = chdir(a)
A quoi est égal zz quand le dossier n'existe pas?
Il me semble à ""
si c'est le cas
if chdir(a) = "" then
msgbox("dossier inexistant")
else
trouve =....
end if
ChDrive ("X") 'précise le disque dans lequel chercher
ChDir (a) 'précise les répertoires dans lesquels se placer
zz = chdir(a)
A quoi est égal zz quand le dossier n'existe pas?
Il me semble à ""
si c'est le cas
if chdir(a) = "" then
msgbox("dossier inexistant")
else
trouve =....
end if
Bonjour,
le plussimple, envois ton fichier sur ci-joint.fr
le plussimple, envois ton fichier sur ci-joint.fr
j'ai trouvé une parade en rajoutant en début de code
on error goto erreur
et avant le end sub j'ai indiqué
erreur :
msgbox ("Le dossier de la série " & serie & " n'existe pas !")
du coup ça pallie le débogueur mais maintenant si un autre bug pointe son nez il n'y a plus moyen de connaître le type d'erreur.
mais je ne suis pas inquiet, c'est un très bon code que tu as fait là :-)
là j'ai pas la bonne version du prgramme, si tu veux vraiment y jeter un oeil je peux te l'envoyer demain
on error goto erreur
et avant le end sub j'ai indiqué
erreur :
msgbox ("Le dossier de la série " & serie & " n'existe pas !")
du coup ça pallie le débogueur mais maintenant si un autre bug pointe son nez il n'y a plus moyen de connaître le type d'erreur.
mais je ne suis pas inquiet, c'est un très bon code que tu as fait là :-)
là j'ai pas la bonne version du prgramme, si tu veux vraiment y jeter un oeil je peux te l'envoyer demain
25 janv. 2011 à 14:08
quelfichier = Dir "X:\CAD\Export_Data\Fichiers_Testeurs\" & serie
25 janv. 2011 à 15:33
X:\CAD\Export_Data\Fichiers_Testeurs\D1275_1299\1293
partie des répertoires fixes : X:\CAD\Export_Data\Fichiers_Testeurs\
textbox2 = 1293
par contre D1275_1299 serait le dossier D900_924 si textbox2=900
donc la recherche se fait sur un nom contenu dans un répertoire variable