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

A voir également:

4 réponses

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
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
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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
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
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
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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
wissouma31
 
Bonjour,

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

Passe un bon Dimanche
0
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
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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
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
Le Pingou Messages postés 12720 Date d'inscription   Statut Contributeur Dernière intervention   1 468
 
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
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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