Rechercher : dans
Par :

[vba excel] macro pour masquer ligne

Dernière réponse le 22 jui 2009 à 15:38:37 Vince7338, le 26 jui 2007 à 23:57:24 
 Signaler ce message aux modérateurs

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'''''''''''''''Imp­act '''''''''''''''''''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'''''''''''''''Imp­act '''''''''''''''''''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

Configuration: Windows XP
Firefox 2.0.0.5

1

TORTUE85, le 27 jui 2007 à 16:37:52
  • +2

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

Répondre à TORTUE85

5

3ziwez, le 22 jui 2009 à 11:44:10

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 à 3ziwez

2

vince7338, le 28 jui 2007 à 18:04:58

Salut,

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

Merci beaucoup

a++

Répondre à vince7338

3

loulou1684, le 4 fév 2008 à 10:33:24

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

Répondre à loulou1684

6

tompols, le 22 jui 2009 à 12:04:16

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 à tompols

7

3ziwez, le 22 jui 2009 à 14:21:28

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 à 3ziwez

8

tompols, le 22 jui 2009 à 14:59:15

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 à tompols

9

 3ziwez, le 22 jui 2009 à 15:38:37

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.xl­s

Répondre à 3ziwez

4

represente SP, le 18 jun 2009 à 10:34:26

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

Répondre à represente SP
Collection CommentÇaMarche.net