Zone de recherche

Bonjour,

J'ai besoin d'un petit coup de pouce pour modifier un bout de code VBA trouvé sur les Cours VBA du site.

Sachez que je suis toujours novice en programmation VBA, c'est pour cela que pour le moment je copie seulement des morceaux de code et essaie de les modifier, des fois ça passe, pas ici ...

Voici le code en question :

Option Compare Text

Private Sub TextBox1_Change()

    Application.ScreenUpdating = False

    Range("A2:A24").Interior.ColorIndex = 0
    ListBox1.Clear

    If TextBox1 <> "" Then
        For ligne = 2 To 24
            If Cells(ligne, 1) Like "*" & TextBox1 & "*" Then
                Cells(ligne, 1).Interior.ColorIndex = 40
                ListBox1.AddItem Cells(ligne, 1)
            End If
        Next
    End If

End Sub

Ce code effectue la recherche sur une plage de cellule donnée selon une colonne.

J'essaye d'effectuer la même chose mais selon une ligne (ligne 1).

voici ce que j'ai écris :

Option Compare Text

Private Sub TextBox1_Change()

    Application.ScreenUpdating = False

    Range("M1:ZZ1").Interior.ColorIndex = 0
    ListBox1.Clear

    If TextBox1 <> "" Then
        For colonne = M To Z
            If Cells(1, colonne) Like "*" & TextBox1 & "*" Then
                Cells(1, colonne).Interior.ColorIndex = 40
                ListBox1.AddItem Cells(1, colonne)
            End If
        Next
    End If

End Sub

Il Y a quelque chose qui m'échappe.

Pouvez-vous m'aider?

Merci par avance !

Salut Axel,

For colonne = M To Z

Il faut préciser la valeur des variables! M et Z valent 0 et ne prendront jamais la valeur des colonnes comme tu sembles l'espérer!

Donc,...

For colonne = 12 To 26

... fonctionnera beaucoup mieux!

A+

bonjour,

bonjour Curulis

replace "M to Z" par le numéro de colonnes "13 to 26"

Salut H2SO4,

oui, 13, j'ai glissé sur la bonne touche...

Vigilant, vigilant...

A+

Salut Curulis,

j'ai posté mon message sans avoir remarqué que tu avais déjà répondu. Mon message n'avait pas pour but d'être un correction du tien ... donc aucune vigilance

Bonjour Curulis,

Merci pour ton aide. Toujours là au bon moment !!

Je comprends mieux le fonctionnement de la macro maintenant.

Oui en effet j'avais rectifié à 13, il y a pas de soucis.

Merci à vous deux.

Bonne journée et à bientôt certainement !

Je suis assez content du résultat mais si je veux réaliser cette recherche avec des nombres cela ne fonctionne pas.

Voici mon code modifié :

Option Compare Text

Private Sub TextBox1_Change()

    Application.ScreenUpdating = False

    Range("M1:AAZ1").Interior.ColorIndex = 0
    ListBox1.Clear

    If TextBox1 <> "" Then
        For colonne = 13 To 728
            If Cells(1, colonne) Like "*" & TextBox1 & "*" Then
                Cells(1, colonne).Interior.ColorIndex = 40
                ListBox1.AddItem Cells(1, colonne)
            End If
        Next
    End If

End Sub

Une question de plus :

Si je souhaite analyser la ligne 1 entièrement et non pas une plage de cellules,

je peux écrire quoi ?

If TextBox1 <> "" Then
        For colonne = ?

Merci par avance !

Salut Axel,

une ligne entière est une plage de cellules... quelque part!

Ton code a l'air bon!

Que veux-tu dire...

mais si je veux réaliser cette recherche avec des nombres cela ne fonctionne pas

Explique!

A+

J'ai du avoir un souci avec mon fichier, c'est un peu le chantier dessus en ce moment, je fais des recherches de texte mais aussi de nombre (référence de commande par ex.), ce matin j'ai l'impression que cela fonctionne parfaitement ce matin .

Désolé Curulis je voulais pas te faire lever si tôt..

Merci encore !

A bientôt pour de nouveaux vrai problèmes 8)

Bonne journée.

Rechercher des sujets similaires à "zone recherche"