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

Macro pour ouvrir automatiquement des classeurs

7 réponses
Avatar
ruiz
Bonjour,
y a t il moyen de faire une macro qui ouvrirait simultanement 4 classeurs
automatiquement ?
mais...il faudrait que les noms des classeurs ouverts puissent varié...
je m 'explique..:
j ai un classeur principal qui regroupe des infos de 4 autres classeurs.
malgré la fonction indirect.ext j'ai des calculs qui necessitent les
classeurs ouverts..
donc je veux automatiser les ouvertures/fermetures..
j'ai un classeur principal et 4 autres classeurs :
A1: livreA.xls
A2: livreB.xls
A3: livreC.xls
A4: livreD.xls
Dans ce cas là, il faut que la macro ouvre livreA, livreB, livreC et livreD
mais je veux que si je change A1 A2 A3 et A4 par par exemple en livreE
livreF livreG et livreH
et bien que la meme macro ouvre LivreD livreE et livreF et ferme ABC...
c'est possible tout ça ???!
merci...

7 réponses

Avatar
michdenis
Bonjour Ruiz,

Essaie ça :
'------------------------------
Sub OuvrirClasseur()
Dim Repertoire as String

'Où sont tes fichiers à adapt
Repertoire = "C:Excel" er

With worksheets("Feuil1") 'Nom à adapter
For a = 1 to 4
Workbooks.open Repertoire & .range("A" & a)
next
End With

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


Salutations!


"ruiz" a écrit dans le message de news:
Bonjour,
y a t il moyen de faire une macro qui ouvrirait simultanement 4 classeurs
automatiquement ?
mais...il faudrait que les noms des classeurs ouverts puissent varié...
je m 'explique..:
j ai un classeur principal qui regroupe des infos de 4 autres classeurs.
malgré la fonction indirect.ext j'ai des calculs qui necessitent les
classeurs ouverts..
donc je veux automatiser les ouvertures/fermetures..
j'ai un classeur principal et 4 autres classeurs :
A1: livreA.xls
A2: livreB.xls
A3: livreC.xls
A4: livreD.xls
Dans ce cas là, il faut que la macro ouvre livreA, livreB, livreC et livreD
mais je veux que si je change A1 A2 A3 et A4 par par exemple en livreE
livreF livreG et livreH
et bien que la meme macro ouvre LivreD livreE et livreF et ferme ABC...
c'est possible tout ça ???!
merci...
Avatar
ruiz
en mettant ça:

Sub ouvrir()
Dim Repertoire As String

'Où sont tes fichiers à adapt
Repertoire = "C:biblio"

With Worksheets("Feuil1") 'Nom à adapter
For a = 1 To 4
Workbooks.Open Repertoire & .Range("A" & a)
Next
End With

End Sub

j'ai "erreur d'execution 9
l'indice n'appartient pas à la selection"
j ai essayé plusieurs ecriture dans A1 avec livre, [livre], livre.xls etc..





Bonjour Ruiz,

Essaie ça :
'------------------------------
Sub OuvrirClasseur()
Dim Repertoire as String

'Où sont tes fichiers à adapt
Repertoire = "C:Excel" er

With worksheets("Feuil1") 'Nom à adapter
For a = 1 to 4
Workbooks.open Repertoire & .range("A" & a)
next
End With

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


Salutations!


"ruiz" a écrit dans le message de news:
Bonjour,
y a t il moyen de faire une macro qui ouvrirait simultanement 4 classeurs
automatiquement ?
mais...il faudrait que les noms des classeurs ouverts puissent varié...
je m 'explique..:
j ai un classeur principal qui regroupe des infos de 4 autres classeurs.
malgré la fonction indirect.ext j'ai des calculs qui necessitent les
classeurs ouverts..
donc je veux automatiser les ouvertures/fermetures..
j'ai un classeur principal et 4 autres classeurs :
A1: livreA.xls
A2: livreB.xls
A3: livreC.xls
A4: livreD.xls
Dans ce cas là, il faut que la macro ouvre livreA, livreB, livreC et livreD
mais je veux que si je change A1 A2 A3 et A4 par par exemple en livreE
livreF livreG et livreH
et bien que la meme macro ouvre LivreD livreE et livreF et ferme ABC...
c'est possible tout ça ???!
merci...






Avatar
michdenis
Bonjour Ruiz,

Si le contenu des cellules contenant le nom des fichiers
n'ont pas d'extention, il faut ajouter l'extension à leur nom.

