Rechercher une ligne avec un texbox depuis un USF
ksta89
Messages postés
82
Statut
Membre
-
ksta89 Messages postés 82 Statut Membre -
ksta89 Messages postés 82 Statut Membre -
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...