[vba excel] macro pour masquer ligne [Fermé]

Signaler
Messages postés
1
Date d'inscription
jeudi 26 juillet 2007
Statut
Membre
Dernière intervention
26 juillet 2007
-
 Jacquou -
Bonjour à tous,

j'ai un problème de macro en vba sous excel(je précise que je n'y connais pas grand chose!!! je sais juste utiliser les macros mais pas les créer!!!)
Voila, j'ai un tableau du type:
''''''''''''''''''''''A''''''''''''''''''''''''''''''''''''''B'''''''''''''''''''''''''''''C''''''''''''''''''''''''''''''''''''''D
1
2
3
4
5'''''''''Equipements'''''''''''''Domaines'''''''''''''''Impact '''''''''''''''''''Action à mener
6''''''''Compacteuse''''''''''''''''''''Air''''''''''''''''''''Poussière''''''''''Faire analyse par labo
7'''''''''''''''Tour
8'''''Poste soudure
9'''''''''''''''Four''''''''''''''''''''''''''''''''Air'''''''''''''''''''''''Fumée''''''''''''''Faire analyse par labo

J'aimerais avoir un bouton (macro) pour obtenir la forme suivante de tableau afin de faciliter les impressions car mon tableau est très grand :

''''''''''''''''''''''A''''''''''''''''''''''''''''''''''''''B'''''''''''''''''''''''''''''C''''''''''''''''''''''''''''''''''''''D
1
2
3
4
5'''''''''Equipements'''''''''''''Domaines'''''''''''''''Impact '''''''''''''''''''Action à mener
6''''''''Compacteuse''''''''''''''''''''Air''''''''''''''''''''Poussière''''''''''Faire analyse par labo
9'''''''''''''''Four''''''''''''''''''''''''''''''''Air'''''''''''''''''''''''Fumée''''''''''''''Faire analyse par labo

Donc la condition est : si il n'y a pas d'impact (case vide en colonne C), la ligne entière doit être masquer. Puis, il me faudrait un deuxième bouton pour faire réapparaître les lignes masquées. Je voudrais que les 4 premières lignes restent car il y a le logo de ma boîte + date de mise à jour du doc etc...

Merci par avance

Vince

4 réponses

Messages postés
12
Date d'inscription
lundi 23 juillet 2007
Statut
Membre
Dernière intervention
30 juillet 2007
16
Allez je vais essaye de te donner une solution
------
POUR CACHER
----------

Sub hide()
Range("B1:B7").Select 'B1:B7 correspond a ta plage de cellule que tu souhaite verifier
For Each o In Selection
If o.Value = "" Then
o.EntireRow.Hidden = True
End If
Next

End Sub
-----------------------------------------------------

POUR REVOIR TES CELLULES
-----------
Sub unhide()

Range("B1:B7").Select
Selection.EntireRow.Hidden = False
End Sub

------------------------------------------------


Et apres tu vas ds excel...Outils/Macro/Lire une macro..
Magie magie tu decouvres deux macros (Hide et Unhide)

Apres tu peux ajouter des boutons sur ta feuille excel et qd tu click dessus cela lance les macros.

AFFICHAGE / BARRE D'OUTILS / FORMULAIRE

Tu selectionnes le bouton
Tu le met sur ta feuille et tu selectionnes la bonne macro a attribuer..


TCHAO....AU plaisir
18
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 61921 internautes nous ont dit merci ce mois-ci

Messages postés
7
Date d'inscription
mercredi 22 juillet 2009
Statut
Membre
Dernière intervention
22 juillet 2009

Bonjour le forum, bonjour le fil,
Ton code tortues85 marche à merveille, le seul souci c'est que les lignes ne sont pas entiérement vide, j'ai des formules dedans, donc excel ne les considére pas comme vide.
comment puis je contourner ce probléme ???!!!

Merci
Azel
Bonjour,

Merci pour ce code. Il m'a été utile. Mais je rencontre un problème: quand je mets 3 fois de suite ce code à la suite avec des plages différentes mais toujours dans la même feuille, ca m'indique: erreur de compilation, nom ambigue detecté: hide.

pourriez vous m'aidez

Merci d'avance
merci génial et idées simples !
Torbus,

Pourrais tu m'aider ?

Je souhaiterai utiliser ton code, mais moi je voudrai qu'il cache que s'il y a plus d'une ligne vide.

Sub hide()
'A1:A50 correspond a ta plage de cellule que tu souhaite verifier

dim i as integer
i= o.value + 1

Range("A1:A50").Select

For Each o In Selection
If o.Value = "" and i="" Then
o.EntireRow.Hidden = True
End If
Next

End Sub

Mon code ne va pas, je suis rouillée et je pense mal placé mais je crois l'idée est bonne ?
Peux tu m'y aider ?

loulou
Messages postés
1227
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
429
Bonjour,
La macro suivante masque une ligne si la cellule de la selection est vide et si la cellule située en dessous est vide
Sub hide() 
'A1:A50 correspond a ta plage de cellule que tu souhaite verifier 
For Each o In Selection
    If o.Value = "" And o.Offset(1, 0).Value = "" Then
        o.EntireRow.Hidden = True
        ' pour masque la 2nde ligne vide : o.Offset(1, 0).EntireRow.Hidden = True
    End If
Next o
End Sub 
Messages postés
7
Date d'inscription
mercredi 22 juillet 2009
Statut
Membre
Dernière intervention
22 juillet 2009
>
Messages postés
1227
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013

Bonjour le forum, Bonjour tempols

La mascro marche super bien, mais je vous pose le probléme que j'ai soulevé un peu plus haut dans la discussion.
Le code me convient parfaitement, mais le probléme c'est que j'ai des formules dans les cellules meme si elle est vide, est le code ne reconnait donc pas la cellule comme vide.

Comment puis je contourner ce probléme en laissant la meme structure de votre code.

Je vous remercie d'avance

Azel
Messages postés
1227
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
429 >
Messages postés
7
Date d'inscription
mercredi 22 juillet 2009
Statut
Membre
Dernière intervention
22 juillet 2009

Re,
Ce code ne teste pas que la cellule est vide mais bien la valeur de la cellule; une formule peut renvoyer la valeur "" ce qui ne doit pas etre ton cas. Peux-tu stp mettre ta formule sur le forum ou meme un classeur exemple sur cijoint.fr ?
Messages postés
7
Date d'inscription
mercredi 22 juillet 2009
Statut
Membre
Dernière intervention
22 juillet 2009
>
Messages postés
1227
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013

Re
J'ai pas exactement utilisé ton code, j'ai trouver un autre code qui marche aussi sur les cellules vide et me permet en meme temps d'air sur les dimensions des cellules.
Mais le probléme persiste encore vu que les cellules sont liées a un autre classeur.
L'objectif c'est que l'utisateur tape la reference dans une autre classeur, la ref se colle dans cette feuille avec la denomibation et tous, il clique sur le bouton, les cellules s'adaptent au texte de la denomination et les lignes vides se masquent.
j'espere que j'etais clair dans mes explication
MErci

je te transmet le fichier tu comprenderas mieux:
http://www.cijoint.fr/cjlink.php?file=cj200907/cijN5vgmGT.xls

salut, voici mon problème.
J'aimerai si c possible ke au momen ke je clic sur chef d'agrés au autres bein dans la colonne M par exemple sa m'affiche les noms que je peut selectionner. ses noms doivent etre en rapport avec la colonne K ou sinon masquer les noms qui sont dans la colonne K.

voici mon travail: http://dl.free.fr/getfile.pl?file=/n7RnVCgH

utiliser feuil1 et feuil2

Merci de vos reponses, c très urgent
Salut,

Merci c'est exactement ce qu'il me fallait...

Merci beaucoup

a++