OVH Cloud OVH Cloud

Probleme sur le ".Open"...

5 réponses
Avatar
Nosferalto
Bonjour =E0 tous !
J'ai enfin trouv=E9 ou presque gr=E2ce =E0 Misange ;)
surperbe son site d'ailleurs !
J'ai un autre probl=E8me,
Le but du jeu est de faire une macro qui liste des=20
fichiers Excel contenu dans un r=E9pertoire X
=E7a c fait ! j'arrive =E0 la faire parfatement, par contre=20
pour la suite,
je souhaite recuperer cette meme liste
pour faire un traitement sur ces fichiers en les ouvrant=20
automatiquement...
L=E0 par contre je ne vois pas malg=E9 mes recherches
L'erreur qu'il me met :=20
sur :".Open"

j'ai mis un bout du code dans le contenu de ce message cf.
ci-dessous.
Merci pour votre aide si precieuse !

PS : je suis toujours d=E9butant ;)

Code :=20

.../...
' boucle qui me permet de recuperer le nom des fichiers=20
For j =3D 0 To i - 1
ActiveSheet.[Titre].Value =3D i & " FICHIERS " & UCase(xxx)
ActiveSheet.[DebListe].Offset(j, 0).Value =3D tabFich(j)

' C'est ici qu'il me met l'erreur sur le -.Open-
Workbooks.Open.Value =3D tabFich(j)

' je selectionne la feuille puis cellule souhait=E9...
Sheets("HV").Select
Range("B6").Select
.../...

5 réponses

Avatar
Patrick FREDIN
Bonjour,

Je pense que le problème vient de ce qu'il faut fournir
le nom complet du fichier à ouvrir (Ex:
C:MesDocsFichiers.xls).

Tiens moi au courant.

Patrick

-----Message d'origine-----
Bonjour à tous !
J'ai enfin trouvé ou presque grâce à Misange ;)
surperbe son site d'ailleurs !
J'ai un autre problème,
Le but du jeu est de faire une macro qui liste des
fichiers Excel contenu dans un répertoire X
ça c fait ! j'arrive à la faire parfatement, par contre
pour la suite,
je souhaite recuperer cette meme liste
pour faire un traitement sur ces fichiers en les ouvrant
automatiquement...
Là par contre je ne vois pas malgé mes recherches
L'erreur qu'il me met :
sur :".Open"

j'ai mis un bout du code dans le contenu de ce message
cf.

ci-dessous.
Merci pour votre aide si precieuse !

PS : je suis toujours débutant ;)

Code :

..../...
' boucle qui me permet de recuperer le nom des fichiers
For j = 0 To i - 1
ActiveSheet.[Titre].Value = i & " FICHIERS " & UCase
(xxx)

ActiveSheet.[DebListe].Offset(j, 0).Value = tabFich(j)

' C'est ici qu'il me met l'erreur sur le -.Open-
Workbooks.Open.Value = tabFich(j)

' je selectionne la feuille puis cellule souhaité...
Sheets("HV").Select
Range("B6").Select
..../...

.



Avatar
Nosferalto
Voici le code en entier, j'ai essayé de mettre en dur un
chemin mais il me met la même erreur sur
le .open-> "Argument non facultatif"
Merci pour ton aide !
Nosferalto

********
Sub fileAddition()
Dim xxx As String
Dim FichX As String
Dim tabFich() As String
Dim i As Integer
Dim j As Integer

xxx = Worksheets("Fichiers et répertoires").Range
("ExtFich").Value
ReDim tabFich(1)
tabFich(0) = Dir("*." & xxx)
If tabFich(0) = "" Then
MsgBox "Aucun Document d'extension " & xxx & " dans le
dossier en cours."
Exit Sub
End If
i = 1
Do While True
ReDim Preserve tabFich(i + 1)
tabFich(i) = Dir()
If tabFich(i) = "" Then Exit Do
i = i + 1
Loop
ActiveSheet.Range("DebListe").Select
Selection.CurrentRegion.Select
Selection.ClearContents
For j = 0 To i - 1
ActiveSheet.[Titre].Value = i & " FICHIERS " & UCase(xxx)
ActiveSheet.[DebListe].Offset(j, 0).Value = tabFich(j)
' Application.ScreenUpdating = False

