Masquer lignes grâce à VBA

Bonjour à tous,

Je suis nouveau sur le forum et je suis actuellement entrain de réaliser mon mémoire de fin d'étude je souhaiterais créer une base de données (déjà faites). Cependant dans celle si j'ai beaucoup de valeur ayant pour résultat 0. J'ai recherché un peu partout la réponse à ma question mais je n'arrive pas à l'adapter à ce fichier.

Je voudrai dans la feuille "Base de données Brut" masquer les lignes si il n'y a pas de résultat dans "Jours" et dans "Nuit" mais que si il y a un prix dans un des deux afficher la lignes. j'espère que mon explication était claire.

Merci pour votre aide.

Alex

10question-memoire.zip (952.57 Ko)

Bonjour,

Une 'tite macro :

Sub Galopin()
Dim Arr, iR%, Y As Boolean
Arr = [A1:E569].Value
On Error Resume Next
For iR = 10 To UBound(Arr)
   Y = Arr(iR, 4) = "" And Arr(iR, 5) = ""
   Rows(iR).Hidden = Y And Left(Arr(iR, 1), 3) = "10B"
Next
End Sub

A+

Bonjour, j'ai testé mais les formules matricielles sautent avec le masquages des lignes lors du lancement de la macro une deuxième fois.

Idem pour les intitulés de sous- chapitres puisqu'ils n'ont pas de valeur jour / nuit.

Une autre dispostion des données serait plus pratique. une colonne pour le chapitre / une colonne pour le sous chapitre .....

Ensuite n'importe quelle tableau croisé dynamique peut vous retourner une selection non vide.

Super merci beaucoup c'est exactement ce qu'il me fallait !!!!!!

Et juste pour réafficher les lignes masquer que faut-il modifier dans votre macro?

Merci beaucoup.

Comme le dit XMen les formules sautent lors du masquage donc il faut faire un collage spécial valeur avant de lancer la macro. Ce qui rend la macro irréversible.

Ha oui très bien merci je vois et dernière question après j'arrête de vous embêter, pour poser ma question j'ai envoyer la moitié du tableau et j'essaye d'appliquer votre macro a l'entièreté de mon tableau qui fait 3129lignes mais juste les 569 lignes qui se masque comment l'adapter?

Remplacer 569 par 3129...

Désoler mais cela ne fonctionne pas...

Voici ce que j'ai modifier dans la macro mais jusqu'à la ligne 569 il fait bien la macro mais après pas du tout. Bizarre

Sub Galopin()
Dim Arr, iR%, Y As Boolean
Arr = [A1:E3129].Value
On Error Resume Next
For iR = 10 To UBound(Arr)
   Y = Arr(iR, 4) = "" And Arr(iR, 5) = ""
   Rows(iR).Hidden = Y And Left(Arr(iR, 1), 3) = "10B"
Next
End Sub

Qu'y a-t'il dans la première colonne ?

La macro est basée sur le ait que la première colonne commence toujours par "10B"

A+

Il y a la même chose que sur le début les numéros de PB

La macro est basée sur le ait que la première colonne commence toujours par "10B"

ha daccord ba enfaite sur les autres c'est plus 10B mais 30A, 30B....

Fournir le fichier intégral.SVP

Désoler le fichier était trop lourd j'ai du supprimer pas mal de feuille mais c'est bon vous avez toute les sorte de PB présent sur la base de données.

Merci beaucoup de votre aide.

Essayez comme ça :

Sub Galopin()
Dim Arr, iR%, Y As Boolean
Arr = [A1:E569].Value
On Error Resume Next
For iR = 10 To UBound(Arr)
   Y = Arr(iR, 4) = "" And Arr(iR, 5) = ""
   Rows(iR).Hidden = (Y And Left(Arr(iR, 1), 3) = "10B") _
                  Or (Y And Left(Arr(iR, 1), 3) = "30A") _
                  Or (Y And Left(Arr(iR, 1), 3) = "30B")
Next
End Sub

merci beaucoup c'est parfait et ducoup je peut rajouter autant typologie type 10B et tout sa à la suite?

C'est bon sa fonctionne parfaitement merci beaucoup

S'il n'y à que "10B", "30A", "30B" oui. Si vous en rajoutez d'autres, il faudra rajouter une ligne à la macro...

Pensez également à modifier le Nombre de lignes...

Rechercher des sujets similaires à "masquer lignes vba"