et la procédure deviendrait :
'---------------------------------
Sub ouvrir()
Dim Repertoire As String

'Où sont tes fichiers à adapt
Repertoire = "C:biblio"

With Worksheets("Feuil1") 'Nom à adapter
For a = 1 To 4
if Ucase(Right(.range("a"& a),4)) = ".XLS" then
if dir(Repertoire & .Range("A" & a)) <> "" then
Workbooks.Open Repertoire & .Range("A" & a)
Else
Msgbox "Pas trouvé le fichier " & Repertoire & .Range("A" & a)
end if
else
if dir(Repertoire & .Range("A" & a)& ."xls") <> "" then
Workbooks.Open Repertoire & .Range("A" & a) & ."xls"
else
Msgbox "Ce fichier n'existe pas " & Repertoire & .Range("A" & a) & ."xls"
end if
end if
Next
End With

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


Salutations!



"ruiz" a écrit dans le message de news:
en mettant ça:

Sub ouvrir()
Dim Repertoire As String

'Où sont tes fichiers à adapt
Repertoire = "C:biblio"

With Worksheets("Feuil1") 'Nom à adapter
For a = 1 To 4
Workbooks.Open Repertoire & .Range("A" & a)
Next
End With

End Sub

j'ai "erreur d'execution 9
l'indice n'appartient pas à la selection"
j ai essayé plusieurs ecriture dans A1 avec livre, [livre], livre.xls etc..





Bonjour Ruiz,

Essaie ça :
'------------------------------
Sub OuvrirClasseur()
Dim Repertoire as String

'Où sont tes fichiers à adapt
Repertoire = "C:Excel" er

With worksheets("Feuil1") 'Nom à adapter
For a = 1 to 4
Workbooks.open Repertoire & .range("A" & a)
next
End With

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


Salutations!


"ruiz" a écrit dans le message de news:
Bonjour,
y a t il moyen de faire une macro qui ouvrirait simultanement 4 classeurs
automatiquement ?
mais...il faudrait que les noms des classeurs ouverts puissent varié...
je m 'explique..:
j ai un classeur principal qui regroupe des infos de 4 autres classeurs.
malgré la fonction indirect.ext j'ai des calculs qui necessitent les
classeurs ouverts..
donc je veux automatiser les ouvertures/fermetures..
j'ai un classeur principal et 4 autres classeurs :
A1: livreA.xls
A2: livreB.xls
A3: livreC.xls
A4: livreD.xls
Dans ce cas là, il faut que la macro ouvre livreA, livreB, livreC et livreD
mais je veux que si je change A1 A2 A3 et A4 par par exemple en livreE
livreF livreG et livreH
et bien que la meme macro ouvre LivreD livreE et livreF et ferme ABC...
c'est possible tout ça ???!
merci...






Avatar
ruiz
Bonjour,

j'ai une erreur de syntaxe sur :
if dir(Repertoire & .Range("A" & a)& ."xls") <> "" then
Workbooks.Open Repertoire & .Range("A" & a) & ."xls"
Else
Msgbox "Ce fichier n'existe pas " & Repertoire & .Range("A" & a) & ."xls"


Bonjour Ruiz,

Si le contenu des cellules contenant le nom des fichiers
n'ont pas d'extention, il faut ajouter l'extension à leur nom.

et la procédure deviendrait :
'---------------------------------
Sub ouvrir()
Dim Repertoire As String

'Où sont tes fichiers à adapt
Repertoire = "C:biblio"

With Worksheets("Feuil1") 'Nom à adapter
For a = 1 To 4
if Ucase(Right(.range("a"& a),4)) = ".XLS" then
if dir(Repertoire & .Range("A" & a)) <> "" then
Workbooks.Open Repertoire & .Range("A" & a)
Else
Msgbox "Pas trouvé le fichier " & Repertoire & .Range("A" & a)
end if
else
if dir(Repertoire & .Range("A" & a)& ."xls") <> "" then
Workbooks.Open Repertoire & .Range("A" & a) & ."xls"
else
Msgbox "Ce fichier n'existe pas " & Repertoire & .Range("A" & a) & ."xls"
end if
end if
Next
End With

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


Salutations!



"ruiz" a écrit dans le message de news:
en mettant ça:

Sub ouvrir()
Dim Repertoire As String

'Où sont tes fichiers à adapt
Repertoire = "C:biblio"

With Worksheets("Feuil1") 'Nom à adapter
For a = 1 To 4
Workbooks.Open Repertoire & .Range("A" & a)
Next
End With

