Fonction Cacher une colonne selon une fonction Si

Bonjour le forum,

Depuis hier, j'ai accepté l'idée que j'allais apprendre à coder VBA sur Excel pour obtenir ce que je veux de mon fichier ...

(oui ça me fait flipper et non je n'ai jamais fait de programmation, code et autres pratiques douteuses )

Bref' avec toute ma débutantise, je souhaite masquer la colonne I (comme la lettre i en majuscule hum ...) de la feuille "Conception Fonctionnelle" de mon tableau Excel (il y en a qu'un seul), selon le critère suivant :

Si la case "D9" de ma feuille "Carte d'identité" contient un "X", la colonne s'affiche, sinon elle reste masquée.

Avec l'aide de mes collègues, d'une bible du VBA et de mes quelques neurones, j'ai compris le système basique de VBA et j'ai écrit ceci :

Sub Cachercolonne()

Dim CI As Worksheet

CI = ThisWorkbook.Worksheets("Carte d'identité")

Dim CF As Worksheet

CF = ThisWorkbook.Worksheets("Conception Fonctionnelle")

If CI.Cells("D9").Value = X Then

CF.Range("B:B").Hidden = False

End If

End Sub

Vous vous en douterez, ça ne fonctionne pas (sinon je ne serais en train de vous écrire un roman) ...

Pourriez-vous m'aider à corriger ce code qui visiblement beug au niveau du "CI = ThisWorkbook.Worksheets("Carte d'identité")", s'il vous plaît ?

(PS : je ne puis vous donner le fichier Excel en PJ car confidentiel)

I send a SOS ...

bonjour

si tu lance ta macro dans onglet "Carte d'identité"

A+

Maurice

  • Sub Cachercolonne()
    Dim CF As Worksheet
    Set CF = Worksheets("Conception Fonctionnelle")
    If Range("D9").Value = "X" Then
    CF.Columns(2).Hidden = False ' decache Colonne
    Else
    CF.Columns(2).Hidden = True 'Cache Colonne
    End If
    End Sub

Merci Archer ! Ça fonctionne, c'est merveilleux


Autre mini-question : Est-ce que ça change tout si je souhaites cacher plusieurs colonnes ?

Par exemple : les colonnes L, M et N

J'ai essayé de mettre "Columns(12, 13, 14)" mais ça a l'air trop simple pour Excel

Bonjour

et oui

if faut faire des test voir

3 colonne = Columns("L:N").Select

ou

3 colonne + la colonne B = Columns("B:B,L:N").Select

regarde bien la syntaxe

A+

Maurice

Maurice,

J'écris ça:

Sub CacherStandard()

Dim CF As Worksheet

Set CF = Worksheets("Conception Fonctionnelle")

If Range("D8").Value = "X" Then

CF.Columns("12:14").Hidden = False ' decache Colonne

Else

CF.Columns("12:14").Hidden = True ' cache Colonne

End If

End Sub

mais il me met un beug au niveau de "CF.Columns("12:14").Hidden = True ' cache Colonne"

J'ai essayé ("12", "13", "14") aussi, en vain !

Merci à toi si tu as une réponse

Rosine

voici le code dans un fichier, il est dans "ThisWorkbook

39cache.xlsm (16.01 Ko)

Bonjour

on ses pas lire dur

A+

Maurice

  • Sub CacherStandard()
    Dim CF As Worksheet
    Set CF = Worksheets("Conception Fonctionnelle")
    If Range("D8").Value = "X" Then
    CF.Columns("L:N").Hidden = False ' decache Colonne
    Else
    CF.Columns("L:N").Hidden = True ' cache Colonne
    End If
    End Sub

Merci à vous deux pour vos réponses, j'ai trouvé quelque chose de lisible par tous et faisable par moi grâce à vos réponses !

C'est super

Bonne continuation,

Rosine

Bonjour,

Je souhaiterais afficher plusieurs colonne suivant ce que je rentre dans la cellule.

Par exemple : si je met 1 dans la colonne B je veux que les colonnes D et E s'affiche et si je met 2 dans la colonne B je veux que D et E se masquent.

Comment faisons nous ?

Merci pour vos réponses

Rechercher des sujets similaires à "fonction cacher colonne"