VBA maxi débutant [Résolu/Fermé]

Signaler
-
 FIFU -
Bonjour à tous,

Je précise d'entrée que je suis un gros noob de VBA, ça c'est fait... donc expliquez moi pas à pas SVP.
Après avoir passé plusieurs heures à chercher le moyen d'arriver à mes fins, force est de constater que je ne suis pas plus avancé q'au début de mes recherches.

Je souhaite créer une macro qui me permette si une cellule est vide de cacher 2 colonnes d'un tableau
Ex : si D5 est vide alors cacher E5:E37 et D5:D37 sachant que D5 corrspond à une formule Index equiv "=+SI(ESTERREUR(INDEX($E$48:$E$82;EQUIV($D$4;$F$48:$F$82;0);0));"";INDEX($E$48:$E$82;EQUIV($D$4;$F$48:$F$82;0);0))" (je ne sais pas si ça peut poser pb)

Je souhaite également pouvoir recopier cette formule pour l'appliquer à d'autres colonnes.

Je précise que j'ai crée un menu déroulant en A3 qui me permet de calculer les données du tableau suivant cette variable et donc je cherche simplement à cacher les colonnes qui seront vides suivant la variable A3.

Merci de votre aide,

FIFU

5 réponses

Bonjour,

voici ce que tu demandes :

'Si D5 est vide
if d5 = "" then
'cacher tes colonnes D et E
range(columns(4),columns(5)).select
Selection.EntireColumn.Hidden = True
else

'si d5 n'est pas vide
range(columns(4),columns(5)).select
Selection.EntireColumn.Hidden = True

end if


un conseil : copie ce code et appuie sur F8, ca te permettra de comprendre et au lieu de mettre d5, tu peux faire ca
'i ligne
' j ligne
i=5
j=4
cells(i,j).select
OK mais il semble qu'il y ait un pb car quand je tate du F8 pour vérifier, que D5 soit vide ou contienne une valeur, cela me cache les 2 colonnes quand même...
Messages postés
1669
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
bonjour, je me permet de mettre mon grain de sel.. ;)

if d5 = "" then => if range("D5) ="" then... ou if cells(5,4)="" then.... serait mieux ;)
Messages postés
1669
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
De plus..

'si d5 n'est pas vide
range(columns(4),columns(5)).select
Selection.EntireColumn.Hidden = false ' pour les faire réapparaitre ;)
Magique ça fonctionne....

Merci beaucoup à vous 2.

Pk j'ai pas posté tt de suite ...