Macro sous excel

Bonjour,

Je souhaite créer une macro qui me permette d'afficher UNIQUEMENT les lignes contenant un teste (ce texte est tiré d'element ce trouvant dans une autre feuille et cela grace à une formule), ce n'est pas un texte type mais une liste de dysfonctionnement tous differents les uns des autres.

Si quelqu'un peut m'aider !?

Merci

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Salut

    Met un lien vers le fichier, et detailles plus exactement ce que tu veux...si je peux, je te fais ca demain. Au pire, dimanche.

    Cdt
    1. Bonjour,

      Merci pour ta réponse cela m'aiderai énormément mais encore une petite question.

      Comment je fais pour mettre un lien vers le fichier sachant que ce dernier est sur mon ordi ???

      Merci
    2. Contributeur
      bonjour
      pour joindre une pièce
      mettre le classeur sans données confidentielles en pièce jointe sur
      https://www.cjoint.com/
      puis copier l'adresse du lien et la coller dans le message de réponse
    3. Merci Michel pour l'infos

      Alors voila mon doc:

      http://cjoint.com/?BHesehIIvU2

      A chaque fois qu'il y a un dysfonctionnement cela se met dans synthèse.

      Mon souci c'est que je dois appuyé sur le bouton créer le tableau (c'est une macro toute simple que j'ai attribué) pour que le dysfonctionnement apparaisse.

      Or ce que je souhaite c'est que les dysfonctionnements apparaissent sans appuyé sur ce bouton.

      Ou alors si ce n'est pas possible je souhaiterai que quand j'appuie sur ce bouton il n'y ai que les dysfonctionnements qui apparaissent sans les lignes vides.

      Si quelqu'un peux m'aider !? Merci
    4. Bonjour,

      C'est tout à fais ce que je voulais faire mais sincèrement je n'ai pas su l'appliquer.

      Si tu pouvais m'aider je t'en remercie.
  2. Contributeur
    OK,

    Ce que je verrai bien est de déclencher la macro à chaque activation de la feuille synthèse, ce qui permettrait de prendre en compte d'éventuelles modifs
    on parcours les 12 objectifs en mémorisant les "non" et on retranscrit l'ensemble des "non" dans ton tableau synthèse

    Tu dis, si tu es d'accord j'attaquerais à la fraiche demain
    1. Contributeur
      bonjour

      afin que les colonnes code réglement, oui/non soient toujours les m^mes pour modéliser la macro une colonne en B a été insérée pour les objectifs 1 à 11

      la macro est déclenchée par ton bouton existant
      https://www.cjoint.com/?3HfkISmRwkM

      la macro:
      Option Base 1
      
      Sub lister_dysfonctionnements()
      Dim Cptr As Byte, Obj As String, Nbre_non As Byte
      Dim Lig As Byte, Cptr_non As Byte, T_non()
      Dim Lig_dep As Byte, Lig_non As Byte, Col As Byte
      Dim Lien_hyper As Hyperlink
      
      'préparation de de la feuille synthèse
      Application.ScreenUpdating = False
      With Sheets("Synthèse")
           .Range("B8:C500").Clear
           .Range("C8:C500").WrapText = True
           Lig_dep = Sheets("Synthèse").Range("B500").End(xlUp).Row + 1
           Lig_non = Lig_dep
      End With
      
      For Cptr = 1 To 12
           Obj = "Objectif " & Cptr
           With Sheets(Obj)
                     'nombre de "non" dans la feuille
                     Nbre_non = Application.CountIf(.Columns("G"), "non")
                     If Nbre_non > 0 Then
                          Lig = 4
                          'mémorisation des non-conformités
                          ReDim T_non(Nbre_non, 3)
                          For Cptr_non = 1 To Nbre_non
                               'ligne d'une non-conformité
                               Lig = .Columns("G").Find("non", .Cells(Lig, "G"), xlValues, xlWhole).Row
                               T_non(Cptr_non, 1) = .Cells(Lig, "D")
                               T_non(Cptr_non, 2) = .Cells(Lig, "E")
                               T_non(Cptr_non, 3) = "'" & Obj & "'!D" & Lig
                          Next
                           With Sheets("Synthèse")
                               'restitution du code et de la réglementation
                               .Cells(Lig_non, "B").Resize(Nbre_non, 2) = T_non
                               'création des liens hypetextes
                               For Cptr_non = 1 To Nbre_non
                                    Set Lien_hyper = ActiveSheet.Hyperlinks.Add(.Cells(Lig_non, "B"), "")
                                    With Lien_hyper
                                         .SubAddress = T_non(Cptr_non, 3)
                                         .Follow NewWindow:=True
                                    End With
                                    Lig_non = Lig_non + 1
                               Next
                           End With
                     End If
           End With
      Next
      'pésentation finale
      Sheets("synthèse").Activate
      Sheets("Synthèse").Range(Cells(Lig_dep, "B"), Cells(Lig_non, "C")).Borders.Weight = xlThin
      MsgBox ("synthèse des non-conformités effectuée")
      End Sub
      1. Bonjour,

        C'est impeccable, je te remercie beaucoup pour ton aide.

        Passe un bon Dimanche
      2. Bonjour,

        j'aurais encore un petit souci la macro marche par contre mes l'enoncé de mes dysfonctionnements ne s'ffiche plus dans synthése.
      3. Contributeur
        Bonjour,
        Sans doute parce que, comme je te l'ai dit, j'ai du inséré une colonne avant les codes pour les objectifs 1 à 11
        En effet en 12 était décalé (en info, essaies toujours de modéliser tes interfaces). il faut donc que tu fasses la m^me chose sur ton original

        as tu regardé le classeur que j'avais joint?

        j'y jette un oeil...
      4. Contributeur
        Je viens d'essayer: pas de problème chez moi

        par contre, pour l'esthétique ajoute cette ligne en gras
         Sheets("Synthèse") 
             .Range("B8:C500").Clear 
             .Range("C8:C500").WrapText = True 
             .Range("C8:C500").HorizontalAlignment = xlCenter 
             Lig_dep = Sheets("Synthèse").Range("B500").End(xlUp).Row + 1 
             Lig_non = Lig_dep 
        End With


        et également
        Sheets("Synthèse").Range(Cells(Lig_dep, "B"), Cells(Lig_non, "C")).Borders.Weight = xlThin 
        Application.ScreenUpdating = True 
        MsgBox ("synthèse des non-conformités effectuée")


        si tu le souhaites, tu peux supprimer le msgbox de la dernière ligne ca n'apporte rien à mon avis mais..
      5. OK,

        Pourrait tu m'envoyer S'il te plait le document sur lequel t'as travaillé.

        Je te joint mon document final avec ta macro.

        http://cjoint.com/?BHgl7EFWUwc

        Je n'ai pas encore integré la derniére macro que tu m'as envoyé.

        Merci
    2. Bonjour wissouma31,
      Excusez de l'intrusion, vous devriez contrôler le format de vos tableaux qui ne sont pas identiques (exemple la colonne des OUI/NON devrait-être en [G] ...) et ceci comme l'avait précisé michel_m [il faut que toutes les colonnes : code soit en colonne D, règlement en E et oui/non en G pour être comme sur objectif12] ... ce qui n'est pas le cas dans votre classeur.
      1. Contributeur
        Bonjour Le Pingou

        Et MERCI car moi je désespère de répéter la même chose et de tester et re-tester ce que j'ai pondu...
        Abandon du suivi