Soit une feuille de calcul possédant N+1 colonnes. Je souhaiterais
réaliser N impressions (tenant sur une page, au pire avec une mise à
l'échelle) où on trouverait la colonne 1 et la colonne k avec 2 ≤ k ≤ N
+1, et cela automatiquement.
N'ayant que peu (ou plutôt pas) de connaissances approfondies en excel,
je me tourne vers toutes les bonnes volontés de ce groupe !
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
Daniel.C
Bonjour. J'ai supposé que la première colonne était la colonne A :
Sub ImpressionAlambiquée() Dim Col As Integer, Sh As Worksheet Col = [IV1].End(xlToLeft).Column Set Sh = ActiveSheet Sheets.Add ActiveSheet.Name = "imp" Sh.Columns(1).Copy [imp!A1] For i = 2 To Col Columns(2).ClearContents Sh.Columns(i).Copy [imp!B1] With ActiveSheet.PageSetup .Zoom = False .FitToPagesTall = 1 End With ActiveSheet.PrintOut Next i Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True End Sub
Cordialement. Daniel
Bonjour à tous,
Soit une feuille de calcul possédant N+1 colonnes. Je souhaiterais réaliser N impressions (tenant sur une page, au pire avec une mise à l'échelle) où on trouverait la colonne 1 et la colonne k avec 2 ≤ k ≤ N +1, et cela automatiquement.
N'ayant que peu (ou plutôt pas) de connaissances approfondies en excel, je me tourne vers toutes les bonnes volontés de ce groupe !
Je vous remercie d'avance.
Bonjour.
J'ai supposé que la première colonne était la colonne A :
Sub ImpressionAlambiquée()
Dim Col As Integer, Sh As Worksheet
Col = [IV1].End(xlToLeft).Column
Set Sh = ActiveSheet
Sheets.Add
ActiveSheet.Name = "imp"
Sh.Columns(1).Copy [imp!A1]
For i = 2 To Col
Columns(2).ClearContents
Sh.Columns(i).Copy [imp!B1]
With ActiveSheet.PageSetup
.Zoom = False
.FitToPagesTall = 1
End With
ActiveSheet.PrintOut
Next i
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub
Cordialement.
Daniel
Bonjour à tous,
Soit une feuille de calcul possédant N+1 colonnes. Je souhaiterais
réaliser N impressions (tenant sur une page, au pire avec une mise à
l'échelle) où on trouverait la colonne 1 et la colonne k avec 2 ≤ k ≤ N
+1, et cela automatiquement.
N'ayant que peu (ou plutôt pas) de connaissances approfondies en excel,
je me tourne vers toutes les bonnes volontés de ce groupe !
Bonjour. J'ai supposé que la première colonne était la colonne A :
Sub ImpressionAlambiquée() Dim Col As Integer, Sh As Worksheet Col = [IV1].End(xlToLeft).Column Set Sh = ActiveSheet Sheets.Add ActiveSheet.Name = "imp" Sh.Columns(1).Copy [imp!A1] For i = 2 To Col Columns(2).ClearContents Sh.Columns(i).Copy [imp!B1] With ActiveSheet.PageSetup .Zoom = False .FitToPagesTall = 1 End With ActiveSheet.PrintOut Next i Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True End Sub
Cordialement. Daniel
Bonjour à tous,
Soit une feuille de calcul possédant N+1 colonnes. Je souhaiterais réaliser N impressions (tenant sur une page, au pire avec une mise à l'échelle) où on trouverait la colonne 1 et la colonne k avec 2 ≤ k ≤ N +1, et cela automatiquement.
N'ayant que peu (ou plutôt pas) de connaissances approfondies en excel, je me tourne vers toutes les bonnes volontés de ce groupe !
Je vous remercie d'avance.
Christophe Jorssen
Le Wed, 18 Mar 2009 12:37:07 +0100, Daniel.C a écrit/wrote :
Bonjour. J'ai supposé que la première colonne était la colonne A :
Sub ImpressionAlambiquée() Dim Col As Integer, Sh As Worksheet Col = [IV1].End(xlToLeft).Column Set Sh = ActiveSheet Sheets.Add ActiveSheet.Name = "imp" Sh.Columns(1).Copy [imp!A1] For i = 2 To Col Columns(2).ClearContents Sh.Columns(i).Copy [imp!B1] With ActiveSheet.PageSetup .Zoom = False .FitToPagesTall = 1 End With ActiveSheet.PrintOut Next i Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True End Sub
Ça n'a pas l'air mal du tout ça. Merci Daniel de ta réponse rapide. Je comprends à peu près le code. Juste une petite question concernant la troisième ligne
Col = [IV1].End(xlToLeft).Column
Je comprends qu'elle récupère le nombre de colonnes effectivement utilisées dans la feuille de calcul. Mais quel est le sens, en particulier, de [IV1]. ?
Merci d'avance
-- Christophe
Le Wed, 18 Mar 2009 12:37:07 +0100, Daniel.C a écrit/wrote :
Bonjour.
J'ai supposé que la première colonne était la colonne A :
Sub ImpressionAlambiquée()
Dim Col As Integer, Sh As Worksheet
Col = [IV1].End(xlToLeft).Column
Set Sh = ActiveSheet
Sheets.Add
ActiveSheet.Name = "imp"
Sh.Columns(1).Copy [imp!A1]
For i = 2 To Col
Columns(2).ClearContents
Sh.Columns(i).Copy [imp!B1]
With ActiveSheet.PageSetup
.Zoom = False
.FitToPagesTall = 1
End With
ActiveSheet.PrintOut
Next i
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub
Ça n'a pas l'air mal du tout ça. Merci Daniel de ta réponse rapide. Je
comprends à peu près le code. Juste une petite question concernant la
troisième ligne
Col = [IV1].End(xlToLeft).Column
Je comprends qu'elle récupère le nombre de colonnes effectivement
utilisées dans la feuille de calcul. Mais quel est le sens, en
particulier, de [IV1]. ?
Le Wed, 18 Mar 2009 12:37:07 +0100, Daniel.C a écrit/wrote :
Bonjour. J'ai supposé que la première colonne était la colonne A :
Sub ImpressionAlambiquée() Dim Col As Integer, Sh As Worksheet Col = [IV1].End(xlToLeft).Column Set Sh = ActiveSheet Sheets.Add ActiveSheet.Name = "imp" Sh.Columns(1).Copy [imp!A1] For i = 2 To Col Columns(2).ClearContents Sh.Columns(i).Copy [imp!B1] With ActiveSheet.PageSetup .Zoom = False .FitToPagesTall = 1 End With ActiveSheet.PrintOut Next i Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True End Sub
Ça n'a pas l'air mal du tout ça. Merci Daniel de ta réponse rapide. Je comprends à peu près le code. Juste une petite question concernant la troisième ligne
Col = [IV1].End(xlToLeft).Column
Je comprends qu'elle récupère le nombre de colonnes effectivement utilisées dans la feuille de calcul. Mais quel est le sens, en particulier, de [IV1]. ?
Merci d'avance
-- Christophe
Christophe Jorssen
Le Wed, 18 Mar 2009 13:39:38 +0100, ChristianM a écrit/wrote :
[IV1] c'est l'équivalent de Range ("IV1")
Merci Christian de ta réponse. Mais qu'est-ce que ce IV1 ?
-- Christophe
Le Wed, 18 Mar 2009 13:39:38 +0100, ChristianM a écrit/wrote :
[IV1] c'est l'équivalent de Range ("IV1")
Merci Christian de ta réponse. Mais qu'est-ce que ce IV1 ?
Le Wed, 18 Mar 2009 13:39:38 +0100, ChristianM a écrit/wrote :
[IV1] c'est l'équivalent de Range ("IV1")
Merci Christian de ta réponse. Mais qu'est-ce que ce IV1 ?
-- Christophe
Daniel.C
C'est la cellule la plus à droite de la ligne 1 (sauf pour XL2007) "IV1].End(xlToLeft)" retourne la première cellule remplie à la gauche de IV1. Daniel
Le Wed, 18 Mar 2009 13:39:38 +0100, ChristianM a écrit/wrote :
[IV1] c'est l'équivalent de Range ("IV1")
Merci Christian de ta réponse. Mais qu'est-ce que ce IV1 ?
C'est la cellule la plus à droite de la ligne 1 (sauf pour XL2007)
"IV1].End(xlToLeft)" retourne la première cellule remplie à la gauche
de IV1.
Daniel
Le Wed, 18 Mar 2009 13:39:38 +0100, ChristianM a écrit/wrote :
[IV1] c'est l'équivalent de Range ("IV1")
Merci Christian de ta réponse. Mais qu'est-ce que ce IV1 ?
C'est la cellule la plus à droite de la ligne 1 (sauf pour XL2007) "IV1].End(xlToLeft)" retourne la première cellule remplie à la gauche de IV1. Daniel
Le Wed, 18 Mar 2009 13:39:38 +0100, ChristianM a écrit/wrote :
[IV1] c'est l'équivalent de Range ("IV1")
Merci Christian de ta réponse. Mais qu'est-ce que ce IV1 ?