Macro sous excel

wissouma 31 Messages postés 1 Statut Membre -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. mikanadien2 Messages postés 113 Statut Membre 10
     
    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
    0
    1. wissouma31
       
      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
      0
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
      0
    3. wissouma31
       
      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
      0
    4. wissouma31
       
      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.
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    0
    1. wissouma31
       
      Bonjour,

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

      Passe un bon Dimanche
      0
    2. wissouma31
       
      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.
      0
    3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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...
      0
    4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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..
      0
    5. wissouma31
       
      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
      0
  4. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    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.
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
      0