Bonjour à tous,
voici mon souci : je veux créer une macro dans un fichier que je nomme
:"Fichier Macros Impression.xls" qui ouvre des fichiers sucessifs "Fichier
1.xls" , "Fichier 2.xls", ect.. pour imprimer deux onglets de chacun de ces
fichiers.
Voici ce que j'ai testé ci-dessous et j'ai une erreur au 2ieme fichier
lorsque je veux selectionner le 1er onglet.
Pouvez-vous me dire ou est l'erreur surtout que ça fonctionne avec le
premier fichier appellé ? Merci de votre aide à tous.
regis.mathieu4@wanadoo.fr
Régis MATHIEU
Sub Impression()
Dim Noms_Fichiers, Noms_Feuilles
Noms_Fichiers = Array("Fichier 1.xls", "Fichier 2.xls")
Noms_Feuilles = Array("Feuille1", "Feuille2")
' Boucle d'ouverture des fichiers à imprimer
For i = 0 To 1
Fichier_a_ouvrir = "C:\Documents and Settings\REGIS\Bureau\Test
Impression\" & Noms_Fichiers(i)
Workbooks.Open Filename:=Fichier_a_ouvrir
Windows(Noms_Fichiers(i)).Activate
Fichier_Actif = ActiveWorkbook.Name
' Boucle d'impression des 2 feuilles de chaque fichier
For j = 0 To 1
' Selection de la fenetre 1 puis de la fenetre 2
Sheets(Noms_Feuilles(j)).Select
Nom_Feuille_Active = ActiveSheet.Name
'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Next j
'Fermeture du fichier après impression de ses deux feuilles
Fichier_Actif = ActiveWorkbook.Name
ActiveWorkbook.Close
'Passage au fichier suivant
Next i
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Vincnet.
Essaie de rajouter en haut de ton modul : Option Base 0 A+ V.
-----Message d'origine----- Bonjour à tous, voici mon souci : je veux créer une macro dans un fichier que je nomme
:"Fichier Macros Impression.xls" qui ouvre des fichiers sucessifs "Fichier
1.xls" , "Fichier 2.xls", ect.. pour imprimer deux onglets de chacun de ces
fichiers. Voici ce que j'ai testé ci-dessous et j'ai une erreur au 2ieme fichier
lorsque je veux selectionner le 1er onglet. Pouvez-vous me dire ou est l'erreur surtout que ça fonctionne avec le
premier fichier appellé ? Merci de votre aide à tous.
Régis MATHIEU
Sub Impression() Dim Noms_Fichiers, Noms_Feuilles Noms_Fichiers = Array("Fichier 1.xls", "Fichier 2.xls") Noms_Feuilles = Array("Feuille1", "Feuille2") ' Boucle d'ouverture des fichiers à imprimer For i = 0 To 1 Fichier_a_ouvrir = "C:Documents and SettingsREGISBureauTest
Impression" & Noms_Fichiers(i) Workbooks.Open Filename:=Fichier_a_ouvrir Windows(Noms_Fichiers(i)).Activate Fichier_Actif = ActiveWorkbook.Name ' Boucle d'impression des 2 feuilles de chaque fichier
For j = 0 To 1 ' Selection de la fenetre 1 puis de la fenetre 2
Next j 'Fermeture du fichier après impression de ses deux feuilles
Fichier_Actif = ActiveWorkbook.Name ActiveWorkbook.Close 'Passage au fichier suivant Next i End Sub
.
Essaie de rajouter en haut de ton modul :
Option Base 0
A+
V.
-----Message d'origine-----
Bonjour à tous,
voici mon souci : je veux créer une macro dans un fichier
que je nomme
:"Fichier Macros Impression.xls" qui ouvre des fichiers
sucessifs "Fichier
1.xls" , "Fichier 2.xls", ect.. pour imprimer deux
onglets de chacun de ces
fichiers.
Voici ce que j'ai testé ci-dessous et j'ai une erreur au
2ieme fichier
lorsque je veux selectionner le 1er onglet.
Pouvez-vous me dire ou est l'erreur surtout que ça
fonctionne avec le
premier fichier appellé ? Merci de votre aide à tous.
regis.mathieu4@wanadoo.fr
Régis MATHIEU
Sub Impression()
Dim Noms_Fichiers, Noms_Feuilles
Noms_Fichiers = Array("Fichier 1.xls", "Fichier 2.xls")
Noms_Feuilles = Array("Feuille1", "Feuille2")
' Boucle d'ouverture des fichiers à imprimer
For i = 0 To 1
Fichier_a_ouvrir = "C:Documents and
SettingsREGISBureauTest
Impression" & Noms_Fichiers(i)
Workbooks.Open Filename:=Fichier_a_ouvrir
Windows(Noms_Fichiers(i)).Activate
Fichier_Actif = ActiveWorkbook.Name
' Boucle d'impression des 2 feuilles de chaque
fichier
For j = 0 To 1
' Selection de la fenetre 1 puis de la
fenetre 2
Essaie de rajouter en haut de ton modul : Option Base 0 A+ V.
-----Message d'origine----- Bonjour à tous, voici mon souci : je veux créer une macro dans un fichier que je nomme
:"Fichier Macros Impression.xls" qui ouvre des fichiers sucessifs "Fichier
1.xls" , "Fichier 2.xls", ect.. pour imprimer deux onglets de chacun de ces
fichiers. Voici ce que j'ai testé ci-dessous et j'ai une erreur au 2ieme fichier
lorsque je veux selectionner le 1er onglet. Pouvez-vous me dire ou est l'erreur surtout que ça fonctionne avec le
premier fichier appellé ? Merci de votre aide à tous.
Régis MATHIEU
Sub Impression() Dim Noms_Fichiers, Noms_Feuilles Noms_Fichiers = Array("Fichier 1.xls", "Fichier 2.xls") Noms_Feuilles = Array("Feuille1", "Feuille2") ' Boucle d'ouverture des fichiers à imprimer For i = 0 To 1 Fichier_a_ouvrir = "C:Documents and SettingsREGISBureauTest
Impression" & Noms_Fichiers(i) Workbooks.Open Filename:=Fichier_a_ouvrir Windows(Noms_Fichiers(i)).Activate Fichier_Actif = ActiveWorkbook.Name ' Boucle d'impression des 2 feuilles de chaque fichier
For j = 0 To 1 ' Selection de la fenetre 1 puis de la fenetre 2
Désolé, j'ai essayé l'option Base Option 0, mais cela ne fonction toujours pas !
Y a-t-il une autre solution ? Merci de votre aide !
Régis MATHIEU
Vincnet.
Bon, alors je ne vois qu'une possibilité : la feuille 'Feuille 1' n'existe pas dans ton deuxième classeur (peut-être un espace en trop ou en moins, ou une faute de frappe, ou...) Sinon, il n'y a pas de raison que ça ne marche pas, ou en tous cas, je ne la vois pas ! A+ V.
Bon, alors je ne vois qu'une possibilité : la
feuille 'Feuille 1' n'existe pas dans ton deuxième
classeur (peut-être un espace en trop ou en moins, ou une
faute de frappe, ou...)
Sinon, il n'y a pas de raison que ça ne marche pas, ou en
tous cas, je ne la vois pas !
A+
V.
Bon, alors je ne vois qu'une possibilité : la feuille 'Feuille 1' n'existe pas dans ton deuxième classeur (peut-être un espace en trop ou en moins, ou une faute de frappe, ou...) Sinon, il n'y a pas de raison que ça ne marche pas, ou en tous cas, je ne la vois pas ! A+ V.
Vincnet.
En reprenant ton code :
Sub Impression() Dim Noms_Fichiers, Noms_Feuilles Dim wbk as workbook Noms_Fichiers = Array("Fichier 1.xls", "Fichier 2.xls") Noms_Feuilles = Array("Feuille1", "Feuille2") ' Boucle d'ouverture des fichiers à imprimer For i = 0 To 1 Fichier_a_ouvrir = "C:Documents and SettingsREGISBureauTest Impression" & Noms_Fichiers(i) Set wbk = Workbooks.Open Filename:=Fichier_a_ouvrir ' Boucle d'impression des 2 feuilles de chaque fichier For j = 0 To 1 ' Selection de la fenetre 1 puis de la fenetre 2 wbk.workSheets(Noms_Feuilles(j)).PrintOut Copies:=1, Collate:=True Next j 'Fermeture du fichier après impression de ses deux feuilles wbk.Close 'Passage au fichier suivant Next i Set wbk = nothing End Sub
En reprenant ton code :
Sub Impression()
Dim Noms_Fichiers, Noms_Feuilles
Dim wbk as workbook
Noms_Fichiers = Array("Fichier 1.xls", "Fichier 2.xls")
Noms_Feuilles = Array("Feuille1", "Feuille2")
' Boucle d'ouverture des fichiers à imprimer
For i = 0 To 1
Fichier_a_ouvrir = "C:Documents and
SettingsREGISBureauTest
Impression" & Noms_Fichiers(i)
Set wbk = Workbooks.Open Filename:=Fichier_a_ouvrir
' Boucle d'impression des 2 feuilles de chaque
fichier
For j = 0 To 1
' Selection de la fenetre 1 puis de la fenetre
2
wbk.workSheets(Noms_Feuilles(j)).PrintOut
Copies:=1, Collate:=True
Next j
'Fermeture du fichier après impression de ses deux
feuilles
wbk.Close
'Passage au fichier suivant
Next i
Set wbk = nothing
End Sub
Sub Impression() Dim Noms_Fichiers, Noms_Feuilles Dim wbk as workbook Noms_Fichiers = Array("Fichier 1.xls", "Fichier 2.xls") Noms_Feuilles = Array("Feuille1", "Feuille2") ' Boucle d'ouverture des fichiers à imprimer For i = 0 To 1 Fichier_a_ouvrir = "C:Documents and SettingsREGISBureauTest Impression" & Noms_Fichiers(i) Set wbk = Workbooks.Open Filename:=Fichier_a_ouvrir ' Boucle d'impression des 2 feuilles de chaque fichier For j = 0 To 1 ' Selection de la fenetre 1 puis de la fenetre 2 wbk.workSheets(Noms_Feuilles(j)).PrintOut Copies:=1, Collate:=True Next j 'Fermeture du fichier après impression de ses deux feuilles wbk.Close 'Passage au fichier suivant Next i Set wbk = nothing End Sub
Mathieu
Re bonjour, Désolé, je viens de tester le code ci-dessous comme décrit dans la réponse précédente et j'ai toujours une erreur lorsque j=1. Je précise que j'ai vérifié le nom des Feuilles du Fichier 2.xls et qu'ils sont corects.
Alors merci a ceux qui peuvent m'aider.
Régis MATHIEU
Code testé : Sub Impression() Dim Noms_Fichiers, Noms_Feuilles, i, j Dim wbk As Workbook Noms_Fichiers = Array("Fichier 1.xls", "Fichier 2.xls") Noms_Feuilles = Array("Feuille1", "Feuille2") ' Boucle d'ouverture des fichiers à imprimer For i = 0 To 1 Fichier_a_ouvrir = "C:Documents and SettingsREGISBureauTest Impression" & Noms_Fichiers(i) Set wbk = Workbooks.Open(Filename:=Fichier_a_ouvrir) Windows(Noms_Fichiers(i)).Activate ' Boucle d'impression des 2 feuilles de chaque fichier For j = 0 To 1 ' Impression des 2 feuilles de chaque fichier wbk.Worksheets(Noms_Feuilles(j)).PrintOut Copies:=1, Collate:=True Next j 'Fermeture du fichier après impression de ses deux feuilles wbk.Close 'Passage au fichier suivant Next i Set wbk = Nothing End Sub
Re bonjour,
Désolé, je viens de tester le code ci-dessous comme décrit dans la réponse
précédente et j'ai toujours une erreur lorsque j=1. Je précise que j'ai
vérifié le nom des Feuilles du Fichier 2.xls et qu'ils sont corects.
Alors merci a ceux qui peuvent m'aider.
Régis MATHIEU
regis.mathieu4@wanadoo.fr
Code testé :
Sub Impression()
Dim Noms_Fichiers, Noms_Feuilles, i, j
Dim wbk As Workbook
Noms_Fichiers = Array("Fichier 1.xls", "Fichier 2.xls")
Noms_Feuilles = Array("Feuille1", "Feuille2")
' Boucle d'ouverture des fichiers à imprimer
For i = 0 To 1
Fichier_a_ouvrir = "C:Documents and SettingsREGISBureauTest
Impression" & Noms_Fichiers(i)
Set wbk = Workbooks.Open(Filename:=Fichier_a_ouvrir)
Windows(Noms_Fichiers(i)).Activate
' Boucle d'impression des 2 feuilles de chaque fichier
For j = 0 To 1
' Impression des 2 feuilles de chaque fichier
wbk.Worksheets(Noms_Feuilles(j)).PrintOut Copies:=1,
Collate:=True
Next j
'Fermeture du fichier après impression de ses deux feuilles
wbk.Close
'Passage au fichier suivant
Next i
Set wbk = Nothing
End Sub
Re bonjour, Désolé, je viens de tester le code ci-dessous comme décrit dans la réponse précédente et j'ai toujours une erreur lorsque j=1. Je précise que j'ai vérifié le nom des Feuilles du Fichier 2.xls et qu'ils sont corects.
Alors merci a ceux qui peuvent m'aider.
Régis MATHIEU
Code testé : Sub Impression() Dim Noms_Fichiers, Noms_Feuilles, i, j Dim wbk As Workbook Noms_Fichiers = Array("Fichier 1.xls", "Fichier 2.xls") Noms_Feuilles = Array("Feuille1", "Feuille2") ' Boucle d'ouverture des fichiers à imprimer For i = 0 To 1 Fichier_a_ouvrir = "C:Documents and SettingsREGISBureauTest Impression" & Noms_Fichiers(i) Set wbk = Workbooks.Open(Filename:=Fichier_a_ouvrir) Windows(Noms_Fichiers(i)).Activate ' Boucle d'impression des 2 feuilles de chaque fichier For j = 0 To 1 ' Impression des 2 feuilles de chaque fichier wbk.Worksheets(Noms_Feuilles(j)).PrintOut Copies:=1, Collate:=True Next j 'Fermeture du fichier après impression de ses deux feuilles wbk.Close 'Passage au fichier suivant Next i Set wbk = Nothing End Sub