End Sub

j'ai "erreur d'execution 9
l'indice n'appartient pas à la selection"
j ai essayé plusieurs ecriture dans A1 avec livre, [livre], livre.xls etc..





Bonjour Ruiz,

Essaie ça :
'------------------------------
Sub OuvrirClasseur()
Dim Repertoire as String

'Où sont tes fichiers à adapt
Repertoire = "C:Excel" er

With worksheets("Feuil1") 'Nom à adapter
For a = 1 to 4
Workbooks.open Repertoire & .range("A" & a)
next
End With

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


Salutations!


"ruiz" a écrit dans le message de news:
Bonjour,
y a t il moyen de faire une macro qui ouvrirait simultanement 4 classeurs
automatiquement ?
mais...il faudrait que les noms des classeurs ouverts puissent varié...
je m 'explique..:
j ai un classeur principal qui regroupe des infos de 4 autres classeurs.
malgré la fonction indirect.ext j'ai des calculs qui necessitent les
classeurs ouverts..
donc je veux automatiser les ouvertures/fermetures..
j'ai un classeur principal et 4 autres classeurs :
A1: livreA.xls
A2: livreB.xls
A3: livreC.xls
A4: livreD.xls
Dans ce cas là, il faut que la macro ouvre livreA, livreB, livreC et livreD
mais je veux que si je change A1 A2 A3 et A4 par par exemple en livreE
livreF livreG et livreH
et bien que la meme macro ouvre LivreD livreE et livreF et ferme ABC...
c'est possible tout ça ???!
merci...











Avatar
michdenis
Bonjour Ruiz,

Si tu observes bien :
if dir(Repertoire & .Range("A" & a)& ."xls")

Le point du ."xls" est à l'extérieur des guillemets
corrige comme ceci : ".xls"
et cela est vrai pour les 2 lignes suivantes.


Salutations!


"ruiz" a écrit dans le message de news:
Bonjour,

j'ai une erreur de syntaxe sur :
if dir(Repertoire & .Range("A" & a)& ."xls") <> "" then
Workbooks.Open Repertoire & .Range("A" & a) & ."xls"
Else
Msgbox "Ce fichier n'existe pas " & Repertoire & .Range("A" & a) & ."xls"


Bonjour Ruiz,

Si le contenu des cellules contenant le nom des fichiers
n'ont pas d'extention, il faut ajouter l'extension à leur nom.

et la procédure deviendrait :
'---------------------------------
Sub ouvrir()
Dim Repertoire As String

'Où sont tes fichiers à adapt
Repertoire = "C:biblio"

With Worksheets("Feuil1") 'Nom à adapter
For a = 1 To 4
if Ucase(Right(.range("a"& a),4)) = ".XLS" then
if dir(Repertoire & .Range("A" & a)) <> "" then
Workbooks.Open Repertoire & .Range("A" & a)
Else
Msgbox "Pas trouvé le fichier " & Repertoire & .Range("A" & a)
end if
else
if dir(Repertoire & .Range("A" & a)& ."xls") <> "" then
Workbooks.Open Repertoire & .Range("A" & a) & ."xls"
else
Msgbox "Ce fichier n'existe pas " & Repertoire & .Range("A" & a) & ."xls"
end if
end if
Next
End With

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


Salutations!



"ruiz" a écrit dans le message de news:
en mettant ça:

Sub ouvrir()
Dim Repertoire As String

'Où sont tes fichiers à adapt
Repertoire = "C:biblio"

With Worksheets("Feuil1") 'Nom à adapter
For a = 1 To 4
Workbooks.Open Repertoire & .Range("A" & a)
Next
End With

End Sub

j'ai "erreur d'execution 9
l'indice n'appartient pas à la selection"
j ai essayé plusieurs ecriture dans A1 avec livre, [livre], livre.xls etc..





Bonjour Ruiz,

Essaie ça :
'------------------------------
Sub OuvrirClasseur()
Dim Repertoire as String

'Où sont tes fichiers à adapt
Repertoire = "C:Excel" er

With worksheets("Feuil1") 'Nom à adapter
For a = 1 to 4
Workbooks.open Repertoire & .range("A" & a)
next
End With

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


Salutations!


