EntireColumn.hidden avec combobox
Bon matin a tous les forumeurs.
J'offre le café pour commencer
Et le fichier démo: https://www.excel-pratique.com/~files/doc/UMM4cClasseur1.xls
J'y ai commencer un bout de code, mais je n'y arrive a rien.
Je cherche en fait a masquer des colonnes en fonction d'une donné contenue dans un combobox. Sa semblait simple a l'origine, mais je n'arrive rien ....
Plus d'exemple dans le fichier.xls
Merci d'avance a tous les helpeurs
Peri
Edit Dan : Changement du lien pour le fichier. Merci d'éviter de mettre des fichiers avec des liens sur cjoint.com (les fichiers n'y sont conservés que 15 jours...). Utilise l'option "Joindre un fichier" disponible sur ce site.
Bonjour,
Pas beaucoup de temps en ce moment mais essaye de remplacer les codes dans ta feuille 1 par ceci :
Private Sub ComboBox1_Change()
'Macro Dan
Dim vValeur As String
Dim i As Byte
Dim vSelection As String
Application.ScreenUpdating = False
Range("J:DE").EntireColumn.Hidden = False
If IsEmpty(ComboBox1) Then End
vValeur = ComboBox1.Value
For i = 10 To 110 Step 5
If Cells(2, i) <> vValeur Then
Range(Cells(2, i).Address).Select
Selection.EntireColumn.Hidden = True
End If
Next
End SubPrivate Sub Worksheet_Activate()
'Macro Dan
Dim i As Byte
Dim cel As Range
Application.ScreenUpdating = False
Range("J:DE").EntireColumn.Hidden = False
ComboBox1.Clear
For i = 10 To 110 Step 5
With ComboBox1
.AddItem ActiveSheet.Cells(2, i)
End With
Next
End SubAmicalement
Dan
PS : merci pour le café
Bonjour et merci.
Désolé pour l'upload de fichier, je ferai plus attention la prochaine fois, promis
La solution marche impeccablement mais j'ai un problème. Le format date n'est pas le même dans mon combobox1 que sur ma feuille, du coup, il ne masquepas les date que je lui demande car combobox.value n'Est pas identique a un des sélection.
Mais case sont sous le format: 31 juil. 1985, 19 août 1993, 11 janv. 2002
et mon combobox se remplis sous le format: 31/07/1985, 19/08/1993, 11/01/2002
Quelqu'un a une idée ?
Merci d'Avance!
Bonsoir,
regarde le fichier joint
le code :
Private Sub ComboBox1_Change()
Dim Col As Byte, X As Double
Application.ScreenUpdating = False
Range(Columns(10), Columns(109)).EntireColumn.Hidden = True
If Me.ComboBox1 <> "" And Me.ComboBox1 <> "Date" Then
X = CDbl(Format(Me.ComboBox1, 0))
Range(Cells(2, 10), Cells(2, 109)).Name = "LesDates"
Col = Application.Match(X, Range("LesDates"), 0) + 9
Cells(1, Col).Resize(1, 5).EntireColumn.Hidden = False
ElseIf Me.ComboBox1 = "Date" Then
Range("LesDates").SpecialCells(xlCellTypeConstants, 2).EntireColumn.Hidden = False
ElseIf Me.ComboBox1 = "" Then
Range("LesDates").EntireColumn.Hidden = False
End If
End Sub
Private Sub Worksheet_Activate()
Dim I As Byte
Application.ScreenUpdating = False
Range(Columns(10), Columns(109)).EntireColumn.Hidden = False
Set MesDates = CreateObject("Scripting.Dictionary")
For I = 10 To 105 Step 5
If Cells(2, I).Value <> "" Then
If Not MesDates.Exists(Cells(2, I).Value) Then MesDates.Add Cells(2, I).Value, Cells(2, I).Value
End If
Next I
Me.ComboBox1.List = MesDates.items
Me.ComboBox1.ListIndex = 0
Me.ComboBox1 = ""
End SubFichier :
Bonjour le forum
Merci a Nad Dam et Felix pour leur précieux temps
Le sujet est réglé
Peri