CommentCaMarche
Recherche
Posez votre question Signaler

[vba excel] macro pour masquer ligne

Vince7338 1Messages postés jeudi 26 juillet 2007Date d'inscription 26 juillet 2007Dernière intervention - Dernière réponse le 23 avril 2010 à 11:58
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
Lire la suite 
Réponse
+12
moins plus
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
3ziwez 7Messages postés mercredi 22 juillet 2009Date d'inscription 22 juillet 2009Dernière intervention - 22 juil. 2009 à 11:44
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
Répondre
m- 23 avril 2010 à 11:58
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
Répondre
Ajouter un commentaire
Réponse
+2
moins plus
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
tompols 1227Messages postés jeudi 29 juillet 2004Date d'inscription ContributeurStatut 25 novembre 2013Dernière intervention - 22 juil. 2009 à 12:04
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 
Répondre
3ziwez 7Messages postés mercredi 22 juillet 2009Date d'inscription 22 juillet 2009Dernière intervention - 22 juil. 2009 à 14:21
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
Répondre
tompols 1227Messages postés jeudi 29 juillet 2004Date d'inscription ContributeurStatut 25 novembre 2013Dernière intervention - 22 juil. 2009 à 14:59
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 ?
Répondre
3ziwez 7Messages postés mercredi 22 juillet 2009Date d'inscription 22 juillet 2009Dernière intervention - 22 juil. 2009 à 15:38
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
Répondre
Ajouter un commentaire
Réponse
+2
moins plus
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/bn7RnVCgH

utiliser feuil1 et feuil2

Merci de vos reponses, c très urgent
Ajouter un commentaire
Réponse
+1
moins plus
Salut,

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

Merci beaucoup

a++
Ajouter un commentaire
Ce document intitulé «  [vba excel] macro pour masquer ligne  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.