Rechercher une ligne avec un texbox depuis un USF

Fermé
ksta89 Messages postés 77 Date d'inscription dimanche 15 février 2015 Statut Membre Dernière intervention 9 juin 2015 - 23 mars 2015 à 09:41
ksta89 Messages postés 77 Date d'inscription dimanche 15 février 2015 Statut Membre Dernière intervention 9 juin 2015 - 25 mars 2015 à 15:15
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
A voir également:

3 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
23 mars 2015 à 10:28
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...

0
ksta89 Messages postés 77 Date d'inscription dimanche 15 février 2015 Statut Membre Dernière intervention 9 juin 2015
23 mars 2015 à 10:40
Bonjour,

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,
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160 > ksta89 Messages postés 77 Date d'inscription dimanche 15 février 2015 Statut Membre Dernière intervention 9 juin 2015
23 mars 2015 à 10:47
Bonjour Ksta, bonjour le forum,

Je regarde ça...
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
23 mars 2015 à 11:25
Bonjour Ksta, bonjour le forum,

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...
0
ksta89 Messages postés 77 Date d'inscription dimanche 15 février 2015 Statut Membre Dernière intervention 9 juin 2015
23 mars 2015 à 11:53
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,
0
ksta89 Messages postés 77 Date d'inscription dimanche 15 février 2015 Statut Membre Dernière intervention 9 juin 2015
23 mars 2015 à 12:01
Juste une petite précision si le materiel en question n'est pas répertorié en dans la liste est-il possible de rajouter un message du type le matériel n'existe pas. voulez le rajouter oui ou non. et si oui m'amener vers l'userform LISTE?
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160 > ksta89 Messages postés 77 Date d'inscription dimanche 15 février 2015 Statut Membre Dernière intervention 9 juin 2015
23 mars 2015 à 14:09
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é :

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
0
ksta89 > ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022
23 mars 2015 à 15:35
Bonjour,

J'ai bien fait attention au nom de l'onglet dans mon fichier et c'est bien le même.

Je vais essayer la version modifié. Je te tiens au courant.

Cdt,
0
ksta89 Messages postés 77 Date d'inscription dimanche 15 février 2015 Statut Membre Dernière intervention 9 juin 2015
23 mars 2015 à 16:45
Re,

Très bien fonctionne comme je le souhaite. Cependant, ne prend pas en compte les nombre...

Une idée stp?

Merci d'avance.

cdt,
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
25 mars 2015 à 15:05
Bonjour Ksta, bonjourle forum,

De regarder, oui... de m'y mettre, ni le temps, ni l'envie à vrai dire... Désolé mais ça demande un trop grand investissement...
0
ksta89 Messages postés 77 Date d'inscription dimanche 15 février 2015 Statut Membre Dernière intervention 9 juin 2015
25 mars 2015 à 15:15
Re,

Ce n'est pas grave merci quand même de ton aide et de ta réponse.

Bon courage.

A plus
0