Workbooks.Open.Value = tabFich(j)
Sheets("HV").Select
Range("B6").Select
Sheets(Array("HV", "Trans. Syst", "PTrafo", "Dis.
Syst", "MV", "Services", "EAI ", _
"APC Proj", "APC Prod")).Select
ActiveWindow.ScrollWorkbookTabs Sheets:=9
Range("B6:F103").Select
Selection.Copy
Workbooks("regional conso.xls").Activate
Sheets("HV").Select
Range("B6").Select
Selection.PasteSpecial Paste:=xlValues,
Operation:=xlAdd, SkipBlanks:= _
False, Transpose:úlse
Windows(i + 1).Activate
Sheets(Array("HV", "Trans. Syst", "PTrafo", "Dis.
Syst", "MV", "Services", "EAI ", _
"APC Proj", "APC Prod")).Select
Range("AS5:BF100").Select
Selection.Copy
Windows("regional conso.xls").Activate
Range("AS5").Select
Selection.PasteSpecial Paste:=xlValues,
Operation:=xlAdd, SkipBlanks:= _
False, Transpose:úlse
Next
ActiveSheet.[Titre].Select

Workbooks("Regional conso.xls").Activate
Sheets("hv").Select
Range("B6").Select
End Sub
******
Avatar
Patrick FREDIN
Rebonjour,

En fait la syntaxe de la méthode "Open" est la suivante :
Workbooks.Open Filename:= "C:FichiersNomFichier.xls"

Si tu as encore besoin d'aide, écris-moi sur ma boîte
perso.

Patrick

-----Message d'origine-----
Voici le code en entier, j'ai essayé de mettre en dur un
chemin mais il me met la même erreur sur
le .open-> "Argument non facultatif"
Merci pour ton aide !
Nosferalto

********
Sub fileAddition()
Dim xxx As String
Dim FichX As String
Dim tabFich() As String
Dim i As Integer
Dim j As Integer

xxx = Worksheets("Fichiers et répertoires").Range
("ExtFich").Value
ReDim tabFich(1)
tabFich(0) = Dir("*." & xxx)
If tabFich(0) = "" Then
MsgBox "Aucun Document d'extension " & xxx & " dans le
dossier en cours."
Exit Sub
End If
i = 1
Do While True
ReDim Preserve tabFich(i + 1)
tabFich(i) = Dir()
If tabFich(i) = "" Then Exit Do
i = i + 1
Loop
ActiveSheet.Range("DebListe").Select
Selection.CurrentRegion.Select
Selection.ClearContents
For j = 0 To i - 1
ActiveSheet.[Titre].Value = i & " FICHIERS " & UCase
(xxx)

ActiveSheet.[DebListe].Offset(j, 0).Value = tabFich(j)
' Application.ScreenUpdating = False

Workbooks.Open.Value = tabFich(j)
Sheets("HV").Select
Range("B6").Select
Sheets(Array("HV", "Trans. Syst", "PTrafo", "Dis.
Syst", "MV", "Services", "EAI ", _
"APC Proj", "APC Prod")).Select
ActiveWindow.ScrollWorkbookTabs Sheets:=9
Range("B6:F103").Select
Selection.Copy
Workbooks("regional conso.xls").Activate
Sheets("HV").Select
Range("B6").Select
Selection.PasteSpecial Paste:=xlValues,
Operation:=xlAdd, SkipBlanks:= _
False, Transpose:úlse
Windows(i + 1).Activate
Sheets(Array("HV", "Trans. Syst", "PTrafo", "Dis.
Syst", "MV", "Services", "EAI ", _
"APC Proj", "APC Prod")).Select
Range("AS5:BF100").Select
Selection.Copy
Windows("regional conso.xls").Activate
Range("AS5").Select
Selection.PasteSpecial Paste:=xlValues,
Operation:=xlAdd, SkipBlanks:= _
False, Transpose:úlse
Next
ActiveSheet.[Titre].Select

Workbooks("Regional conso.xls").Activate
Sheets("hv").Select
Range("B6").Select
End Sub
******
.



Avatar
michdenis
Bonjour Nosferalto,

Je crois t'avoir donné une explication sur ce qui ne va pas avec la façon que tu utilises "OPEN" dans un message que je
t'adressais hier.

Dir ne retiens que le nom des fichiers mais la méthode "Open" de l'objet Workbooks a besoin de savoir aussi où est le
fichier à ouvrir.


Essaie plutôt ceci :

