• Initiateur de la discussion Initiateur de la discussion guenfood
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

guenfood

XLDnaute Occasionnel
Bonjour,

Je souhaite effectuer l'impression des colonnes A à L de mon tableau mais uniquement les colonnes pour lesquelles la colonne A comprend des données.
Je ne sais pas comment m'y prendre.

Merci par avance.
 
Je me suis sans doute mal exprimé.

Disons simplement, que dans mes colonnes, les colonnes B à L peuvent être renseignées de données alors que la colonne A non.
C'est pourquoi je ne voulais imprimer que l'ensemble de mes colonnes (qui sont triées en fonction de la colonne A) à partir du moment où la colonne A contient des données.
 
guenfood, tontoncarton, le forum,

sois tu exporte tes données comme tontoncarton te le conseilles soit tu fais une petite ligne de code supplémentaire filtrer automatiquement ta colonne A uniquement sur les cellules non vides et ainsi imprimer la partie filtrée.

A+
 
Salut le forum, bonjour à tous,

Voici une petite moulinette que j'utilise sur un classeur de compta.
Elle masque les colonnes ne contenat aucune données hormis la première et la dernière.

Tu peux la tester si tu le souhaite en modifiant les lignes dont ut as besoin.

Sub Efface_Col()
'
' Macro enregistrée le 01/08/2005 par Humansoft ©2005
'

'
Dim zv_Col As Variant
Dim zi_Nb As Integer


Sheets('Récapitulatif').Unprotect ' Nom de la feuille
For zi_Nb = 68 To 106 'Indice de la lettre de colonne
If zi_Nb >= 91 Then ' Si superieur à Z alors on passe à AA
'zi_Nb = zi_Nb - 26 ' On décrémente le compteur
zv_Col = 'A' & Chr(zi_Nb - 26) 'pour ajouter A à A
If Range('' & zv_Col & '39').Value = 0 Then 'on verifie la présence de données dans la dernière cellule de la colonne
Columns('' & zv_Col & ':' & zv_Col & '').Select ' on sélectionne
Selection.EntireColumn.Hidden = True ' on cache
End If
Else
zv_Col = Chr(zi_Nb)
If Range('' & zv_Col & '39').Value = 0 Then
Columns('' & zv_Col & ':' & zv_Col & '').Select
Selection.EntireColumn.Hidden = True
End If
End If
Next zi_Nb
Sheets('Récapitulatif').Protect

End Sub

Bonne utilisation
 
Bonjour le forum, bonjour les gens,

Après avoir utiliser la petite moulinette précédente, il faut réinitilaliser la feuille.
Voici donc la procédure.


Sub Affiche_Col()
'
' Macro enregistrée le 01/08/2005 par Humansoft ©2005
'

'
Dim zv_Col As Variant
Dim zi_Nb As Integer

Sheets('Récapitulatif').Unprotect
For zi_Nb = 68 To 106
If zi_Nb >= 91 Then
'zi_Nb = zi_Nb - 26
zv_Col = 'A' & Chr(zi_Nb - 26)
If Range('' & zv_Col & '39').Value = 0 Then
Columns('' & zv_Col & ':' & zv_Col & '').Select
Selection.EntireColumn.Hidden = False
End If
Else
zv_Col = Chr(zi_Nb)
If Range('' & zv_Col & '39').Value = 0 Then
Columns('' & zv_Col & ':' & zv_Col & '').Select
Selection.EntireColumn.Hidden = False
End If
End If
Next zi_Nb
Range('A1').Select
Sheets('Récapitulatif').Protect

End Sub


Si tu souhaite imprimer ta sélection, voici une procédure toute prète.
Bien sûr, elle est liée à mon classeur mais les modifications à faire pour ton classeur devraient être minimes.

Sub Print_Sheets(ByVal ps_Shet As String)
'
' Macro enregistrée le 01/08/2005 par Humansoft ©2005
' Cette macro fonctionne depuis l'appel depuis un menu
' La variable ps_shet correspond au nom de la feuille à imprimer
' De Janvier à Décembre ou Récapitulatif

'
Dim zv_Dat As Variant
Dim zs_Prn, zs_Msg As String

zs_Msg = ' IMPRESSION DES DOCUMENTS' _
& vbCrLf & vbCrLf & 'Seules les colonnes contenant des chiffres ' _
& vbCrLf & ' apparaissent sur le récapitulatif.' _
& vbCrLf & vbCrLf & 'Pour chaque mois, toutes les colonnes,' _
& vbCrLf & 'même vides, seront imprimées.'

zs_Prn = ''
Select Case ps_Shet
Case '01': zs_Prn = 'Janvier '
Case '02': zs_Prn = 'Février '
Case '03': zs_Prn = 'Mars '
Case '04': zs_Prn = 'Avril '
Case '05': zs_Prn = 'Mai '
Case '06': zs_Prn = 'Juin '
Case '07': zs_Prn = 'Juillet '
Case '08': zs_Prn = 'Août '
Case '09': zs_Prn = 'Septembre '
Case '10': zs_Prn = 'Octobre '
Case '12': zs_Prn = 'Novembre '
Case '12': zs_Prn = 'Décembre '
End Select
If zs_Prn = '' Then
zs_Prn = ps_Shet
End If
Sheets(ps_Shet).Select
If ps_Shet = 'Récapitulatif' Then
Efface_Col ' Lapremière moulinette
Range('A1:AQ1').Select
ActiveWindow.Zoom = True
Range('A1').Select
End If
zv_Dat = 'Année ' & Format(Range('Saisie!C4').Value, 'YYYY')

'Recap et mois
MsgBox zs_Msg, vbInformation, vs_Tit
ActiveSheet.PageSetup.PrintArea = '$A$2:$AQ$42'
With ActiveSheet.PageSetup
.LeftHeader = '&''Verdana,Gras''&7' & zs_Prn & ' ' & zv_Dat
.CenterHeader = ''
.RightHeader = ''
.LeftFooter = '&''Verdana,Normal''&7GestionVB Compta - ©2003-2005 Humansoft'
.CenterFooter = ''
.RightFooter = '&''Verdana,Normal''&7Edition du &D'
.LeftMargin = Application.InchesToPoints(0.393700787401575)
.RightMargin = Application.InchesToPoints(0.393700787401575)
.TopMargin = Application.InchesToPoints(0.78740157480315)
.BottomMargin = Application.InchesToPoints(0.78740157480315)
.HeaderMargin = Application.InchesToPoints(0.511811023622047)
.FooterMargin = Application.InchesToPoints(0.511811023622047)
.PrintQuality = 600
.CenterVertically = False
.Orientation = xlLandscape
.Zoom = False
.FitToPagesTall = 1
End With
If ps_Shet <> 'Récapitulatif' Then
With ActiveSheet.PageSetup
.FitToPagesWide = False '1
End With
Else
With ActiveSheet.PageSetup
.FitToPagesWide = 1
End With
End If

ActiveWindow.SelectedSheets.PrintOut Preview:=True
ActiveSheet.PageSetup.PrintArea = ''
If ps_Shet = 'Récapitulatif' Then
Affiche_Col ' la seconde moulinette
End If
Range('A1').Select
Sheets('Accueil').Select

End Sub

Voilà pour le code

Bonne utilisation

Vincent
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
541
Réponses
8
Affichages
118
  • Question Question
Microsoft 365 Traitement
Réponses
7
Affichages
85
Réponses
20
Affichages
816
Réponses
5
Affichages
349
Réponses
4
Affichages
126
Réponses
8
Affichages
316
Retour