Macro pour supprimer des colonnes

  • Initiateur de la discussion Initiateur de la discussion Emy123
  • 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 !

E

Emy123

Guest
Bonjour,

J'ai un fichier avec plusieurs colonnes à compléter par d'autres interlocuteurs.
Avant d'imprimer le fichier et pour éviter qu'il y ait trop de pages pour rien, je voudrais supprimer les colonnes vides mais je ne sais pas comment faire.

Pouvez-vous svp m'aider ?

Je vous joint en PJ un fichier pour test.

Merci beaucoup !
 

Pièces jointes

Re : Macro pour supprimer des colonnes

Bonjour,
Je n'apporte aucune solution dans la mesure où tu souhaite garder les en-têtes de colonnes, je ne vois pas, au mieux effacer toutes les bordures de cellules, tu " imprimeras " des pages blanches.
Mon approche serait donc inverse, placer les bordures sur les en-têtes de colonnes et pour l'impression une petite macro qui dessine les bordures si la cellule est non vide.
 
Re : Macro pour supprimer des colonnes

Bonjour,

une piste (code à adapter à ton besoin) ; plutôt que supprimer les colonnes, on les masque, on imprime et on les réaffiche.

Dans dans le module ThisWorkbook
Code:
Option Explicit

Private Sub Workbook_BeforePrint(Cancel As Boolean)
  If ActiveSheet Is Feuil1 Then
  
    'On annule l'impression "directe"
    Cancel = True
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    
    'On masque les colonnes ne contenant pas de données
    '(Intersection entre chaque de la zone de saisiée et la plage fusionnée en B6)
    '(Cette partie du code peut/doit être adaptée selon ton besoin et la structure de ton fichier)
    Dim col As Integer
    For col = 2 To Feuil1.Range("B5").CurrentRegion.Columns.Count
      If WorksheetFunction.CountA(Feuil1.Cells(1, col).EntireColumn.Range(Feuil1.Range("A6").MergeArea.Address)) = 0 Then
        Feuil1.Cells(1, col).EntireColumn.Hidden = True
      End If
    Next col
    
    'On Imprime
    ActiveSheet.PrintOut
    
    'On réaffiche les colonnes masquées et on réactive les évênements
    Feuil1.Cells.EntireColumn.Hidden = False
    Application.EnableEvents = True
    
  End If
End Sub
 
Re : Macro pour supprimer des colonnes

Bonjour,

Merci pour la réponse. Je me suis mal exprimée, les colonnes vides peuvent être supprimées totalement même s'il y a une en-tête et un titre de colonne. A partir du moment où le contenu de la colonne est vide, il doit supprimer la colonne entière. Y-a-t-il une solution ?
 
Re : Macro pour supprimer des colonnes

oui :
remplacer

Feuil1.Cells(1, col).EntireColumn.Hidden = True

par

Feuil1.Cells(1, col).EntireColumn.delete
col = col = col-1

puis supprimer la ligne Feuil1.Cells.EntireColumn.Hidden = False
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 macro TCD
Réponses
4
Affichages
343
  • Question Question
Microsoft 365 Power Query
Réponses
8
Affichages
352
Retour