impression selon une liste de fichiers et d'onglets
16 réponses
Gilles72
Bonjour à tous,
ci dessous le code qui pemet d'ouvrir et d'imprimer des fichiers, selon une
liste établie par une autre macro.
j'aimerais changer la ligne de code qui imprime pour qu'elle prenne en
compte le nom des onglets à imprimer dans chaque fichier.
ex:
En colonne A: le chemin complet du fichier (fait par la macro)
En colonne F: FEUIL!1(ajoute sur le tableau)
En colonne F: FEUIL!4
En colonne F: FEUIL!8
Bonjour. Je n'ai pas compris ce que tu avais en colonne F. Cordialement. Daniel "Gilles72" a écrit dans le message de news: foemvt$vb9$
Bonjour à tous, ci dessous le code qui pemet d'ouvrir et d'imprimer des fichiers, selon une liste établie par une autre macro. j'aimerais changer la ligne de code qui imprime pour qu'elle prenne en compte le nom des onglets à imprimer dans chaque fichier. ex: En colonne A: le chemin complet du fichier (fait par la macro) En colonne F: FEUIL!1(ajoute sur le tableau) En colonne F: FEUIL!4 En colonne F: FEUIL!8
Bonjour.
Je n'ai pas compris ce que tu avais en colonne F.
Cordialement.
Daniel
"Gilles72" <nospam-gleroy@g-t.fr> a écrit dans le message de news:
foemvt$vb9$1@s1.news.oleane.net...
Bonjour à tous,
ci dessous le code qui pemet d'ouvrir et d'imprimer des fichiers, selon
une liste établie par une autre macro.
j'aimerais changer la ligne de code qui imprime pour qu'elle prenne en
compte le nom des onglets à imprimer dans chaque fichier.
ex:
En colonne A: le chemin complet du fichier (fait par la macro)
En colonne F: FEUIL!1(ajoute sur le tableau)
En colonne F: FEUIL!4
En colonne F: FEUIL!8
Bonjour. Je n'ai pas compris ce que tu avais en colonne F. Cordialement. Daniel "Gilles72" a écrit dans le message de news: foemvt$vb9$
Bonjour à tous, ci dessous le code qui pemet d'ouvrir et d'imprimer des fichiers, selon une liste établie par une autre macro. j'aimerais changer la ligne de code qui imprime pour qu'elle prenne en compte le nom des onglets à imprimer dans chaque fichier. ex: En colonne A: le chemin complet du fichier (fait par la macro) En colonne F: FEUIL!1(ajoute sur le tableau) En colonne F: FEUIL!4 En colonne F: FEUIL!8
Sur la même ligne dans les autres colonnes, j'indique les noms des onglets que je désire imprimer et qui sont différents selon les fichiers sur certains fichiers j'aurai 1 onglet, et sur d'autres, 2 ou 3 onglets ex:
En colonne D: liste(ajouté manuellement sur le tableau) En colonne E: recap En colonne F: fiche d'envoi
je cherche kekchose du genre: (pour D1 par ex:) cell.Offset(0, 0).Range) ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True c'est pas ça evidemment mais je cherche la syntaxe
je ne sais pas si mon explication est bien claire merci de toutes façons GILLES
Bonjour Daniel
Ah ouais ! je comprends que tu ne comprennes pas!
En fait, sur la liste créee par la précedente macro, j'ai:
En colonne A: le chemin complet des fichiers (fait par la macro)
EX:
S:AffairesLeroy GO30208O30208 dossier CHANTIER
INFORMATIQUE2-Fournisseurs & MagasinO30208 Bon de sortie.xls
Sur la même ligne dans les autres colonnes, j'indique les noms des onglets
que je désire imprimer
et qui sont différents selon les fichiers
sur certains fichiers j'aurai 1 onglet, et sur d'autres, 2 ou 3 onglets
ex:
En colonne D: liste(ajouté manuellement sur le tableau)
En colonne E: recap
En colonne F: fiche d'envoi
je cherche kekchose du genre: (pour D1 par ex:)
cell.Offset(0, 0).Range)
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
c'est pas ça evidemment mais je cherche la syntaxe
je ne sais pas si mon explication est bien claire
merci de toutes façons
GILLES
Sur la même ligne dans les autres colonnes, j'indique les noms des onglets que je désire imprimer et qui sont différents selon les fichiers sur certains fichiers j'aurai 1 onglet, et sur d'autres, 2 ou 3 onglets ex:
En colonne D: liste(ajouté manuellement sur le tableau) En colonne E: recap En colonne F: fiche d'envoi
je cherche kekchose du genre: (pour D1 par ex:) cell.Offset(0, 0).Range) ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True c'est pas ça evidemment mais je cherche la syntaxe
je ne sais pas si mon explication est bien claire merci de toutes façons GILLES
Gilles72
Rebonjour Daniel j'ai trouvé ça sauf que sur cet essai je devrais imprimer 2 onglets en 1 exemplaire, mais il en sort 2 exmplaires du même onglet (en fait c'est la feuille qui est deja selectionnée!) Si tu vois kekchose qui cloche n'hésite pas
Sub imprim() 'ça marche Application.EnableEvents = False On Error Resume Next Dim Cal As Range, c As Range, s As Sheets, Ligne As Long Sheets(liste).Select Set Cal = Range("A1:A12") [A1].Select For Each c In Cal If c = "" Then Exit For Workbooks.Open Filename:=c c.Offset(0, 2).Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True c.Offset(0, 3).Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Application.DisplayAlerts = False ActiveWorkbook.Close Next c End Sub Merci de ton aide ainsi qu'Isabelle
"Gilles72"
Rebonjour Daniel
j'ai trouvé ça sauf que sur cet essai je devrais imprimer 2 onglets en 1
exemplaire, mais il en sort 2 exmplaires du même onglet (en fait c'est la
feuille qui est deja selectionnée!)
Si tu vois kekchose qui cloche n'hésite pas
Sub imprim() 'ça marche
Application.EnableEvents = False
On Error Resume Next
Dim Cal As Range, c As Range, s As Sheets, Ligne As Long
Sheets(liste).Select
Set Cal = Range("A1:A12")
[A1].Select
For Each c In Cal
If c = "" Then Exit For
Workbooks.Open Filename:=c
c.Offset(0, 2).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
c.Offset(0, 3).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Application.DisplayAlerts = False
ActiveWorkbook.Close
Next c
End Sub
Merci de ton aide ainsi qu'Isabelle
Rebonjour Daniel j'ai trouvé ça sauf que sur cet essai je devrais imprimer 2 onglets en 1 exemplaire, mais il en sort 2 exmplaires du même onglet (en fait c'est la feuille qui est deja selectionnée!) Si tu vois kekchose qui cloche n'hésite pas
Sub imprim() 'ça marche Application.EnableEvents = False On Error Resume Next Dim Cal As Range, c As Range, s As Sheets, Ligne As Long Sheets(liste).Select Set Cal = Range("A1:A12") [A1].Select For Each c In Cal If c = "" Then Exit For Workbooks.Open Filename:=c c.Offset(0, 2).Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True c.Offset(0, 3).Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Application.DisplayAlerts = False ActiveWorkbook.Close Next c End Sub Merci de ton aide ainsi qu'Isabelle
"Gilles72"
Daniel.C
Essaie comme ça : Note que liste doit être une variable et je ne sais pas où elle est définie (si liste est le nom de la feuille, il faut mettre sheets("liste")
Sub imprim() On Error Resume Next Dim Cal As Range, c As Range, s As Sheets, Ligne As Long Dim i As Integer Set Cal = Sheets(liste).Range("A1:A12") For Each c In Cal If c = "" Then Exit For Workbooks.Open Filename:=c For i = 4 To 256 If Sheets(liste).Cells(c.Row, i) = "" Then Exit For Sheets(c.Offset(0, i)).PrintOut Copies:=1, Collate:=True Next i ActiveWorkbook.Close False Next c End Sub
Daniel "Gilles72" a écrit dans le message de news: fofgfd$c0t$
Rebonjour Daniel j'ai trouvé ça sauf que sur cet essai je devrais imprimer 2 onglets en 1 exemplaire, mais il en sort 2 exmplaires du même onglet (en fait c'est la feuille qui est deja selectionnée!) Si tu vois kekchose qui cloche n'hésite pas
Sub imprim() 'ça marche Application.EnableEvents = False On Error Resume Next Dim Cal As Range, c As Range, s As Sheets, Ligne As Long Sheets(liste).Select Set Cal = Range("A1:A12") [A1].Select For Each c In Cal If c = "" Then Exit For Workbooks.Open Filename:=c c.Offset(0, 2).Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True c.Offset(0, 3).Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Application.DisplayAlerts = False ActiveWorkbook.Close Next c End Sub Merci de ton aide ainsi qu'Isabelle
"Gilles72"
Essaie comme ça :
Note que liste doit être une variable et je ne sais pas où elle est définie
(si liste est le nom de la feuille, il faut mettre sheets("liste")
Sub imprim()
On Error Resume Next
Dim Cal As Range, c As Range, s As Sheets, Ligne As Long
Dim i As Integer
Set Cal = Sheets(liste).Range("A1:A12")
For Each c In Cal
If c = "" Then Exit For
Workbooks.Open Filename:=c
For i = 4 To 256
If Sheets(liste).Cells(c.Row, i) = "" Then Exit For
Sheets(c.Offset(0, i)).PrintOut Copies:=1, Collate:=True
Next i
ActiveWorkbook.Close False
Next c
End Sub
Daniel
"Gilles72" <nospam-gleroy@g-t.fr> a écrit dans le message de news:
fofgfd$c0t$1@s1.news.oleane.net...
Rebonjour Daniel
j'ai trouvé ça sauf que sur cet essai je devrais imprimer 2 onglets en 1
exemplaire, mais il en sort 2 exmplaires du même onglet (en fait c'est la
feuille qui est deja selectionnée!)
Si tu vois kekchose qui cloche n'hésite pas
Sub imprim() 'ça marche
Application.EnableEvents = False
On Error Resume Next
Dim Cal As Range, c As Range, s As Sheets, Ligne As Long
Sheets(liste).Select
Set Cal = Range("A1:A12")
[A1].Select
For Each c In Cal
If c = "" Then Exit For
Workbooks.Open Filename:=c
c.Offset(0, 2).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
c.Offset(0, 3).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Application.DisplayAlerts = False
ActiveWorkbook.Close
Next c
End Sub
Merci de ton aide ainsi qu'Isabelle
Essaie comme ça : Note que liste doit être une variable et je ne sais pas où elle est définie (si liste est le nom de la feuille, il faut mettre sheets("liste")
Sub imprim() On Error Resume Next Dim Cal As Range, c As Range, s As Sheets, Ligne As Long Dim i As Integer Set Cal = Sheets(liste).Range("A1:A12") For Each c In Cal If c = "" Then Exit For Workbooks.Open Filename:=c For i = 4 To 256 If Sheets(liste).Cells(c.Row, i) = "" Then Exit For Sheets(c.Offset(0, i)).PrintOut Copies:=1, Collate:=True Next i ActiveWorkbook.Close False Next c End Sub
Daniel "Gilles72" a écrit dans le message de news: fofgfd$c0t$
Rebonjour Daniel j'ai trouvé ça sauf que sur cet essai je devrais imprimer 2 onglets en 1 exemplaire, mais il en sort 2 exmplaires du même onglet (en fait c'est la feuille qui est deja selectionnée!) Si tu vois kekchose qui cloche n'hésite pas
Sub imprim() 'ça marche Application.EnableEvents = False On Error Resume Next Dim Cal As Range, c As Range, s As Sheets, Ligne As Long Sheets(liste).Select Set Cal = Range("A1:A12") [A1].Select For Each c In Cal If c = "" Then Exit For Workbooks.Open Filename:=c c.Offset(0, 2).Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True c.Offset(0, 3).Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Application.DisplayAlerts = False ActiveWorkbook.Close Next c End Sub Merci de ton aide ainsi qu'Isabelle
"Gilles72"
Gilles72
bonjour DANIEL, ci dessous le code rectifié qui ne marche pas complètement j'ai pas retenu ta proposition de Set Cal = Sheets(liste).Range("A1:A12") car le code n'ouvre pas le fichier avec l'ancien ça marche atre chose: le code ne dectecte pas les noms d'onglets sur les cellules de LISTE je pense que ça vient du fait qu'on ouvre le fichier, mais les noms d'onglets sont définis sur le fichier qui contient la macro j'ai essayé ce code pour revenir dessus, mais sans succès si tu vois kekchose... Merci gilles
Sub impri2() 'marche pas 'Application.EnableEvents = False On Error Resume Next Dim Cal As Range, c As Range, s As Sheets, Ligne As Long Dim i As Integer 'Set Cal = Sheets(liste).Range("A1:A12") Sheets(liste).Select Set Cal = Range("A1:A12") [A1].Select For Each c In Cal If c = "" Then Exit For Workbooks.Open Filename:=c Windows("fiche info affaire.xls").Activate For i = 4 To 256
If Sheets(liste).Cells(c.Row, i) = "" Then Exit For Windows("c").Activate ' Sheets(c.Offset(0, i)).PrintOut Copies:=1, Collate:=True MsgBox "Bon bin... !...", 0, "Impression ...."
Next i ActiveWorkbook.Close False Next c End Sub
bonjour DANIEL,
ci dessous le code rectifié qui ne marche pas complètement
j'ai pas retenu ta proposition de Set Cal = Sheets(liste).Range("A1:A12")
car le code n'ouvre pas le fichier
avec l'ancien ça marche
atre chose:
le code ne dectecte pas les noms d'onglets sur les cellules de LISTE
je pense que ça vient du fait qu'on ouvre le fichier, mais les noms
d'onglets sont définis sur le fichier qui contient la macro
j'ai essayé ce code pour revenir dessus, mais sans succès
si tu vois kekchose...
Merci
gilles
Sub impri2() 'marche pas
'Application.EnableEvents = False
On Error Resume Next
Dim Cal As Range, c As Range, s As Sheets, Ligne As Long
Dim i As Integer
'Set Cal = Sheets(liste).Range("A1:A12")
Sheets(liste).Select
Set Cal = Range("A1:A12")
[A1].Select
For Each c In Cal
If c = "" Then Exit For
Workbooks.Open Filename:=c
Windows("fiche info affaire.xls").Activate
For i = 4 To 256
If Sheets(liste).Cells(c.Row, i) = "" Then Exit For
Windows("c").Activate
' Sheets(c.Offset(0, i)).PrintOut Copies:=1, Collate:=True
MsgBox "Bon bin... !...", 0, "Impression ...."
bonjour DANIEL, ci dessous le code rectifié qui ne marche pas complètement j'ai pas retenu ta proposition de Set Cal = Sheets(liste).Range("A1:A12") car le code n'ouvre pas le fichier avec l'ancien ça marche atre chose: le code ne dectecte pas les noms d'onglets sur les cellules de LISTE je pense que ça vient du fait qu'on ouvre le fichier, mais les noms d'onglets sont définis sur le fichier qui contient la macro j'ai essayé ce code pour revenir dessus, mais sans succès si tu vois kekchose... Merci gilles
Sub impri2() 'marche pas 'Application.EnableEvents = False On Error Resume Next Dim Cal As Range, c As Range, s As Sheets, Ligne As Long Dim i As Integer 'Set Cal = Sheets(liste).Range("A1:A12") Sheets(liste).Select Set Cal = Range("A1:A12") [A1].Select For Each c In Cal If c = "" Then Exit For Workbooks.Open Filename:=c Windows("fiche info affaire.xls").Activate For i = 4 To 256
If Sheets(liste).Cells(c.Row, i) = "" Then Exit For Windows("c").Activate ' Sheets(c.Offset(0, i)).PrintOut Copies:=1, Collate:=True MsgBox "Bon bin... !...", 0, "Impression ...."
Next i ActiveWorkbook.Close False Next c End Sub
Daniel.C
Bonjour. J'ai testé cette macro :
Sub impri2() 'Application.EnableEvents = False liste = "Feuil1" 'à modifier On Error Resume Next Dim Cal As Range, c As Range, s As Sheets, Ligne As Long Dim i As Integer Set Cal = Sheets(liste).Range("A1:A12") 'Sheets(liste).Select 'Set Cal = Range("A1:A12") '[A1].Select For Each c In Cal If c = "" Then Exit For Workbooks.Open Filename:=c For i = 4 To 256
If ThisWorkbook.Sheets(liste).Cells(c.Row, i) = "" Then Exit For Sheets(c.Offset(0, i).Value).PrintOut Copies:=1, Collate:=True MsgBox "Bon bin... !...", 0, "Impression ...."
Next i ActiveWorkbook.Close False Next c End Sub
Daniel "Gilles72" a écrit dans le message de news: foh3eo$vga$
bonjour DANIEL, ci dessous le code rectifié qui ne marche pas complètement j'ai pas retenu ta proposition de Set Cal = Sheets(liste).Range("A1:A12") car le code n'ouvre pas le fichier avec l'ancien ça marche atre chose: le code ne dectecte pas les noms d'onglets sur les cellules de LISTE je pense que ça vient du fait qu'on ouvre le fichier, mais les noms d'onglets sont définis sur le fichier qui contient la macro j'ai essayé ce code pour revenir dessus, mais sans succès si tu vois kekchose... Merci gilles
Sub impri2() 'marche pas 'Application.EnableEvents = False On Error Resume Next Dim Cal As Range, c As Range, s As Sheets, Ligne As Long Dim i As Integer 'Set Cal = Sheets(liste).Range("A1:A12") Sheets(liste).Select Set Cal = Range("A1:A12") [A1].Select For Each c In Cal If c = "" Then Exit For Workbooks.Open Filename:=c Windows("fiche info affaire.xls").Activate For i = 4 To 256
If Sheets(liste).Cells(c.Row, i) = "" Then Exit For Windows("c").Activate ' Sheets(c.Offset(0, i)).PrintOut Copies:=1, Collate:=True MsgBox "Bon bin... !...", 0, "Impression ...."
Next i ActiveWorkbook.Close False Next c End Sub
Bonjour.
J'ai testé cette macro :
Sub impri2()
'Application.EnableEvents = False
liste = "Feuil1" 'à modifier
On Error Resume Next
Dim Cal As Range, c As Range, s As Sheets, Ligne As Long
Dim i As Integer
Set Cal = Sheets(liste).Range("A1:A12")
'Sheets(liste).Select
'Set Cal = Range("A1:A12")
'[A1].Select
For Each c In Cal
If c = "" Then Exit For
Workbooks.Open Filename:=c
For i = 4 To 256
If ThisWorkbook.Sheets(liste).Cells(c.Row, i) = "" Then Exit For
Sheets(c.Offset(0, i).Value).PrintOut Copies:=1, Collate:=True
MsgBox "Bon bin... !...", 0, "Impression ...."
Next i
ActiveWorkbook.Close False
Next c
End Sub
Daniel
"Gilles72" <nospam-gleroy@g-t.fr> a écrit dans le message de news:
foh3eo$vga$1@s1.news.oleane.net...
bonjour DANIEL,
ci dessous le code rectifié qui ne marche pas complètement
j'ai pas retenu ta proposition de Set Cal = Sheets(liste).Range("A1:A12")
car le code n'ouvre pas le fichier
avec l'ancien ça marche
atre chose:
le code ne dectecte pas les noms d'onglets sur les cellules de LISTE
je pense que ça vient du fait qu'on ouvre le fichier, mais les noms
d'onglets sont définis sur le fichier qui contient la macro
j'ai essayé ce code pour revenir dessus, mais sans succès
si tu vois kekchose...
Merci
gilles
Sub impri2() 'marche pas
'Application.EnableEvents = False
On Error Resume Next
Dim Cal As Range, c As Range, s As Sheets, Ligne As Long
Dim i As Integer
'Set Cal = Sheets(liste).Range("A1:A12")
Sheets(liste).Select
Set Cal = Range("A1:A12")
[A1].Select
For Each c In Cal
If c = "" Then Exit For
Workbooks.Open Filename:=c
Windows("fiche info affaire.xls").Activate
For i = 4 To 256
If Sheets(liste).Cells(c.Row, i) = "" Then Exit For
Windows("c").Activate
' Sheets(c.Offset(0, i)).PrintOut Copies:=1, Collate:=True
MsgBox "Bon bin... !...", 0, "Impression ...."
Sub impri2() 'Application.EnableEvents = False liste = "Feuil1" 'à modifier On Error Resume Next Dim Cal As Range, c As Range, s As Sheets, Ligne As Long Dim i As Integer Set Cal = Sheets(liste).Range("A1:A12") 'Sheets(liste).Select 'Set Cal = Range("A1:A12") '[A1].Select For Each c In Cal If c = "" Then Exit For Workbooks.Open Filename:=c For i = 4 To 256
If ThisWorkbook.Sheets(liste).Cells(c.Row, i) = "" Then Exit For Sheets(c.Offset(0, i).Value).PrintOut Copies:=1, Collate:=True MsgBox "Bon bin... !...", 0, "Impression ...."
Next i ActiveWorkbook.Close False Next c End Sub
Daniel "Gilles72" a écrit dans le message de news: foh3eo$vga$
bonjour DANIEL, ci dessous le code rectifié qui ne marche pas complètement j'ai pas retenu ta proposition de Set Cal = Sheets(liste).Range("A1:A12") car le code n'ouvre pas le fichier avec l'ancien ça marche atre chose: le code ne dectecte pas les noms d'onglets sur les cellules de LISTE je pense que ça vient du fait qu'on ouvre le fichier, mais les noms d'onglets sont définis sur le fichier qui contient la macro j'ai essayé ce code pour revenir dessus, mais sans succès si tu vois kekchose... Merci gilles
Sub impri2() 'marche pas 'Application.EnableEvents = False On Error Resume Next Dim Cal As Range, c As Range, s As Sheets, Ligne As Long Dim i As Integer 'Set Cal = Sheets(liste).Range("A1:A12") Sheets(liste).Select Set Cal = Range("A1:A12") [A1].Select For Each c In Cal If c = "" Then Exit For Workbooks.Open Filename:=c Windows("fiche info affaire.xls").Activate For i = 4 To 256
If Sheets(liste).Cells(c.Row, i) = "" Then Exit For Windows("c").Activate ' Sheets(c.Offset(0, i)).PrintOut Copies:=1, Collate:=True MsgBox "Bon bin... !...", 0, "Impression ...."
Next i ActiveWorkbook.Close False Next c End Sub
francois.forcet
On 7 fév, 18:37, "Gilles72" wrote:
Bonjour Daniel Ah ouais ! je comprends que tu ne comprennes pas! En fait, sur lalistecréee par la précedente macro, j'ai:>> En colonne A: le chemin complet desfichiers(fait par la macro)
Sur la même ligne dans les autres colonnes, j'indique les noms des ongle ts que je désire imprimer et qui sont différentsselonlesfichiers sur certainsfichiersj'aurai 1 onglet, et sur d'autres, 2 ou 3 onglets ex:
En colonne D:liste(ajouté manuellement sur le tableau) En colonne E: recap En colonne F: fiche d'envoi
je cherche kekchose du genre: (pour D1 par ex:) cell.Offset(0, 0).Range) ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True c'est pas ça evidemment mais je cherche la syntaxe
je ne sais pas si mon explication est bien claire merci de toutes façons GILLES
Salut Gilles
Tu dis que sur la même ligne dans les autres colonnes tu indiques les noms des Onglets à imprimer Puis tu décrits en Colonne D comme étant la liste : la liste des Onglets ????
Quel rapport entre la colonne D et les Onglets à imprimer Si il y en a pas dans quelles colonnes sont ils décrits ????
Merci pour tes précisions
On 7 fév, 18:37, "Gilles72" <nospam-gle...@g-t.fr> wrote:
Bonjour Daniel
Ah ouais ! je comprends que tu ne comprennes pas!
En fait, sur lalistecréee par la précedente macro, j'ai:>> En colonne A: le chemin complet desfichiers(fait par la macro)
Sur la même ligne dans les autres colonnes, j'indique les noms des ongle ts
que je désire imprimer
et qui sont différentsselonlesfichiers
sur certainsfichiersj'aurai 1 onglet, et sur d'autres, 2 ou 3 onglets
ex:
En colonne D:liste(ajouté manuellement sur le tableau)
En colonne E: recap
En colonne F: fiche d'envoi
je cherche kekchose du genre: (pour D1 par ex:)
cell.Offset(0, 0).Range)
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
c'est pas ça evidemment mais je cherche la syntaxe
je ne sais pas si mon explication est bien claire
merci de toutes façons
GILLES
Salut Gilles
Tu dis que sur la même ligne dans les autres colonnes tu indiques les
noms des Onglets à imprimer
Puis tu décrits en Colonne D comme étant la liste : la liste des
Onglets ????
Quel rapport entre la colonne D et les Onglets à imprimer
Si il y en a pas dans quelles colonnes sont ils décrits ????
Bonjour Daniel Ah ouais ! je comprends que tu ne comprennes pas! En fait, sur lalistecréee par la précedente macro, j'ai:>> En colonne A: le chemin complet desfichiers(fait par la macro)
Sur la même ligne dans les autres colonnes, j'indique les noms des ongle ts que je désire imprimer et qui sont différentsselonlesfichiers sur certainsfichiersj'aurai 1 onglet, et sur d'autres, 2 ou 3 onglets ex:
En colonne D:liste(ajouté manuellement sur le tableau) En colonne E: recap En colonne F: fiche d'envoi
je cherche kekchose du genre: (pour D1 par ex:) cell.Offset(0, 0).Range) ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True c'est pas ça evidemment mais je cherche la syntaxe
je ne sais pas si mon explication est bien claire merci de toutes façons GILLES
Salut Gilles
Tu dis que sur la même ligne dans les autres colonnes tu indiques les noms des Onglets à imprimer Puis tu décrits en Colonne D comme étant la liste : la liste des Onglets ????
Quel rapport entre la colonne D et les Onglets à imprimer Si il y en a pas dans quelles colonnes sont ils décrits ????
Merci pour tes précisions
Gilles72
OK Daniel et merci je teste ça tout de suite Gilles
OK Daniel et merci
je teste ça tout de suite
Gilles
OK Daniel et merci je teste ça tout de suite Gilles
francois.forcet
On 8 fév, 09:43, "Gilles72" wrote:
bonjour DANIEL, ci dessous le code rectifié qui ne marche pas complètement j'ai pas retenu ta proposition de Set Cal = Sheets(liste).Range("A1:A 12") car le code n'ouvre pas le fichier avec l'ancien ça marche atre chose: le code ne dectecte pas les nomsd'ongletssur les cellules deLISTE je pense que ça vient du fait qu'on ouvre le fichier, mais les nomsd'ong letssont définis sur le fichier qui contient la macro j'ai essayé ce code pour revenir dessus, mais sans succès si tu vois kekchose... Merci gilles
Sub impri2() 'marche pas 'Application.EnableEvents = False On Error Resume Next Dim Cal As Range, c As Range, s As Sheets, Ligne As Long Dim i As Integer 'Set Cal = Sheets(liste).Range("A1:A12") Sheets(liste).Select Set Cal = Range("A1:A12") [A1].Select For Each c In Cal If c = "" Then Exit For Workbooks.Open Filename:=c Windows("fiche info affaire.xls").Activate For i = 4 To 256
If Sheets(liste).Cells(c.Row, i) = "" Then Exit For Windows("c").Activate ' Sheets(c.Offset(0, i)).PrintOut Copies:=1, Collate:=True MsgBox "Bon bin... !...", 0, "Impression...."
Next i ActiveWorkbook.Close False Next c End Sub
Salut Gilles
Ce code fonctionne :
On Error Resume Next Dim Cal As Range, c As Range, s As Sheets, Ligne As Long Dim i As Integer Sheets("liste").Select Set Cal = Range("A1:A12") [A1].Select For Each c In Cal If c = "" Then Exit For Workbooks.Open Filename:=c For i = 4 To 256 If Workbooks("fiche info affaire.xls").Sheets("liste").Cells(c.Row, i) = "" Then Exit For Sheets(Workbooks("fiche info affaire.xls").Sheets("Liste").Cells(c.Row, i).Value).PrintOut Copies:=1, Collate:=True MsgBox "Bon bin... !...", 0, "Impression ...." Next i ActiveWorkbook.Close False Next c
Je l'ai testé
On 8 fév, 09:43, "Gilles72" <nospam-gle...@g-t.fr> wrote:
bonjour DANIEL,
ci dessous le code rectifié qui ne marche pas complètement
j'ai pas retenu ta proposition de Set Cal = Sheets(liste).Range("A1:A 12")
car le code n'ouvre pas le fichier
avec l'ancien ça marche
atre chose:
le code ne dectecte pas les nomsd'ongletssur les cellules deLISTE
je pense que ça vient du fait qu'on ouvre le fichier, mais les nomsd'ong letssont définis sur le fichier qui contient la macro
j'ai essayé ce code pour revenir dessus, mais sans succès
si tu vois kekchose...
Merci
gilles
Sub impri2() 'marche pas
'Application.EnableEvents = False
On Error Resume Next
Dim Cal As Range, c As Range, s As Sheets, Ligne As Long
Dim i As Integer
'Set Cal = Sheets(liste).Range("A1:A12")
Sheets(liste).Select
Set Cal = Range("A1:A12")
[A1].Select
For Each c In Cal
If c = "" Then Exit For
Workbooks.Open Filename:=c
Windows("fiche info affaire.xls").Activate
For i = 4 To 256
If Sheets(liste).Cells(c.Row, i) = "" Then Exit For
Windows("c").Activate
' Sheets(c.Offset(0, i)).PrintOut Copies:=1, Collate:=True
MsgBox "Bon bin... !...", 0, "Impression...."
Next i
ActiveWorkbook.Close False
Next c
End Sub
Salut Gilles
Ce code fonctionne :
On Error Resume Next
Dim Cal As Range, c As Range, s As Sheets, Ligne As Long
Dim i As Integer
Sheets("liste").Select
Set Cal = Range("A1:A12")
[A1].Select
For Each c In Cal
If c = "" Then Exit For
Workbooks.Open Filename:=c
For i = 4 To 256
If Workbooks("fiche info affaire.xls").Sheets("liste").Cells(c.Row, i)
= "" Then Exit For
Sheets(Workbooks("fiche info
affaire.xls").Sheets("Liste").Cells(c.Row, i).Value).PrintOut
Copies:=1, Collate:=True
MsgBox "Bon bin... !...", 0, "Impression ...."
Next i
ActiveWorkbook.Close False
Next c
bonjour DANIEL, ci dessous le code rectifié qui ne marche pas complètement j'ai pas retenu ta proposition de Set Cal = Sheets(liste).Range("A1:A 12") car le code n'ouvre pas le fichier avec l'ancien ça marche atre chose: le code ne dectecte pas les nomsd'ongletssur les cellules deLISTE je pense que ça vient du fait qu'on ouvre le fichier, mais les nomsd'ong letssont définis sur le fichier qui contient la macro j'ai essayé ce code pour revenir dessus, mais sans succès si tu vois kekchose... Merci gilles
Sub impri2() 'marche pas 'Application.EnableEvents = False On Error Resume Next Dim Cal As Range, c As Range, s As Sheets, Ligne As Long Dim i As Integer 'Set Cal = Sheets(liste).Range("A1:A12") Sheets(liste).Select Set Cal = Range("A1:A12") [A1].Select For Each c In Cal If c = "" Then Exit For Workbooks.Open Filename:=c Windows("fiche info affaire.xls").Activate For i = 4 To 256
If Sheets(liste).Cells(c.Row, i) = "" Then Exit For Windows("c").Activate ' Sheets(c.Offset(0, i)).PrintOut Copies:=1, Collate:=True MsgBox "Bon bin... !...", 0, "Impression...."
Next i ActiveWorkbook.Close False Next c End Sub
Salut Gilles
Ce code fonctionne :
On Error Resume Next Dim Cal As Range, c As Range, s As Sheets, Ligne As Long Dim i As Integer Sheets("liste").Select Set Cal = Range("A1:A12") [A1].Select For Each c In Cal If c = "" Then Exit For Workbooks.Open Filename:=c For i = 4 To 256 If Workbooks("fiche info affaire.xls").Sheets("liste").Cells(c.Row, i) = "" Then Exit For Sheets(Workbooks("fiche info affaire.xls").Sheets("Liste").Cells(c.Row, i).Value).PrintOut Copies:=1, Collate:=True MsgBox "Bon bin... !...", 0, "Impression ...." Next i ActiveWorkbook.Close False Next c
Je l'ai testé
Gilles72
Daniel Je ne vois pas d'ou ça vient, mais chez moi ça ne marche pas: tel qu'il est le code n'ouvre pas le fichier Il l'ouvre en remettant
Sheets(liste).Select Set Cal = Range("A1:A12") [A1].Select Et là tu touches au but car il parvient à imprimer, mais toujours le même
onglet Chez toi ça marche? Gilles
Daniel
Je ne vois pas d'ou ça vient, mais chez moi ça ne marche pas:
tel qu'il est le code n'ouvre pas le fichier
Il l'ouvre en remettant
Sheets(liste).Select
Set Cal = Range("A1:A12")
[A1].Select
Et là tu touches au but car il parvient à imprimer, mais toujours le même