Masquer des lignes dans une macro

christ.lenoir Messages postés 39 Statut Membre -  
christ.lenoir Messages postés 39 Statut Membre -
Bonjour,
Après plusieurs lectures sur le forum, je n'arrive toujours pas à faire la macro dont j'ai besoin.
Je veux faire : si dans chaque colonne j'ai un 0, je masque la ligne au complet.


et donc dans ce cas-ci, je ne verrais que les deux premières lignes.

pour l'instant j'ai :
Sub Macro1()
'
' Masquer les lignes
'
If Range("C10:H30") = 0 Then
Rows("10:30").Select
Selection.EntireRow.Hidden = True
End If
'

'Affiche les lignes
If Range("C10:H30") <> "0" Then
Rows("19:30").Select
Selection.EntireRow.Hidden = False
End If

End Sub

ça ne marche pas quand j'essaye de l'éxécuter, ça me met un message d'erreur.
    • je suis dans Excel 2010


Merci beaucoup d'avance

3 réponses

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

    Je veux faire : si dans chaque colonne j'ai un 0

    Tout a fait Thierry, mais il n'y a jamais 0 d'apres l'image de votre feuille!!!!!!!!!!
    1
    1. christ.lenoir Messages postés 39 Statut Membre
       
      C'est parce que le format utilisé est comptabilité et donc lorsque 0$, cela affiche -
      Ce sont en faites tous des 0 sur l'image
      merci
      0
  2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Une possibilité avec ce code :
    Public Sub Masquer_lignes()
    Dim cel As Range
    Const col = "C" ' colonne de test
    Const deb = 10  ' ligne début tableau
        For Each cel In Cells(deb, 1).Resize(Cells(Rows.Count, col).End(xlUp).Row - deb).Cells
            If Application.Sum(Rows(cel.Row)) = 0 Then
                Rows(cel.Row).Hidden = True
            Else
                Rows(cel.Row).Hidden = False
            End If
        Next cel
    End Sub
    
    0
    1. christ.lenoir Messages postés 39 Statut Membre
       
      Bonjour, merci beaucoup pour l'aide, mais cela n'a pas fonctionné...
      Ça me fait error 1004 et du coup je suis obligé de fermer le excel complètement et de recommencer ...
      J'ai changer un peu mon tableau pour que j'aille qu'une seule condition. J'ai fait une fonction Si que s'il y avait un chiffre = A et sinon M.
      Ma nouvelle macro ressemble donc à cela, mais ça me fait encore une fois un message d'error :
      Dim ligne As Integer

      For ligne = 30 To 200
      If Cells(ligne, 9) = "M" Then
      Rows(ligne & ":" & ligne).EntireRow.Hidden = True
      End If
      Next

      End Sub

      Toutefois, quand je garde mon enter sur mon message d'error, ça finit par bien exécuter la macro ....
      Je ne sais pas quoi faire pour enlever ce message d'erreur et ainsi améliorer ma macro.

      Merci encore
      0
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    Pouvez-vous mettre votre fichier a dispo?

    Pour transmettre un fichier,
    Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES

    soit: 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...

    ou:
    'mon partage
    https://mon-partage.fr/
    0
    1. christ.lenoir Messages postés 39 Statut Membre
       
      en voulant vous l'envoyez j'ai copié mes valeurs puisqu'en effet c'était confidentielle, et dans un classeur sans aucune macro ou formule, ma macro fonctionne à la perfection. Je ne comprends pas pourquoi ça ne fonctionne pas dans mon classeur d'origine. Nous utilisons un GEF d'Acomba pour la comptabilité... je ne sais pas si vous connaissez. Cela me semble être la raison de l'échec de ma macro ...
      Mais que faire ? ... malheureusement le fichier qui bog est celui confidentielle alors je ne peux vous l'envoyez.
      merci encore
      0