"ruiz" a écrit dans le message de news:
Bonjour,
y a t il moyen de faire une macro qui ouvrirait simultanement 4 classeurs
automatiquement ?
mais...il faudrait que les noms des classeurs ouverts puissent varié...
je m 'explique..:
j ai un classeur principal qui regroupe des infos de 4 autres classeurs.
malgré la fonction indirect.ext j'ai des calculs qui necessitent les
classeurs ouverts..
donc je veux automatiser les ouvertures/fermetures..
j'ai un classeur principal et 4 autres classeurs :
A1: livreA.xls
A2: livreB.xls
A3: livreC.xls
A4: livreD.xls
Dans ce cas là, il faut que la macro ouvre livreA, livreB, livreC et livreD
mais je veux que si je change A1 A2 A3 et A4 par par exemple en livreE
livreF livreG et livreH
et bien que la meme macro ouvre LivreD livreE et livreF et ferme ABC...
c'est possible tout ça ???!
merci...











Avatar
ruiz
bonjour,

bon alors c'est vaiment bizzarre car si j'essayes ta macro dans un nouveau
classeur vide, elle marche.

par contre dans mon fichier j ai toujours une erreur d execution9 sur cette
ligne :
With Worksheets("Feuil1") 'Nom à adapter....

bon en plus il faudrait que je puisse refermer les-dits fichiers... :)





Bonjour Ruiz,

Si tu observes bien :
if dir(Repertoire & .Range("A" & a)& ."xls")

Le point du ."xls" est à l'extérieur des guillemets
corrige comme ceci : ".xls"
et cela est vrai pour les 2 lignes suivantes.


Salutations!


"ruiz" a écrit dans le message de news:
Bonjour,

j'ai une erreur de syntaxe sur :
if dir(Repertoire & .Range("A" & a)& ."xls") <> "" then
Workbooks.Open Repertoire & .Range("A" & a) & ."xls"
Else
Msgbox "Ce fichier n'existe pas " & Repertoire & .Range("A" & a) & ."xls"


Bonjour Ruiz,

Si le contenu des cellules contenant le nom des fichiers
n'ont pas d'extention, il faut ajouter l'extension à leur nom.

et la procédure deviendrait :
'---------------------------------
Sub ouvrir()
Dim Repertoire As String

'Où sont tes fichiers à adapt
Repertoire = "C:biblio"

With Worksheets("Feuil1") 'Nom à adapter
For a = 1 To 4
if Ucase(Right(.range("a"& a),4)) = ".XLS" then
if dir(Repertoire & .Range("A" & a)) <> "" then
Workbooks.Open Repertoire & .Range("A" & a)
Else
Msgbox "Pas trouvé le fichier " & Repertoire & .Range("A" & a)
end if
else
if dir(Repertoire & .Range("A" & a)& ."xls") <> "" then
Workbooks.Open Repertoire & .Range("A" & a) & ."xls"
else
Msgbox "Ce fichier n'existe pas " & Repertoire & .Range("A" & a) & ."xls"
end if
end if
Next
End With

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


Salutations!



"ruiz" a écrit dans le message de news:
en mettant ça:

Sub ouvrir()
Dim Repertoire As String

'Où sont tes fichiers à adapt
Repertoire = "C:biblio"

With Worksheets("Feuil1") 'Nom à adapter
For a = 1 To 4
Workbooks.Open Repertoire & .Range("A" & a)
Next
End With

End Sub

j'ai "erreur d'execution 9
l'indice n'appartient pas à la selection"
j ai essayé plusieurs ecriture dans A1 avec livre, [livre], livre.xls etc..





Bonjour Ruiz,

Essaie ça :
'------------------------------
Sub OuvrirClasseur()
Dim Repertoire as String

'Où sont tes fichiers à adapt
Repertoire = "C:Excel" er

With worksheets("Feuil1") 'Nom à adapter
For a = 1 to 4
Workbooks.open Repertoire & .range("A" & a)
next
End With

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


Salutations!


"ruiz" a écrit dans le message de news:
Bonjour,
y a t il moyen de faire une macro qui ouvrirait simultanement 4 classeurs
automatiquement ?
mais...il faudrait que les noms des classeurs ouverts puissent varié...
je m 'explique..:
j ai un classeur principal qui regroupe des infos de 4 autres classeurs.
malgré la fonction indirect.ext j'ai des calculs qui necessitent les
classeurs ouverts..
donc je veux automatiser les ouvertures/fermetures..
j'ai un classeur principal et 4 autres classeurs :
A1: livreA.xls
A2: livreB.xls
A3: livreC.xls
A4: livreD.xls
Dans ce cas là, il faut que la macro ouvre livreA, livreB, livreC et livreD
mais je veux que si je change A1 A2 A3 et A4 par par exemple en livreE
livreF livreG et livreH
et bien que la meme macro ouvre LivreD livreE et livreF et ferme ABC...
c'est possible tout ça ???!
merci...
















