Problème de code

Bonjour le forum.

Je souhaite masquer toutes les colonnes dont la valeur en ligne 6 est nulle.

Voici le code que j'ai "péniblement" réalisé et il ne fonctionne pas :

Sub Macro1()

    If Cells(6, i) = 0 Then
        For i = 4 To 773
        Columns("i").Hidden = True
        Next i
    End If

End Sub

Si quelqu'un a une correction....

Sinon je sais que Claude m'avait réalisé un filtre élaboré remarquable dans un ancien topic, est-il possible d'en réaliser un qui fonctionne sur colonnes et non sur lignes?

Ancien topic : https://forum.excel-pratique.com/viewtopic.php?t=12773

Merci

Bonjour,

Déjà, tu dois mettre le If à l'intérieur de la boucle,

Envoie ta feuille pour voir

Claude.

Voici un fichier d'exemple, l'original étant beaucoup trop volumineux :

https://www.excel-pratique.com/~files/doc2/RK9pEExemple.xls

J'ai remis le If à l'intérieur mais cela ne fonctionne pas, l'erreur doit être ailleurs....

Bonjour à tous,

Comme dit claude, le mieux est de vor ton fichier.

Sinon essaie déjà ceci :

Sub Macro1()
For i = 4 To 773
If Cells(6, i) = 0 Then Columns(i).Hidden = True
Next i
End Sub

Le 773 peut être adapté car exécuter une macro dans une zone où tu n'as pas de données ne sert pas si ce n'est de cacher le reste des colonnes de la feuille.

Le mieux est de connaitre la dimension de ton tableau et d'adapter le code en fonction. L'exécution s'en trouvera plus rapide.

Amicalement

Dan

re,

tu y était presque

Columns(i).Hidden = True au lieu de Columns("i").Hidden = True

et prends le réflexe de déclarer les vaiables (Dim)

Sub Macro1()
Dim i As Byte
    For i = 2 To 8
        If Cells(2, i) = 0 Then
            Columns(i).Hidden = True
        End If
    Next i
End Sub

Claude.

Ah ok, je comprends.

Un grand merci à toi Claude pour ton aide.

A+

Edit : Le code me renvoie une erreur comme quoi il y a un dépassement de capacité...770 colonnes en même temps....

Re-Edit : J'ai bien des données dans toutes ces colonnes malheureusement...

Autre pb ayant survenu depuis...j'ai diminuer l'intervalle des valeurs que doit prendre la variable i à [4,200] ( je pense que la limite est de 200 itérations ) ....

--> l'ensemble (D6:F6) regroupe 3 cellules fusionnées or E6 et F6 sont traitées comme des cellules nulles....

re,

Oups je n'avais pas vu ton fichier lorsque j'ai posté ...

Pour ton souci de dépassement, à l'en tête de la macro de Claude (ou la mienne), remplace

Dim i as byte

Par

Dim i as integer

Amicalement

Dan

re,

Dan, excuse, je t'ai pas vu passer au message précédent !

l'ensemble (D6:F6) regroupe 3 cellules fusionnées or E6 et F6 sont traitées comme des cellules nulles....

dans des cellules fusionnées, seule la cellule du coin sup. gauche peut contenir une valeur.

les autres sont vides.

Je me demande ce qu'on peut bien faire avec 770 colonnes !!

à+... Claude.

Merci pour vos infos, je vais voir ce que ça donne....

J'ai 20 objets pour lesquels je renseigne 10 paramètres jour par jour (les jours en "ordonnée") et pour chaque paramètre j'ai 3 colonnes avec la valeur du jour, la valeur par rapport à une valeur étalon (en %) et la moyenne cumulée chaque jour. Ca fait donc 20*10*3 soit 600 colonnes plus quelques autres renseignements....

Je teste et je vous retiens au courant, merci à vous deux.

Edit : Ca marche impeccablement, encore merci, bonne journée à vous.

Rechercher des sujets similaires à "probleme code"