Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Masquer et réafficher colonne suivant condition ListBox

  • Initiateur de la discussion Initiateur de la discussion G'Claire
  • 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 !

G

G'Claire

Guest
Salut le forum

J'utilise ce bout code pour l'impression de feuille (D'un fichier fait par un Exélien du forum).

Private Sub CmdImprimer_Click()

Application.ScreenUpdating = False
For i = 0 To LbFeuilles.ListCount - 1
If LbFeuilles.Selected(i) = True Then
Application.StatusBar = "Impression: " & LbFeuilles.List(i)
Application.DisplayAlerts = False
Sheets(LbFeuilles.List(i)).PrintOut
Else
End If
Next i
Application.DisplayAlerts = True
Call AffichageBoutonsMenu
Unload Me
Application.StatusBar = False
Application.ScreenUpdating = True

End Sub

Ce que j'essaye de rajouter c'est une fonction qui me Masquerai les colonnes (B;C;D;E) si le résultat de la sélection et "Tool_Dossier"
et une fois l'impression faite que cela me réaffiche ces colonnes

Je connais le principe pour masquer une colonne, mais pas par l'intermédiaire d'une sélection dans une listbox

Columns("B:E").Select
Selection.EntireColumn.Hidden = True

Je pensait faire :

Private Sub CmdImprimer_Click()

Application.ScreenUpdating = False
For i = 0 To LbFeuilles.ListCount - 1
If LbFeuilles.Selected(i) = True Then
Application.StatusBar = "Impression: " & LbFeuilles.List(i)
If LbFeuilles.Selected(i) = "Tool_Dossier" then
Columns("B:E").Select
Selection.EntireColumn.Hidden = True
else
Application.DisplayAlerts = False
Sheets(LbFeuilles.List(i)).PrintOut
End if
Else
End If
Next i
Application.DisplayAlerts = True
Call AffichageBoutonsMenu
Unload Me
Application.StatusBar = False
Application.ScreenUpdating = True
End Sub

mais cela me donne une incompatibilité de type

Et je ne sais si cela a une importance, ma ListBox est multselect.

Je vous remercie, pour votre aide,G'Claire
 
Bonjour, j'ai testé ça et ça semble fonctionner:

Private Sub CmdImprimer_Click()

Application.ScreenUpdating = False
For i = 0 To Lbfeuilles.ListCount - 1
If Lbfeuilles.Selected(i) = True Then
Application.StatusBar = "Impression: " & Lbfeuilles.List(i)
If Lbfeuilles.List(i) = "Tool_Dossier" Then 'l'erreur est ici !

Columns("B:E").Select
Selection.EntireColumn.Hidden = True
Else
Application.DisplayAlerts = False
Sheets(Lbfeuilles.List(i)).PrintOut
End If
Else
End If
Next i
Application.DisplayAlerts = True
Call AffichageBoutonsMenu
Unload Me
Application.StatusBar = False
Application.ScreenUpdating = True

End Sub


remplacer votre :
If LbFeuilles.Selected(i) = "Tool_Dossier" then
par:
If Lbfeuilles.List(i) = "Tool_Dossier"

voila.
 
Re, le forum et bonjour Enfazz

Merci, de ta précision, et voila je que j'ai fait :

Private Sub CmdImprimer_Click()

Application.ScreenUpdating = False
For i = 0 To LbFeuilles.ListCount - 1
If LbFeuilles.Selected(i) = True Then
Application.StatusBar = "Impression: " & LbFeuilles.List(i)
If LbFeuilles.List(i) = "Tool_Dossiers" Then 'l'erreur est ici !

Columns("B:E").Select
Selection.EntireColumn.Hidden = True
Else
Application.DisplayAlerts = False
Sheets(LbFeuilles.List(i)).PrintOut
End If
Else
End If
Next i
Application.DisplayAlerts = True
Call AffichageBoutonsMenu
Selection.EntireColumn.Hidden = False
Unload Me
Application.StatusBar = False
Application.ScreenUpdating = True

End Sub

Donc cela me masuqe bien les colonnes B;C;D;E et me les réaffichent, mais cela ne m'imprime pas la feuille Tool_Données même si je sélectionne plusieurs feuilles (J'en ai 4 au total) et y compris cette feuille .

A mon avis je la place pas oui il faut ma condition.
Je vais chercher, merci,G'Claire
 
Re : Masquer et réafficher colonne suivant condition ListBox

Bonjour à tous,

Aujourd'hui je souhaiterais pouvoir
Créer une macro automatique (pas de bouton ni rien) : si le projet est « non » dans feuille 1, alors on masques les 4 colonnes correspondantes à ce projet dans les 13 autres onglets.

Mais je ne sais pas comment faire
En vous remerciant par avance
 

Pièces jointes

Re : Masquer et réafficher colonne suivant condition ListBox

Bonjour max,

Si tu as une question, tu ne dois pas la poster dans un fil existant mais créer ton propre fil
Dans Forum Excel
Bouton Ouvrir une nouvelle Discussion
 
- 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

Réponses
10
Affichages
632
Réponses
5
Affichages
837
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
7
Affichages
343
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…