Re : moteur de recherche dans cellule
Bonsoir Cindy
Je t'explique le Code de Si...
Option Explicit
= OBLIGATION DE DECLARER LES VARIABLES
Option Compare Text
OPTION POUR COMPARER LES MINUSCULES DE MAJUSCULES (pour la recherche TextBox)
Private Sub TextBox1_Change()
Dim L As Long, dl As Long
Dim C As Range, R As Range, T
' T = Timer
'C'est pour le chrono à enlever maintenant
Application.ScreenUpdating = 0
On améliore le rendement en n'affichant pas le update sur l'écran
Range("A12:I" & Cells(Rows.Count, 1).End(xlUp).Row + 1).Clear
il vide les précédent résultats de a12 à la dernière ligne remplie e la feuille recherche
If Len(TextBox1) < 3 Then Exit Sub
si on a moins de trois caractères dans la TextBox on Sort
L = 12
'première ligne d'écriture
With Worksheets("bd")
Avec la Feuille DB faire attention au POINTS qui suivent manitenant (.Cells)
dl = .Cells(Rows.Count, 1).End(xlUp).Row
DL = Dernière ligne de la la DB (.Cells)
PS si il n'a y a pas de POINT, Cells se réfère à la feuille active (ici Recherche, puisqu'on est dans le private Module de cette Feuille..)
For Each C In .Range(.Cells(1, 2), .Cells(dl, 9))
Pour chacune des Cellules de la 1ere Colonne(Ligne 2) à la 9ime Colonne(Ligne DL) de la Feuille DB (.Cells)
If C Like TextBox1 & "*" Then
SI C (la celulle) commence par la même chjose que la TextBox
Cells(L, 1).Resize(1, 9).Value = .Cells(C.Row, 1).Resize(1, 9).Value
Il redimentionne de 9 colonnes la Cellule Receptive Ligne L (de la feuille Recherche) pour y envoyer toutes les valeurs sur 9 colonnes de la Cellule Emetrice sur la Row (de la feuille DB)
NB Faire bien attention entre Cells et .Cells
Cells = feuille active et .Cells = Feuille du WITH plus haut (donc DB)
If L Mod 2 = 0 Then Cells(L, 1).Resize(1, 9).Interior.Color = 15261367
avec le SI, Si... envoie les couleurs une ligne sur deux... Non j'ai pas dit Sissi impératrice
L = L + 1
Il incremente son L (toujours valable pour la Feuille Recherche, pour la prochaine occurrence)
End If
Ici c'est la Fin de Si ... LOL
Next
Cellule suivante (C) de la feuille DB donc ??
End With
Fin de avec la Feuille DB
MsgBox Timer - T
End Sub
Voilà avec ceci tu dois pouvoir avancer un peu, pour contiinuer ton projet.
Cordialement
@+Thierry