'-----------------------------
Sub Traitement_Fichiers_Repertoire()
With Application.FileSearch
.NewSearch
.LookIn = "C:" 'à déterminer
'recherche dans les sous-répertoires
.SearchSubFolders = False 'ou True
'Type de fichiers recherchés
.FileType = msoFileTypeExcelWorkbooks
'Si il en trouve
If .Execute() > 0 Then
'Affiche le nombre de fichiers trouvés
MsgBox .FoundFiles.Count & " fichier(s) trouvé(s)."
For i = 1 To .FoundFiles.Count
'Ici tu insères ta procédure d'ouverture des fichiers
Workbooks.Open .FoundFiles(i)
'il va boucler sur tous les fichiers trouvés
'Suite de ta procédure pour chaque fichier ouvert
Next i
Else
MsgBox "Aucun fichier avec ce mot."
End If
End With

End Sub
'-----------------------------


Salutations!



"Nosferalto" a écrit dans le message de news:0a8601c34491$de335a80$
Voici le code en entier, j'ai essayé de mettre en dur un
chemin mais il me met la même erreur sur
le .open-> "Argument non facultatif"
Merci pour ton aide !
Nosferalto

********
Sub fileAddition()
Dim xxx As String
Dim FichX As String
Dim tabFich() As String
Dim i As Integer
Dim j As Integer

xxx = Worksheets("Fichiers et répertoires").Range
("ExtFich").Value
ReDim tabFich(1)
tabFich(0) = Dir("*." & xxx)
If tabFich(0) = "" Then
MsgBox "Aucun Document d'extension " & xxx & " dans le
dossier en cours."
Exit Sub
End If
i = 1
Do While True
ReDim Preserve tabFich(i + 1)
tabFich(i) = Dir()
If tabFich(i) = "" Then Exit Do
i = i + 1
Loop
ActiveSheet.Range("DebListe").Select
Selection.CurrentRegion.Select
Selection.ClearContents
For j = 0 To i - 1
ActiveSheet.[Titre].Value = i & " FICHIERS " & UCase(xxx)
ActiveSheet.[DebListe].Offset(j, 0).Value = tabFich(j)
' Application.ScreenUpdating = False

Workbooks.Open.Value = tabFich(j)
Sheets("HV").Select
Range("B6").Select
Sheets(Array("HV", "Trans. Syst", "PTrafo", "Dis.
Syst", "MV", "Services", "EAI ", _
"APC Proj", "APC Prod")).Select
ActiveWindow.ScrollWorkbookTabs Sheets:=9
Range("B6:F103").Select
Selection.Copy
Workbooks("regional conso.xls").Activate
Sheets("HV").Select
Range("B6").Select
Selection.PasteSpecial Paste:=xlValues,
Operation:=xlAdd, SkipBlanks:= _
False, Transpose:úlse
Windows(i + 1).Activate
Sheets(Array("HV", "Trans. Syst", "PTrafo", "Dis.
Syst", "MV", "Services", "EAI ", _
"APC Proj", "APC Prod")).Select
Range("AS5:BF100").Select
Selection.Copy
Windows("regional conso.xls").Activate
Range("AS5").Select
Selection.PasteSpecial Paste:=xlValues,
Operation:=xlAdd, SkipBlanks:= _
False, Transpose:úlse
Next
ActiveSheet.[Titre].Select

Workbooks("Regional conso.xls").Activate
Sheets("hv").Select
Range("B6").Select
End Sub
******
Avatar
michdenis
Bonjour Nosfelrato,


Essaie ceci :

'---------------------------
Sub Start()

Dim Mess As String
Dim Style As VbMsgBoxStyle
Dim Reponse As VbMsgBoxResult

Mess = "Chemin retenu pour le traitement : " & Chr(13) & GetDirectory
Style = vbOKCancel
Reponse = MsgBox(Mess, Style)

If Reponse = vbCancel Then
MsgBox ("Bjr le monde ! on s'arrête là")
Else
MsgBox "Bjr le monde ! On continue !"
End If

End Sub
'---------------------------

Salutations!




"Nosfelrato" a écrit dans le message de news:100e01c346eb$62a56050$
Merci ca marche !
mais j'ai un petit soucis
lors de l'affichage d'MsgBox
il me renvoit 1 ou 2 selon ce qu'on choisit comme bouton
ok ou annulé
et je souhaiterais ne plus avoir ce message 1 ou 2 Voici
le code :

