Corentin26270
XLDnaute Nouveau
Bonjours à tous,
Un amis, qui a trouvé la solution à son problème ici, m'a conseillé de faire appel à la communauté Excel-downloads.
je remercie les personnes qui font vivre ce site et qui nous permettre de régler nos pb VBA en équipe.
mon projet,
j'ai créer une TextBox1 qui recherche dans les feuilles du classeur la ou les mot(s) inscrit.
Ensuite elle est sensée me renvoyer les lignes (15 première colonnes suffirait) comportant ces mots vers une "zone identifié" (soit à partir de la cellule O3 de la feuille de calcule "Info IPS")
Mais je n'arrive à rien , même avec l'aide des IA.
Il me faut des vrais cerveaux bien entrainé.
j'aimerai bien que les mots de la TextBox apparaissent en souligné dans les lignes copiées... mais c'est l'étape finale.
mon code actuel :
Pensez vous que je puissent aboutir mon code, ou je suis à coté de la plaque ?
Un amis, qui a trouvé la solution à son problème ici, m'a conseillé de faire appel à la communauté Excel-downloads.
je remercie les personnes qui font vivre ce site et qui nous permettre de régler nos pb VBA en équipe.
mon projet,
j'ai créer une TextBox1 qui recherche dans les feuilles du classeur la ou les mot(s) inscrit.
Ensuite elle est sensée me renvoyer les lignes (15 première colonnes suffirait) comportant ces mots vers une "zone identifié" (soit à partir de la cellule O3 de la feuille de calcule "Info IPS")
Mais je n'arrive à rien , même avec l'aide des IA.
Il me faut des vrais cerveaux bien entrainé.
j'aimerai bien que les mots de la TextBox apparaissent en souligné dans les lignes copiées... mais c'est l'étape finale.
mon code actuel :
VB:
Private Sub TextBox1_Change()
Dim ws As Worksheet
Dim wsInfoIPS As Worksheet
Dim keyword As String
Dim searchRange As Range
Dim copyRange As Range
Dim destRow As Long
Dim cell As Range
Dim firstFound As Boolean
' référence à la feuille "Info IPS"
Set wsInfoIPS = ThisWorkbook.Sheets("Info IPS")
' effacé le contenu précédent dans "Info IPS" à partir de la cellule O3
wsInfoIPS.Range("O3").CurrentRegion.ClearContents
' récupére le mot-clé depuis TextBox
keyword = LCase(Me.TextBox1.text) ' convertir sans casse
' initialisation de l'indicateur
firstFound = True
' boucler à travers toute les feuilles du classeur
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Info IPS" Then ' Ne pas traiter la feuille "Info IPS" elle-même !!!
' définir la plage de recherche dans la feuille actuelle
Set searchRange = ws.UsedRange
' parcourir chaque cellule dans la plage de recherche
For Each cell In searchRange
' vérifier si la cellule contient le mot-clé
If InStr(1, LCase(cell.Value), keyword) > 0 Then
' si le mot-clé est trouvé, copier la ligne entière
If firstFound Then
Set copyRange = cell.EntireRow
firstFound = False
Else
' ajouter la ligne à copyRange en ajustant la plage actuelle
Set copyRange = Union(copyRange, cell.EntireRow)
End If
End If
Next cell
End If
Next ws
' vérifier si des données ont été trouvé
If Not copyRange Is Nothing Then
' déterminer la ligne de destination dans "Info IPS"
destRow = wsInfoIPS.Cells(wsInfoIPS.Rows.count, "O").End(xlUp).row + 1
' copier les lignes trouvées dans la feuille "Info IPS"
copyRange.Copy Destination:=wsInfoIPS.Cells(destRow, "O")
End If
End Sub
Pensez vous que je puissent aboutir mon code, ou je suis à coté de la plaque ?
Dernière édition: