Bonjour le forum,
cela fait quelques jours que je galère avec mon code. je ne suis pas expert loin de là, du coup j'ai récupéré des conseils à droite à gauche pour arriver pas loin du résultat!
En gros, c'est un mini moteur de recherche par mots clés sur plusieurs onglets d'un même fichier excel.
Lorsque je lance la recherche, il me retrouve bien toutes les lignes sur les différents onglets où le mot clé utilisé se trouve, mais dans ces lignes il y a des liens hypertextes qui sautent. C'est comme s'il ne faisait que recopier ce qu'il y a dans les cellules de la ligne sans tenir compte de la casse, couleur, lien hypertexte d'origine...
J'avoue être dépassé! si qqun pouvait m'aider, voici le code en question
Private Sub CommandButton1_Click()
Dim lig As Long, w As Worksheet, cel As Range
Application.ScreenUpdating = False
Sheets("Moteur de Recherche").Rows("3:65536").ClearContents
If TextBox1 = "" Then GoTo 1
lig = 2
For Each w In Worksheets
If w.Name <> "Moteur de Recherche" Then
For Each cel In w.UsedRange
If IIf(CheckBox1, cel = TextBox1, UCase(cel) = UCase(TextBox1)) Then
lig = lig + 1
Sheets("Moteur de Recherche").Cells(lig, 1) = w.Name
Sheets("Moteur de Recherche").Cells(lig, 2).Resize(, 20) = w.Cells(cel.Row, 1).Resize(, 20).Value
End If
Next cel
End If
Next w
1 TextBox1.SetFocus
Application.ScreenUpdating = True
End Sub
cela fait quelques jours que je galère avec mon code. je ne suis pas expert loin de là, du coup j'ai récupéré des conseils à droite à gauche pour arriver pas loin du résultat!
En gros, c'est un mini moteur de recherche par mots clés sur plusieurs onglets d'un même fichier excel.
Lorsque je lance la recherche, il me retrouve bien toutes les lignes sur les différents onglets où le mot clé utilisé se trouve, mais dans ces lignes il y a des liens hypertextes qui sautent. C'est comme s'il ne faisait que recopier ce qu'il y a dans les cellules de la ligne sans tenir compte de la casse, couleur, lien hypertexte d'origine...
J'avoue être dépassé! si qqun pouvait m'aider, voici le code en question
Private Sub CommandButton1_Click()
Dim lig As Long, w As Worksheet, cel As Range
Application.ScreenUpdating = False
Sheets("Moteur de Recherche").Rows("3:65536").ClearContents
If TextBox1 = "" Then GoTo 1
lig = 2
For Each w In Worksheets
If w.Name <> "Moteur de Recherche" Then
For Each cel In w.UsedRange
If IIf(CheckBox1, cel = TextBox1, UCase(cel) = UCase(TextBox1)) Then
lig = lig + 1
Sheets("Moteur de Recherche").Cells(lig, 1) = w.Name
Sheets("Moteur de Recherche").Cells(lig, 2).Resize(, 20) = w.Cells(cel.Row, 1).Resize(, 20).Value
End If
Next cel
End If
Next w
1 TextBox1.SetFocus
Application.ScreenUpdating = True
End Sub