Microsoft 365 vba>cacher de colonnes avec combobox>selon resultat liste deroulante

evat27

XLDnaute Nouveau
Bonsoir toute le monde

Désolée>je suis vraiment débutante ...:)


Je doit crée un formulaire avec de listes déroulantes ComboboX
Ce combobox + les titres doivent disparaitre selon le résultats de la première question (OUI/NON)
J'ai fait une Macro que ca marche plus au moins dans le première fichier
Dans le second rien....
J'ai vu que c'est impossible de cacher de cellules et que on peut cacher que de colonnes ou des lignes....
Dans mon cas je pense que c'est mieux des colonnes ...
Je joins le 2 fichiers ( le Premier juste pour info.. mais c'est bien de comprendre pourquoi..)
Si vous pouvez m'aider ...Un enorme Merci!!!
PS>les questions sont dans les fichiers
Très bonne soirée
 

Pièces jointes

  • C_TEST MACRO 2.xlsm
    60.9 KB · Affichages: 3
  • C_TEST MACRO pour info .xlsm
    27.2 KB · Affichages: 0

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Evat,
Un Worksheet_Change ne se déclenche qu'après avoir modifié la cellule ET validé par entrée.
Dans votre cas, personne ne valide la cellule A2, donc échec.
Mais vous pouvez déclencher sur une modification du choix dans votre ComboBox, essayez :
Code:
Private Sub ComboBox1_Change()
    If ComboBox1.Value = "NON" Then Flag = True Else Flag = False
    [C1].EntireColumn.Hidden = Flag
End Sub
 

Pièces jointes

  • C_TEST MACRO 2.xlsm
    57.4 KB · Affichages: 1

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Mais comme A2 est utilisé dans les formules, pourquoi ne pas utiliser une liste déroulante en A2 et :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, [A2]) Is Nothing Then
        If Target = "NON" Then Flag = True Else Flag = False
        [C1].EntireColumn.Hidden = Flag
    End If
End Sub
 

Pièces jointes

  • C_TEST MACRO 3.xlsm
    56.3 KB · Affichages: 1
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Just the fun ...
Quitte à simplifier, en PJ il suffit de cliquer sur la cellule A2, avec :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, [A2]) Is Nothing Then
        If Target = "NON" Then
            Target = "OUI"
            [C1].EntireColumn.Hidden = False
        Else
            Target = "NON"
            [C1].EntireColumn.Hidden = True
        End If
        [A1].Select
    End If
End Sub
 

Pièces jointes

  • C_TEST MACRO 4.xlsm
    56.6 KB · Affichages: 2

evat27

XLDnaute Nouveau
Bonsoir Evat,
Un Worksheet_Change ne se déclenche qu'après avoir modifié la cellule ET validé par entrée.
Dans votre cas, personne ne valide la cellule A2, donc échec.
Mais vous pouvez déclencher sur une modification du choix dans votre ComboBox, essayez :
Code:
Private Sub ComboBox1_Change()
    If ComboBox1.Value = "NON" Then Flag = True Else Flag = False
    [C1].EntireColumn.Hidden = Flag
End Sub
Bonsoir Silvanu Merci beaucoup pour votre aide!!>la Macro 2 est super ! Aussi la 4!Par contre si je veux cacher aussi une liste deroulante/combobox qui pourrait se trouver dans la colonne masqué on fait comment ?un grand merci!!Trés bonne soirée
 

Pièces jointes

  • C_TEST MACRO 2SILVANU E.xlsm
    56.9 KB · Affichages: 1

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir,
si je veux cacher aussi une liste deroulante/combobox qui pourrait se trouver dans la colonne masqué on fait comment ?
De façon très simple :
VB:
Private Sub ComboBox1_Change()
    If ComboBox1.Value = "NON" Then
        [B1].EntireColumn.Hidden = True
        ComboBox2.Visible = False
    Else
        [B1].EntireColumn.Hidden = False
        ComboBox2.Visible = True
    End If
End Sub
Voir PJ.
 

Pièces jointes

  • C_TEST MACRO 2SILVANU E.xlsm
    54.8 KB · Affichages: 3

evat27

XLDnaute Nouveau
Au faite dans les autre fichiers je caché la colonne à cause du texte>mais la je crée en effet une Textbox et avec votre aide j'ai fait ca ( ca marche!!merci)

Private Sub ComboBox1_Change()
If ComboBox1.Value = "NON" Then
ComboBox2.Visible = False
TextBox1.Visible = False
Else
ComboBox2.Visible = True
TextBox1.Visible = True
End If
End Sub
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 719
Messages
2 112 179
Membres
111 452
dernier inscrit
christine64