Bonjour à tous
Après un long moment d’absence, j’ai besoin de vos services.
J’ai un fichier Excel de 3 colonnes et de 2848 lignes.
J’aimerai dans une sorte de boite de dialogue style userform, inscrire un élément d’une des cellules de ce fichier que dans cette boite de dialogue apparaisse lal igne correspondante à ce renseignement.
Je suis sous excel 2010
Je joints mon fichier Excel.
Merci d’avance pour votre aide qui est toujours aussi précieuse.
Bonjour et merci de t’intéresser à mon problème.
Peu importe la colonne. J’aimerai que si j’inscris un élément (peu importe lequel) qui se trouve dans l’une des colonnes, cela me m’affiche la ligne entière.
Si je tape style 1033 j’aimerai que s’affiche la ligne complète. Ou si je tape essence que je trouve toutes les cellules avec le mot essence mais également avec le Numéro ONU et le numéro CAS
J’espère etre assez clair. Si ce n’est pas le cas je reste à votre service
Option Explicit
Option Compare Text
Private Sub LstNom_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Range("d2") = Me.LstNom
End Sub
Private Sub TxtNom_Change()
Dim NbLigne%, ligne%, i%
Dim liste As Variant
'Mettre une couleur dans la liste des noms
Range("liste").Interior.ColorIndex = 0
'Vidage de la listbox
LstNom.Clear
Range("D2").Clear
'Calcul du Nb ligne dans la liste
NbLigne = WorksheetFunction.CountA(Range("A:A")) - 1
' on teste que la textbox ne soit pas vide
If TxtNom <> "" Then
'on parcours la liste à partir de la 3ème ligne
i = 0
For ligne = 3 To NbLigne
'on teste le contenu de la cellule en prenant en compte toutes les valeurs avec "*"
'et aussi bien en maj qu'en min avec "Option Compare Text"
If Cells(ligne, 1) Like "*" & TxtNom & "*" Or Cells(ligne, 2) Like "*" & TxtNom & "*" Or Cells(ligne, 3) Like "*" & TxtNom & "*" Then
' on complète la valeur trouvée dans la listebox
Range(Cells(ligne, 1), Cells(ligne, 3)).Interior.ColorIndex = 26
Feuil1.LstNom.AddItem "LIGNE: " & ligne & " - N° ONU: " & Cells(ligne, 1) & " - Désignation: " & Cells(ligne, 2) & " - N° CAS " & Cells(ligne, 3)
i = i + 1
End If
Next ligne
End If
End Sub
Bonjour @Mimimathy
Merci pour ton aide et c’est ce que je souhaitais. C’est vraiment super sympa.
Si je peux abuser un peu, j’aimerai savoir comment je peux faire si je rajoute une ligne à la fin de mon fichier, car actuellement si je rajoute une ligne (pour une mise à jour de cette liste), la boite de dialogue ne trouve pas cette ligne.
Est-ce-possible de faire apparaître la boite de dialogue sur une autre feuille d’excel (style feuille 2) et que je puisse masquée la feuille 1 pour éviter que certains la modifie par erreur.
SI pour des autres mises à jours si je souhaite rajouter une ou 2 colonnes pour ajouter des renseignements, est ce que cela sera possible? car je suis un VRAI nul en VBA
C’est un fichier que plusieurs personnes utiliseront.
Est-ce compliqué si je décide de mettre en couleur la boite de dialogue.
Je ne veux pas abuser de votre temps donc si vous n’avez pas le temps, pas grave, votre travail est déjà assez suffisant, et merci beaucoup
C’est génial de trouver des passionnés comme vous, qui rendent service…
Tito
Si toutefois je veux rajouter une colonne style “code danger” ou ??? cela me sera t-il possible sans modifié le code VBA comme le rajout d’une ligne dans la dernière version?
Est-ce possible de mettre la boite de dialogue dans une autre feuille du même classeur afin que la feuille 1 soit masquée pour éviter les modifications par d’autres utilisateurs (collègues)
Et si je veux faire jolie, puis-je modifier facilement la couleur de la boite de dialogue.
Encore merci, que j’aimerai savoir faire cela tout seul…
Pour les couleurs, if faut se mettre depuis le menu Développeur en “Mode Création” allez sur propriétés et sélectionner le TextBox et changer sa couleur de fond, idem pour la ListBox
L’ajout des colonnes fonctionne a merveille.
Pour le changement des couleurs je testerai dans la journée,
Je ne sais pas comment vous remercier, mais c’est super sympa de votre part.
@Mimimathy
Excuse moi de te déranger et d’abuser de ton temps.
Je viens de tester le fichier, ça fonctionne pas mal, je dirais même très bien.
J’ai un soucis au niveau de l’écartement des colonnes dans la boite de dialogue.
Voir copie d’écran.
Et à l’utilisation j’aurai une question : est-il possible de faire apparaître la recherche sous l’intitulé
style :
ONU CODE DANGER
1789 80 (centré sous l’intitulé)
Re
Pour le centrage, tu parles de la feuille avec les données?
et pour les largeur de colonnes, tout dépend de ta taille écran, si tu diminues tu n’auras pas toutes les infos sur la ligne, c’est un choix
Après pour le réglage des colonnes ALT et touche F11 pour ouvrir le Développeur et sur cette ligne
.ColumnWidths = "70;80;500;150;80;80;80;80" ' Largeur des colonnes à affciher si 0 = invisible"
tu règles les largeurs (en Pixels)
sur cette ligne, le 1ère colonne fait 70, la 2ème 80, la 3ème 500 etc
Merci pour ces renseignements. Je vais donc modifier la largeur. Pas de problème.
Pour le centrage non je parlais dans la boite de dialogue. Mais j’ai du mal m’exprimer.
quand tu as le résultat style pour le N° ONU, savoir si l’on pouvait faire apparaître le nombre en dessous et centré.
Mais la je pense que je fais dans le compliqué. Donc si cela ne demande pas beaucoup de travail, si tu m’explique je peux essayer de faire, car je ne vais pas tout te demander de faire.
Et comment fait-on pour que l’affichage du résultat soit d’une couleur différente que la désignation :
N°: ONU en noir et le résultat style 80 en rouge ou autre couleur différente.
Et peut-on mettre une image dans la boite de dialogue ou une inscription style Sapeur Pompier??
Je reprend le titre Boite de dialogue ou ? sans VBA si possible
Déjà sans VBA c’est Niet, donc je fais au plus simple
Ensuite il faut prévoir pour rajouter des colonnes, je fais
Maintenant, il faut centré, mettre des couleurs et un logo ???
Alors, je crois que tu pousses le bouchon, et si j’ai le temps et l’envie je regarderai, car là, c’est tout reprendre.
Quand on pose une question ou une demande, il ne faut pas non plus exagérer pour arriver à un programme fini, après, soit on se débrouille, ou on demande à un Pro de le monter (mais avec des “Pépétes”)
Un forum, c’est juste un coup de pouce
Bien sur je peux comprendre et il n’y a aucun problème.
Je te remercie déjà grandement pour ce que tu as fait.
Ne te prend pas la tête avec ça, c’est déjà largement + que je n’avais pensé et rêvé, donc c’est bon.
Il n’y a aucun problème.
1000 MERCI
Comme tu dis il faut que cela reste un coup de pouce.
Et merci d’avoir pris de ton temps pour me rendre service.