OVH Cloud OVH Cloud

ouvrire un dossier choisir

4 réponses
Avatar
pellet15
Bonjour =E0 tous

Avec un VBA j'ouvre un dossier et choisie un fichier et ex=E9cute
une proc=E9dure BLABLA.
je voudrait conserver le nom du fichier et rechercher le m=EAme non
mais avec "_1 " ,l'ex=E9cuter ma proc=E9dure puis continuer avec " _2 "
la m=EAme chose jusqua la possibilit=E9 de " _9 ".

EXP: Montr=E9al.pri (choisie Montr=E9al)
ex=E9cute la proc=E9dure BLABLA
ex=E9cute la proc=E9dure BLABLA avec le fichier
Montr=E9al_1.pri
ex=E9cute la proc=E9dure BLABLA avec le fichier
Montr=E9al_2.pri
ex=E9cute la proc=E9dure BLABLA avec le fichier
Montr=E9al_3.pri
ex=E9cute la proc=E9dure BLABLA avec le fichier
Montr=E9al_4.pri
ainsi de suite maximum de 9.
parfois il y en plusieur fichiers et parfois un seul .

Comment =E9crire ces commandes. ??? =20

Merci

4 réponses

Avatar
IdAL
Bonjour,

Tu peux peut-être essayer ça :

Sub Essai1()
Dim Chemin As String
Dim NomFichier, NomFichierSuite As String
'Dim Erreur As Long
Dim i As Integer
NomFichier = Application.GetOpenFilename("(*.xls), *.xls")
Chemin = NomFichier
Workbooks.Open Filename:=Chemin
Chemin = ActiveWorkbook.Path
NomFichier = ActiveWorkbook.Name
ChDir (Chemin)
'Macro BLABLA
ActiveWorkbook.Close True 'pour enregistrer sans alerte !
For i = 1 To 9
On Error GoTo Ligne1 'Si le fichier n'existe pas
NomFichierSuite = NomFichier & "_" & i
Chemin = Chemin & Application.PathSeparator & NomFichierSuite
Workbooks.Open Filename:=Chemin
If ActiveWorkbook.Name = NomFichierSuite Then
'Macro BLABLA
End If
Next i
Ligne1:
Erreur = Err.Number
Err.Clear
If Erreur = 1004 Then
Erreur = 0
Resume Next
End If
End Sub

IdAL

"pellet15" wrote:

Bonjour à tous

Avec un VBA j'ouvre un dossier et choisie un fichier et exécute
une procédure BLABLA.
je voudrait conserver le nom du fichier et rechercher le même non
mais avec "_1 " ,l'exécuter ma procédure puis continuer avec " _2 "
la même chose jusqua la possibilité de " _9 ".

EXP: Montréal.pri (choisie Montréal)
exécute la procédure BLABLA
exécute la procédure BLABLA avec le fichier
Montréal_1.pri
exécute la procédure BLABLA avec le fichier
Montréal_2.pri
exécute la procédure BLABLA avec le fichier
Montréal_3.pri
exécute la procédure BLABLA avec le fichier
Montréal_4.pri
ainsi de suite maximum de 9.
parfois il y en plusieur fichiers et parfois un seul .

Comment écrire ces commandes. ???

Merci




Avatar
pellet15
Bonjour IdAL
J'ai addapter cela avec mes fichier mais cela ne sélection pas
il exécute le premier mais ne trouve pas les autres ( xxxx_1, xxxx_2
ect)
Ou cela accroche t'il ??? (je peut te faire parvenir les fichiers)

Merci

Sub Essai1()
Sheets("Priority Defect").Select
Range("A1").Select

Dim Chemin As String
Dim NomFichier, NomFichierSuite As String
'Dim Erreur As Long
Dim i As Integer
NomFichier = Application.GetOpenFilename("(*.pri), *.pri")
Chemin = NomFichier
Workbooks.Open Filename:=Chemin
Chemin = ActiveWorkbook.Path
NomFichier = ActiveWorkbook.Name
ChDir (Chemin)
Application.Run "Model_camionTest.xls!Convertir_1_fichier"
Application.Run "Model_camionTest.xls!extraire_donne"
For i = 1 To 3
On Error GoTo Ligne1 'Si le fichier n'existe pas
NomFichierSuite = NomFichier & "_" & i
Chemin = Chemin & Application.PathSeparator & NomFichierSuite
Workbooks.Open Filename:=Chemin
If ActiveWorkbook.Name = NomFichierSuite Then
Application.Run "Model_camionTest.xls!Convertir_2_fichier"
Application.Run "Model_camionTest.xls!extraire_donne"
End If
Next i
Ligne1:
Erreur = Err.Number
Err.Clear
If Erreur = 1004 Then
Erreur = 0
Resume Next
End If
End Sub
Avatar
IdAL
ok, envoie le tout, je regarde et te tiens au courant.


Avatar
IdAL
Après correction :


Sub Essai1()
Sheets("Priority Defect").Select
Range("A1").Select

Dim Chemin, CheminSuite As String
Dim NomFichier, NomFichierSuite As String
Dim i As Integer
Application.ScreenUpdating = False
NomFichier = Application.GetOpenFilename("(*.pri), *.pri")
Chemin = NomFichier
Workbooks.Open Filename:=Chemin
Chemin = ActiveWorkbook.Path
NomFichier = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4)
ChDir (Chemin)
Application.Run "Model_camionTest.xls!Convertir_1_fichier"
Application.Run "Model_camionTest.xls!extraire_donne"
'Macro BLABLA

For i = 1 To 3
On Error GoTo Ligne1 'Si le fichier n'existe pas
NomFichierSuite = NomFichier & "_" & i & ".pri"
CheminSuite = Chemin & Application.PathSeparator & NomFichierSuite
Workbooks.Open Filename:=CheminSuite
If ActiveWorkbook.Name = NomFichierSuite Then
Application.Run "Model_camionTest.xls!Convertir_2_fichier"
Application.Run "Model_camionTest.xls!extraire_donne" 'Macro BLABLA
End If
Next i
Ligne1:
Erreur = Err.Number
Err.Clear
If Erreur = 1004 Then
Erreur = 0
Resume Next
End If
End Sub