Sub Start()
Dim Mess, Style, Reponse
Dim z As Integer

Mess = "Chemin retenu pour le traitement : " & Chr(13) &
GetDirectory
Style = vbOKCancel
Reponse = MsgBox(Mess, Style)

If Reponse = 2 Then
MsgBox "Bjr le monde ! on s'arrête là"
Else
MsgBox "Bjr le monde ! On continue !"
End If
End Sub

Merci pour ton aide
Nosferalto



-----Message d'origine-----
Bonjour Nosferalto,

Je crois t'avoir donné une explication sur ce qui ne va
pas avec la façon que tu utilises "OPEN" dans un message

que je
t'adressais hier.

Dir ne retiens que le nom des fichiers mais la
méthode "Open" de l'objet Workbooks a besoin de savoir

aussi où est le
fichier à ouvrir.


Essaie plutôt ceci :

'-----------------------------
Sub Traitement_Fichiers_Repertoire()
With Application.FileSearch
.NewSearch
.LookIn = "C:" 'à déterminer
'recherche dans les sous-répertoires
.SearchSubFolders = False 'ou True
'Type de fichiers recherchés
.FileType = msoFileTypeExcelWorkbooks
'Si il en trouve
If .Execute() > 0 Then
'Affiche le nombre de fichiers trouvés
MsgBox .FoundFiles.Count & " fichier(s) trouvé
(s)."

For i = 1 To .FoundFiles.Count
'Ici tu insères ta procédure d'ouverture
des fichiers

Workbooks.Open .FoundFiles(i)
'il va boucler sur tous les fichiers
trouvés

'Suite de ta procédure pour chaque
fichier ouvert

Next i
Else
MsgBox "Aucun fichier avec ce mot."
End If
End With

End Sub
'-----------------------------


Salutations!



"Nosferalto" a écrit dans le
message de news:0a8601c34491$de335a80$

Voici le code en entier, j'ai essayé de mettre en dur un
chemin mais il me met la même erreur sur
le .open-> "Argument non facultatif"
Merci pour ton aide !
Nosferalto

********
Sub fileAddition()
Dim xxx As String
Dim FichX As String
Dim tabFich() As String
Dim i As Integer
Dim j As Integer

xxx = Worksheets("Fichiers et répertoires").Range
("ExtFich").Value
ReDim tabFich(1)
tabFich(0) = Dir("*." & xxx)
If tabFich(0) = "" Then
MsgBox "Aucun Document d'extension " & xxx & " dans le
dossier en cours."
Exit Sub
End If
i = 1
Do While True
ReDim Preserve tabFich(i + 1)
tabFich(i) = Dir()
If tabFich(i) = "" Then Exit Do
i = i + 1
Loop
ActiveSheet.Range("DebListe").Select
Selection.CurrentRegion.Select
Selection.ClearContents
For j = 0 To i - 1
ActiveSheet.[Titre].Value = i & " FICHIERS " & UCase(xxx)
ActiveSheet.[DebListe].Offset(j, 0).Value = tabFich(j)
' Application.ScreenUpdating = False

Workbooks.Open.Value = tabFich(j)
Sheets("HV").Select
Range("B6").Select
Sheets(Array("HV", "Trans. Syst", "PTrafo", "Dis.
Syst", "MV", "Services", "EAI ", _
"APC Proj", "APC Prod")).Select
ActiveWindow.ScrollWorkbookTabs Sheets:=9
Range("B6:F103").Select
Selection.Copy
Workbooks("regional conso.xls").Activate
Sheets("HV").Select
Range("B6").Select
Selection.PasteSpecial Paste:=xlValues,
Operation:=xlAdd, SkipBlanks:= _
False, Transpose:úlse
Windows(i + 1).Activate
Sheets(Array("HV", "Trans. Syst", "PTrafo", "Dis.
Syst", "MV", "Services", "EAI ", _
"APC Proj", "APC Prod")).Select
Range("AS5:BF100").Select
Selection.Copy
Windows("regional conso.xls").Activate
Range("AS5").Select
Selection.PasteSpecial Paste:=xlValues,
Operation:=xlAdd, SkipBlanks:= _
False, Transpose:úlse
Next
ActiveSheet.[Titre].Select

Workbooks("Regional conso.xls").Activate
Sheets("hv").Select
Range("B6").Select
End Sub
******


.