Excel - Masquer colonnes selon valeurs d'une cellule[résolu]

Posez ici toutes les questions concernant un ou plusieurs logiciels, payants ou gratuits. Pour les demandes spécifiques aux systèmes d'exploitation, passez plutôt par les sections dédiées.

Modérateur: Modérateurs

Excel - Masquer colonnes selon valeurs d'une cellule[résolu]

Messagepar Likith » 10 Sep 2010 12:17

Bonjour zà vous!!

Je ne connais qu'encore peu Excel... et je tatonne beaucoup!

Je créé une feuille de calcul ou différentes solutions peuvent être rentrées.
Je cherche à afficher le nombre de colonnes de solutions en fonction de solutions voulues.
Plus simplement :
- dans une liste, on choisis combien de solutions ont dont tester (1,2,3,...)
- en fontion du nombre choisis, autant de colonnes de solutions doit s'afficher.

Je pensais limiter le nombre de solutions à 10 et cacher les solutions 2 à 9 si le chiffre entré est 1 par exemple...

Je suis une bille en programmation, je suis sur qu'il existe une solution toute bête, non?

Merci d'avance de votre aide!!
Dernière édition par Likith le 13 Sep 2010 16:31, édité 1 fois.
Un amant, cela ment. Une amante se lamente : que la lumière soit et la lumière déçoit. Louise de Vilmorin
Avatar de l’utilisateur
Likith
 
Messages: 25
Inscription: 01 Juin 2009 19:03

Re: Excel - Masquer colonnes selon valeurs d'une cellule

Messagepar Likith » 13 Sep 2010 15:09

J'ai réussit à créer une macro qui ne fonctionne qu'à moitiée...
Pour les options 1 et 2 solutions ça fonctionne parfaitement (mes autres colonnes sont cachées); mais à partir de 3, ça ne fonctionne plus et m'affiche toutes les colonnes sauf une pauvrette en plein milieu...

Peut être serais-se dû à ma macro contenant trop de "If"?!

La macro en question:
Code: Tout sélectionner
Sub Masquer()

'1 Solution
If Range("d8") = 1 Then
    Columns("l:al").Select
    Selection.EntireColumn.Hidden = True
    End If
   
'2 Solutions
If Range("d8") = 2 Then
    Columns("l:n").Select
    Selection.EntireColumn.Hidden = False
    End If
   
If Range("d8") = 2 Then
    Columns("o:al").Select
    Selection.EntireColumn.Hidden = True
    End If
   
'3 Solutions
If Range("d8") = 3 Then
    Columns("o:q").Select
    Selection.EntireColumn.Hidden = False
    End If
   
If Range("d8") = 3 Then
    Columns("q:al").Select
    Selection.EntireColumn.Hidden = True
    End If
   
'4 Solutions
If Range("d8") = 3 Then
    Columns("r:t").Select
    Selection.EntireColumn.Hidden = False
    End If
   
If Range("d8") = 3 Then
    Columns("u:al").Select
    Selection.EntireColumn.Hidden = True
    End If
   
'5 Solutions
If Range("d8") = 3 Then
    Columns("u:w").Select
    Selection.EntireColumn.Hidden = False
    End If
   
If Range("d8") = 3 Then
    Columns("x:al").Select
    Selection.EntireColumn.Hidden = True
    End If
   
'6 Solutions
If Range("d8") = 3 Then
    Columns("x:z").Select
    Selection.EntireColumn.Hidden = False
    End If
   
If Range("d8") = 3 Then
    Columns("aa:al").Select
    Selection.EntireColumn.Hidden = True
    End If

'7 Solutions
If Range("d8") = 3 Then
    Columns("aa:ae").Select
    Selection.EntireColumn.Hidden = False
    End If
   
If Range("d8") = 3 Then
    Columns("ad:al").Select
    Selection.EntireColumn.Hidden = True
    End If
   
'8 Solutions
If Range("d8") = 3 Then
    Columns("ad:af").Select
    Selection.EntireColumn.Hidden = False
    End If
   
If Range("d8") = 3 Then
    Columns("ag:al").Select
    Selection.EntireColumn.Hidden = True
    End If

'9 Solutions
If Range("d8") = 3 Then
    Columns("ag:ai").Select
    Selection.EntireColumn.Hidden = False
    End If
   
If Range("d8") = 3 Then
    Columns("aj:al").Select
    Selection.EntireColumn.Hidden = True
    End If
   
'10 Solutions
If Range("d8") = 3 Then
    Columns("aj:al").Select
    Selection.EntireColumn.Hidden = False
    End If

End Sub


Peut-on simplifier?
Un amant, cela ment. Une amante se lamente : que la lumière soit et la lumière déçoit. Louise de Vilmorin
Avatar de l’utilisateur
Likith
 
Messages: 25
Inscription: 01 Juin 2009 19:03

Re: Excel - Masquer colonnes selon valeurs d'une cellule

Messagepar Likith » 13 Sep 2010 16:30

Ca y est!

J'ai trouvé une macro qui fonctionne!!
(j'ai aussi essayer la mise en forme conditionnel qui ne fonctionnais pas bien)

Donc voici la macro :
Code: Tout sélectionner
Sub Masquer2()
'Masque les colonnes où L3=X
Application.ScreenUpdating = False
Dim i As Integer
For i = 7 To 59
If Cells(7, i) = "Hide" Then
Columns(i).Hidden = True
Else: Columns(i).Hidden = False
End If
Next i
Application.ScreenUpdating = True

End Sub


J'ai écris dans la ligne 7 de chaque colonne que je souhaitais faire fontionner avec la macro ceci: =SI($D$9<2;"Hide";"").

En fonction de la valeur de ma case D9 (avec menu déroulant), je masque les colonnes que je souhaite!
Un amant, cela ment. Une amante se lamente : que la lumière soit et la lumière déçoit. Louise de Vilmorin
Avatar de l’utilisateur
Likith
 
Messages: 25
Inscription: 01 Juin 2009 19:03


Retourner vers Software - Logiciels

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 6 invités