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

Multiples extractions automatiques de colonnes

4 réponses
Avatar
Christophe Jorssen
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

4 réponses

Avatar
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.


Avatar
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
Avatar
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
Avatar
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 ?