Macro pour masquer les lignes non remplies sur une autre page

AudricG Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

malgré mes longues recherches, je ne parviens pas à régler mon problème.

Afin de créer les services de travail de chaque journée suivante pour mes collègues, j'utilise un tableau comprenant une base de donné synthétisant toutes les informations en première page (Nom, nombre de présent, date du lendemain, pourcentages de présents...). Et un certains nombre d'autre page sous forme de tableau, reprenant automatiquement les données de la première page (service général, composition chaque équipe...).

Je me heurte à un problème que je n'arrive pas a résoudre:

Je souhaiterai que les lignes du récapitulatif général situé en page 2 n'apparaissent que lorsqu'elle sont "remplies" par les formules. C'est à dire que si rien n’apparaît dans la case de l'équipe, toute la ligne soit masquée automatiquement.

J'ai tenté de créer une macro automatisée pour cela, mais je n'y parviens pas.

Sachant que les données de la page deux (formules), sont remplies grâce à la saisie sur menu déroulant en page 1 (base de donnée).

Concrètement le but est de masquer les lignes entières de 4 à 48sur le tableau deux, si la cellule D de chaque ligne n'est pas remplie par les données du tableau 1.

En désespoir de cause je me tourne vers vous.
J'espère avoir été clair, même si j'en doute.

Je vous joint une copie de la macro. Cela sera surement plus facile a comprendre.

http://www.cjoint.com/c/GIkpBdZ0Ida

4 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
j'imagine que tu utilises Excel. c'est bien cela?
si oui, je suggère ceci:
Option Explicit

Sub audricg()
Dim sh As Worksheet
Dim ln As Long
Set sh = Sheets("deux")
For ln = 48 To 4 Step -1
    If sh.Cells(ln, 4).Value = "" Then
        sh.Rows(ln).Hidden = True
    Else
        sh.Rows(ln).Hidden = False
    End If
Next ln
End Sub
0
AudricG Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Pardon, je n'ai pas précisé mais j'utilise une LibreOffice.

Je m'excuse encore car mes connaissances en basic remontent au collège et je bloque sur une partie de ta macro:

Sub Miseenpage()
Dim sh As Worksheet
Dim ln As Long
Set sh = Sheets("Service affiche")
For ln = 48 To 4 Step -1
    If sh.Cells(ln, 4).Value = "" Then
        sh.Rows(ln).Hidden = True
    Else
        sh.Rows(ln).Hidden = False
    End If
Next ln
End Sub


Libreoffice m'indique que "worksheet" n'est pas une syntaxe valide. Je suppose qu'il s'agit de la page ou se trouve mes données? Malheureusement, celle ci nommée "Données" contient un "é" dont la macro ne veut pas entendre parler.

Ou je me m'égare complètement?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
j'ai proposé un code pour Excel, je ne peux pas t'aider en LibreOffice.
(c'est moi qui m'égarais)
0
AudricG Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Autant pour moi!
Merci quand même
0
AudricG Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Désolé d'insister, mais personne n'a une idée?
0
OOoForum Messages postés 3873 Date d'inscription   Statut Membre Dernière intervention   961
 
Au lieu d'insister, commencez par donner suite aux propositions qui vous sont faites : https://forum.openoffice.org/fr/forum/viewtopic.php?f=8&t=55614


.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
ces propositions ont étés faites après le post #6, non?
0