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

- 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
Retour