Rechercher une ligne avec un texbox depuis un USF
ksta89
Messages postés
77
Date d'inscription
Statut
Membre
Dernière intervention
-
ksta89 Messages postés 77 Date d'inscription Statut Membre Dernière intervention -
ksta89 Messages postés 77 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un USF avec un textbox et un bouton valider.
Quand je rentre un mots dans le textbox et que j'appuie sur le bouton valider, je voudrais que mon classeur (liste du matériel) s'ouvre et me selectionne en rouge la ou les lignes avec le mots ecrit dans le textbox.
Une idée?
merci d'avance.
Mes fichier:
https://www.cjoint.com/c/ECxj1AYcGMK
J'ai un USF avec un textbox et un bouton valider.
Quand je rentre un mots dans le textbox et que j'appuie sur le bouton valider, je voudrais que mon classeur (liste du matériel) s'ouvre et me selectionne en rouge la ou les lignes avec le mots ecrit dans le textbox.
Une idée?
merci d'avance.
Mes fichier:
https://www.cjoint.com/c/ECxj1AYcGMK
A voir également:
- Rechercher une ligne avec un texbox depuis un USF
- Partager photos en ligne - Guide
- Rechercher ou saisir une url - Guide
- Mètre en ligne - Guide
- Rechercher une chanson - Guide
- Rechercher une image - Guide
3 réponses
Bonjour Ksta, bonjour le forum,
Tu envoies 3 fichiers et tu ne précises que le nom d'un seul Liste de matériel... J'ouvre AFFECT MAT au hasard et il contient 7 UserForms !... À nous de nous débrouiller !
Désolé, mais si tu ne fais pas d'efforts à expliquer plus clairement ton problème, je ne vois pas pourquoi nous en ferions, nous, pour t'apporter une solution...
Tu envoies 3 fichiers et tu ne précises que le nom d'un seul Liste de matériel... J'ouvre AFFECT MAT au hasard et il contient 7 UserForms !... À nous de nous débrouiller !
Désolé, mais si tu ne fais pas d'efforts à expliquer plus clairement ton problème, je ne vois pas pourquoi nous en ferions, nous, pour t'apporter une solution...
Bonjour Ksta, bonjour le forum,
Ci-dessous le code commenté à appliquer au bouton RECHERCHER de l'UserForm RECHERCHER_MAT du fichier AFFECT MAT.xlsm :
Ne sachant pas ce que tu voulais faire à la sortie de cette UserForm, je ne t'ai rien proposé. Il serait possible d'enlever la couleur rouge et de fermer le classeur LISTE DU MATERIEL.xlsm...
Ci-dessous le code commenté à appliquer au bouton RECHERCHER de l'UserForm RECHERCHER_MAT du fichier AFFECT MAT.xlsm :
Private Sub CommandButton1_Click() Dim NCR As String 'déclare la variable NCR (Nom du Classeur de Recherche) Dim CR As Workbook 'déclare la variable CR (Classeur de Recherche) Dim OCR As Worksheet 'déclare la variable OCR (Onglet du Classeur de Recherche) Dim TC As Variant 'déclare la variable TC (Tableau de Cellules) Dim NL As Integer 'déclare la variable NL (Nombre de Lignes) Dim NC As Byte 'déclare la variable NC (Nombre de Colonnes) Dim I As Integer 'déclare la variable I (Incrément de ligne) Dim J As Byte 'déclare la variable J (incrément de colonne) NCR = ThisWorkbook.Path & "\LISTE DU MATERIEL.xlsm" 'définit le nom NCR du classeur de recherche On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante) Set CR = Workbooks("LISTE DU MATERIEL.xlsm") 'définit le classeur de recherche CR (génére une erreur si ce classeur n'est pas ouvert) If Err <> 0 Then 'condition : si une erreur a été générée Err = 0 'annule l'erreur Workbooks.Open (NCR) 'ouvre le classeur de recherche Set CR = ActiveWorkbook 'définit la classeur CR End If 'fin de la condition On Error GoTo 0 'annule la gestion des erreurs Set OCR = CR.Sheets("LISTE MAT") 'définit l'onglet OCR du classeur de recherche OCR.Range("A3").CurrentRegion.Interior.ColorIndex = xlNone 'supprime la coleur rouge TC = OCR.Range("A3").CurrentRegion 'définit le tableau de cellule TC NL = UBound(TC, 1) 'définit le nombre de lignes NL du tableau de cellules TC NC = UBound(TC, 2) 'définit le nombre de colonnes NC du tableau de cellules TC For I = 1 To NL 'boucle 1 : sur toutes les lignes de TC For J = 1 To NC 'boucle 2 sur toutes les colonnes de TC If UCase(TC(I, J)) Like "*" & UCase(Me.TextBox1.Value) & "*" Then 'condition : si la valeur en ligne I, colonne J de TC est égale à la valeur de la TextBox1 OCR.Cells(I + 2, 1).Resize(, NC).Interior.ColorIndex = 3 'colore la cellule ligne I+2 colonne J de l'onglet OCR Exit For 'sort de la boucle 2 End If 'fin de la condition Next J 'prochaine colonne de la boucle 2 Next I 'prochaine ligne de la boucle 1 End Sub
Ne sachant pas ce que tu voulais faire à la sortie de cette UserForm, je ne t'ai rien proposé. Il serait possible d'enlever la couleur rouge et de fermer le classeur LISTE DU MATERIEL.xlsm...
Re,
J'ai mis le code dans le bouton rechercher et cela m'a afficher un message d'erreur 9 l'indice n'appartient pas à la selection avec la ligne suivante surligner en jaune
Set OCR = CR.Sheets("LISTE MAT") 'définit l'onglet OCR du classeur de recherche
Juste pour précision le fichier liste du matériel se trouve :
C:\AFFECTATION MATERIEL\LISTE DU MATERIEL.xlsm sur mon PC.
Sinon dès que je fais rechercher je voudrais que le fichier LISTE DU MATERIEL s'ouvre avec la ligne surligner en rouge. Dès que je le ferme le fichier reviens en état ionitial.
Cdt,
J'ai mis le code dans le bouton rechercher et cela m'a afficher un message d'erreur 9 l'indice n'appartient pas à la selection avec la ligne suivante surligner en jaune
Set OCR = CR.Sheets("LISTE MAT") 'définit l'onglet OCR du classeur de recherche
Juste pour précision le fichier liste du matériel se trouve :
C:\AFFECTATION MATERIEL\LISTE DU MATERIEL.xlsm sur mon PC.
Sinon dès que je fais rechercher je voudrais que le fichier LISTE DU MATERIEL s'ouvre avec la ligne surligner en rouge. Dès que je le ferme le fichier reviens en état ionitial.
Cdt,
Bonjour Ksta, bonjour le forum,
Dans le fichier que tu as fourni LISTE MATERIEL.xlsm, l'onglet s'appelle LISTE MAT. Vérifie que c'est bien le même non dans ton fichier a toi. Deux solutions, modifier le code en adaptant le nom de l'onglet ou modifier le nom de l'onglet dans ton fichier...
Sinon, le code modifié :
Dans le fichier que tu as fourni LISTE MATERIEL.xlsm, l'onglet s'appelle LISTE MAT. Vérifie que c'est bien le même non dans ton fichier a toi. Deux solutions, modifier le code en adaptant le nom de l'onglet ou modifier le nom de l'onglet dans ton fichier...
Sinon, le code modifié :
Private Sub CommandButton1_Click() Dim NCR As String 'déclare la variable NCR (Nom du Classeur de Recherche) Dim CR As Workbook 'déclare la variable CR (Classeur de Recherche) Dim OCR As Worksheet 'déclare la variable OCR (Onglet du Classeur de Recherche) Dim TC As Variant 'déclare la variable TC (Tableau de Cellules) Dim NL As Integer 'déclare la variable NL (Nombre de Lignes) Dim NC As Byte 'déclare la variable NC (Nombre de Colonnes) Dim I As Integer 'déclare la variable I (Incrément de ligne) Dim J As Byte 'déclare la variable J (incrément de colonne) Dim TEST As Boolean 'déclare la variable TEST 'NCR = "C:\AFFECTATION MATERIEL\LISTE DU MATERIEL.xlsm" 'définit le nom NCR du classeur de recherche NCR = "\\serveur\PUB\poubelle\KSTA\LISTE DU MATERIEL.xlsm" On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante) Set CR = Workbooks("LISTE DU MATERIEL.xlsm") 'définit le classeur de recherche CR (génére une erreur si ce classeur n'est pas ouvert) If Err <> 0 Then 'condition : si une erreur a été générée Err = 0 'annule l'erreur Workbooks.Open (NCR) 'ouvre le classeur de recherche Set CR = ActiveWorkbook 'définit la classeur CR End If 'fin de la condition On Error GoTo 0 'annule la gestion des erreurs Set OCR = CR.Sheets("LISTE MAT") 'définit l'onglet OCR du classeur de recherche OCR.Range("A3").CurrentRegion.Interior.ColorIndex = xlNone 'supprime la coleur rouge TC = OCR.Range("A3").CurrentRegion 'définit le tableau de cellule TC NL = UBound(TC, 1) 'définit le nombre de lignes NL du tableau de cellules TC NC = UBound(TC, 2) 'définit le nombre de colonnes NC du tableau de cellules TC TEST = False For I = 1 To NL 'boucle 1 : sur toutes les lignes de TC For J = 1 To NC 'boucle 2 sur toutes les colonnes de TC If TC(I, J) = Me.TextBox1.Value Then 'condition : si la valeur en ligne I, colonne J de TC est égale à la valeur de la TextBox1 OCR.Cells(I + 2, 1).Resize(, NC).Interior.ColorIndex = 5 'colore la cellule ligne I+2 colonne J de l'onglet OCR TEST = True Exit For 'sort de la boucle 2 End If 'fin de la condition Next J 'prochaine colonne de la boucle 2 Next I 'prochaine ligne de la boucle 1 If TEST = False Then If MsgBox("Le matériel n'existe pas ! Voulez-vous le rajouter", vbYesNo, "ATTENTION") = vbYes Then Unload Me OCR.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0).Select End If End If End Sub
Désolé il est vrai que je n'ai pas été assez précis. J'avais la tête ailleur.
Tu as un .xlsm nommé AFFECT MAT. Ce fichier est une sorte de "télécommande". Il permet de naviguer ou de modifié plusieur fichier.
Dans le fichier AFFECT MAT tu as 7 USF. Le premier DEMARRAGE permet de choisir ce que btu veux faire. Tu as en fait une liste de choix. dans ces choix tu l'onglet materiel qui t'enmene vers un USF CHOIX.
Dans ce USF tu peux soit ajouter du materiel, soit rechercher un matériel ou consulter la liste du matériel.
Moi ce qui m'intéresse c'est de pouvoir rechercher un materiel en écrivant un mot, de valider et que a chaque fois que le mots apparait surligner la ligne en question et de faire une sorte de filtre.
J'avais essayer quelque chose mais cela ne marche pas.
Tu peux m'aider stp et désolé de ma pauvre expliquation de départ.
Cdt,
Je regarde ça...