Avatar
michdenis
Bonjour Ruiz,

| With Worksheets("Feuil1")

As-tu une feuille nommée "Feuil1" dans ton classeur ?
Tu dois adapter le nom de la feuille selon la feuille de ton application
où la macro doit s'exécuter.


Salutations!


"ruiz" a écrit dans le message de news:
bonjour,

bon alors c'est vaiment bizzarre car si j'essayes ta macro dans un nouveau
classeur vide, elle marche.

par contre dans mon fichier j ai toujours une erreur d execution9 sur cette
ligne :
With Worksheets("Feuil1") 'Nom à adapter....

bon en plus il faudrait que je puisse refermer les-dits fichiers... :)





Bonjour Ruiz,

Si tu observes bien :
if dir(Repertoire & .Range("A" & a)& ."xls")

Le point du ."xls" est à l'extérieur des guillemets
corrige comme ceci : ".xls"
et cela est vrai pour les 2 lignes suivantes.


Salutations!


"ruiz" a écrit dans le message de news:
Bonjour,

j'ai une erreur de syntaxe sur :
if dir(Repertoire & .Range("A" & a)& ."xls") <> "" then
Workbooks.Open Repertoire & .Range("A" & a) & ."xls"
Else
Msgbox "Ce fichier n'existe pas " & Repertoire & .Range("A" & a) & ."xls"


Bonjour Ruiz,

Si le contenu des cellules contenant le nom des fichiers
n'ont pas d'extention, il faut ajouter l'extension à leur nom.

et la procédure deviendrait :
'---------------------------------
Sub ouvrir()
Dim Repertoire As String

'Où sont tes fichiers à adapt
Repertoire = "C:biblio"

With Worksheets("Feuil1") 'Nom à adapter
For a = 1 To 4
if Ucase(Right(.range("a"& a),4)) = ".XLS" then
if dir(Repertoire & .Range("A" & a)) <> "" then
Workbooks.Open Repertoire & .Range("A" & a)
Else
Msgbox "Pas trouvé le fichier " & Repertoire & .Range("A" & a)
end if
else
if dir(Repertoire & .Range("A" & a)& ."xls") <> "" then
Workbooks.Open Repertoire & .Range("A" & a) & ."xls"
else
Msgbox "Ce fichier n'existe pas " & Repertoire & .Range("A" & a) & ."xls"
end if
end if
Next
End With

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


Salutations!



"ruiz" a écrit dans le message de news:
en mettant ça:

Sub ouvrir()
Dim Repertoire As String

'Où sont tes fichiers à adapt
Repertoire = "C:biblio"

With Worksheets("Feuil1") 'Nom à adapter
For a = 1 To 4
Workbooks.Open Repertoire & .Range("A" & a)
Next
End With

End Sub

j'ai "erreur d'execution 9
l'indice n'appartient pas à la selection"
j ai essayé plusieurs ecriture dans A1 avec livre, [livre], livre.xls etc..





Bonjour Ruiz,

Essaie ça :
'------------------------------
Sub OuvrirClasseur()
Dim Repertoire as String

'Où sont tes fichiers à adapt
Repertoire = "C:Excel" er

With worksheets("Feuil1") 'Nom à adapter
For a = 1 to 4
Workbooks.open Repertoire & .range("A" & a)
next
End With

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


Salutations!


"ruiz" a écrit dans le message de news:
Bonjour,
y a t il moyen de faire une macro qui ouvrirait simultanement 4 classeurs
automatiquement ?
mais...il faudrait que les noms des classeurs ouverts puissent varié...
je m 'explique..:
j ai un classeur principal qui regroupe des infos de 4 autres classeurs.
malgré la fonction indirect.ext j'ai des calculs qui necessitent les
classeurs ouverts..
donc je veux automatiser les ouvertures/fermetures..
j'ai un classeur principal et 4 autres classeurs :
A1: livreA.xls
A2: livreB.xls
A3: livreC.xls
A4: livreD.xls
Dans ce cas là, il faut que la macro ouvre livreA, livreB, livreC et livreD
mais je veux que si je change A1 A2 A3 et A4 par par exemple en livreE
livreF livreG et livreH
et bien que la meme macro ouvre LivreD livreE et livreF et ferme ABC...
c'est possible tout ça ???!
merci...