Macro afficher ligne si la précédente est remplie

axoulé -  
 axoulé -
Bonjour,

Je suis sur Excel 2007, j'ai un tableau a remplir en (D115:J126) avec différentes valeurs qui seront toutes réutilisés dans des formules. J'aimerai pouvoir cacher par défaut les lignes 116 à 126 tant que la ligne 115 (ou la cellule J115) n'est pas remplie en entier. Une fois que cette ligne serait remplie, afficher la ligne 116 et toujours ne pas afficher les lignes suivantes. faire la méme chose ensuite sur tout le tableau.Je suppose que la solution passe par une macro VBA mais je m'y connais que trop peu.
J’espère être assez clair dans mon problème

Merci

2 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Pour ligne 115 a 126: cellules Dx:Jx remplies pour affichage ligne suivante?
    Les lignes 116 a 126 sont masquees comment au depart ?

    en attendant, code (fait au plus simple) a mettre dans VBA de la feuille
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Count > 1 Then Exit Sub   'plus d'une cellule selectionnee
        If Not Application.Intersect(Target, Range("D115:J126")) Is Nothing Then 'saisie dans plage
            lig = Target.Row    'ligne
            If WorksheetFunction.CountBlank(Range("D" & lig & ":J" & lig)) = 0 Then 'toutes les cellules plage non vides
                Rows(lig + 1).Hidden = False    'affich ligne suivante
            End If
        End If
    End Sub
    
    0
  2. axoulé
     
    Bonjour f849009,

    L'ensemble des cellules n'as pas forcement à etre rempli, on peu prendre en compte uniquement la colonne J dans mon cas car les cellules sont remplies les unes après les autres et normalement il n'y as pas de trous. Donc si c'est plus facile à coder si une seule colonne J, ça me conviendrait aussi.
    Les cellules sont pour l'instant encore apparentes, je pense les masquer par le menu du clic droit sur le numéro de ligne à gauche.
    J'ai rentré ton code dans VBA, rien n'as bougé..
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,
      le postula de depart est que toutes les cellules sont vides et lignes 116 a 126 maquees
      le code ne marche que si vous modifiez une cellule
      0
    2. axoulé
       
      Je viens de refaire le test en effaçant mon tableau, en masquant les lignes 116 à 126. mais quand je remplis à nouveau la première ligne 115, la ligne 116 n'apparait pas comme je souhaiterai. Ma colonne D se remplit via une liste dans un validation de données, cela bloque t'il la macro ?
      En tout cas merci de ton aide
      0
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > axoulé
         
        Re,

        Avec votre fichier ce serait plus simple, avec une petite explication
        Pour transmettre un fichier,
        Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
        il faut passer par un site de pièce jointe tel que cjoint.com

        Allez sur ce site : https://www.cjoint.com/
        Clic sur parcourir,
        Cherche ton fichier,
        clic sur ouvrir,
        Clic sur "Créer le lien cjoint",
        Copier le lien,
        Revenir ici le coller dans une réponse...
        0
    3. axoulé
       
      Bonjour,
      je vous joint un lien cjoint qui pourra vous expliquer ce que je souhaite réaliser.
      Désolé pour la lenteur de ma réponse, mais boulot oblige :(

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

      Merci aux personnes qui s'attardent sur mon cas.
      0