En fonction de saisies, masquer ligne où c'est vide

TomyCarp Messages postés 7 Statut Membre -  
TomyCarp Messages postés 7 Statut Membre -
Bonjour tout le monde,

Je suis professeur et j'ai réalisé un cahier de côtes sous excel . Jusque là, je n'ai aucun problème (formules, etc.) sauf que j'aimerais en fonction d'un listing élèves qu'il MASQUE les lignes qui ne sont pas remplies tout ça automatiquement sans manipuler avec les filtres.J'ai lié(coller avec lien) le listing (noms,prénoms) à toutes les autres feuilles (feuilles points de périodes) pour éviter de les réécrire(nt).

Et donc j'aimerais une fois réalisé mon listing élèves, je clique sur une forme avec une macro (ça je sais faire) et qu'elle me masque les lignes là où il n'y a pas de noms&prénoms des élèves.

J'espère avoir été clair
Merci beaucoup pour vos réponses prochaines

TomyCarp

5 réponses

  1. g Messages postés 1285 Statut Membre 578
     
    Bonjour,

    Le code ci-dessous pour les rangées de 2 à 50
    Cliquer dans E1 pour masquer les rangées et dans Fi pour les afficher.
    Code à adapter au besoin.

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "$E$1" Then
    For i = 2 To 50
    If Range("A" & i) = "" Then
    Range("A" & i).EntireRow.Hidden = True
    End If
    Next i
    End If
    If Target.Address = "$F$1" Then
    For i = 2 To 50
    If Range("A" & i) = "" Then
    Range("A" & i).EntireRow.AutoFit
    End If
    Next i
    End If
    End Sub

    Cordialement.
    1
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bojour,

    Tu peux également mettre ce code dans un module que tu associe à une forme ou un bouton

    Sub Masque()
    For i = 1 To 20 'Ici tu mets le nombre de lignes, de la 1er à la xx
    If Range("A" & i) = "" Then ' je test si la cellule A est vide
    Rows(i).EntireRow.Hidden = True 'masque la ligne
    End If
    Next i
    End Sub

    ce code dans les propriétés de la feuille pour afficher les lignes masquées sur un double clic

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cells.EntireRow.Hidden = False
    End Sub

    tu peux également masquer toutes les lignes sauf les lignes concernant un élève par exemple
    1
    1. TomyCarp Messages postés 7 Statut Membre
       
      merci beaucoup Mike-31, je test ça tout de suite.
      0
  3. TomyCarp Messages postés 7 Statut Membre
     
    Mike-31, merci beaucoup ça fonctionne super bien pour mes données élèves (listing) mais comme j'ai fait un copier(listing), coller avec liaison dans la feuille points de période quand c'est vide, il marque zéro donc il ne me supprime pas mes lignes comme pourrait-on faire pour au lieu de vide mettre 0 ?

    mille mercis !
    0
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Ce qu'il faut faire, c'est travailler directement sur ton listing, mais pour des raisons de sécurité, que je comprends, tu peux dupliquer ton listing mais pas avec des liaisons, il faut faire un copier coller les valeurs pour les dupliquer, et sur cette feuille tu peux appliquer des filtres ou les codes pour masquer les lignes vides, les afficher, afficher simplement la ou les lignes concernant un élève et pourquoi pas sa photo si tu les as dans ton listing et cela à partir d'une simple liste de validation dans laquelle on aurait par exemple transfert pour dupliquer le listing
    masquer pour masquer les lignes vides, afficher pour afficher les lignes masquées et la liste des élèves pour afficher simplement un profil élève

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. TomyCarp Messages postés 7 Statut Membre
     
    merci, je vais changer tout ça et je reviendrai vers toi
    0