Chercher une valeur dans une colonne boucle

Hello le forum !

J'ai besoin d'une petite aide .

Pourtant simple mais j'ai du zapper quelque chose ...

J'aimerai faire une recherche dans la colonne J.

Sur chaque ligne de la colonne J, si le mot "test" est présent, ajouter "oui" sur la même ligne , en colonne AB.

For X = 2 To derlig

Set a = Range("j:j").Find("*test*")
 If Not a Is Nothing Then Lig = a.Row Else LigN
        If Range("j" & LigN).Text = "*test*" Then '
        Range("AB" & LigN) = "OUI" '
        Else
        End If

Next X

Merci d'avance .

Bonjour,

à tester,

For x = 2 To derlig
 If Not IsError(Application.Find("test", Range("J" & x))) Then Range("AB" & x) = "OUI" '
Next x

Bonsoir

A essayer comme ceci

derlig = Range("j" & Rows.Count).End(xlUp).Row
For X = 2 To derlig
    If Range("j" & X) Like "*test*" Then Range("AB" & X) = "OUI" '
Next X

Cordialement

Bonjour à toutes et tous,

Et une autre proposition (avec un like ).

Cdlt.

Public Sub DEMO()
Dim n As Long, rng As Range, r As Range
    With ActiveSheet
        n = .Cells(.Rows.Count, 10).End(xlUp).Row
        If n > 1 Then
            Set rng = .Cells(2, 10).Resize(n - 1)
            For Each r In rng
                If r.Value Like "*test" Then r.Offset(, 18).Value = "OUI"
            Next r
        End If
    End With
End Sub

Merci pour vos réponses rapide !

Cela fonctionne, mais j'aimerai ajouter plusieurs mots différents.

Je pensai pouvoir ajouter un or comme cela mais ça ne fonctionne pas :

Sub Cherche5()
derlig = Range("j" & Rows.Count).End(xlUp).Row
For X = 2 To derlig
    If Range("j" & X) Like "test" Or "test2" Then Range("AB" & X) = "OUI"
Next X
End Sub

Re,

C'est quoi plusieurs mots différents ?

Peux-tu être plus précis ?

Cdlt.

Si je veux qu'à chaque fois qu'il y a "test" ou "test2 ou "test3" dans la colonne J, ajouter "oui" sur la ligne correspondante en AB.

Re,

Si tu continues avec l'opérateur Like, il te suffit de remplacer "*test" par "test*" dans les exemples précédents.

Cdlt.

Non, je veux dire que je souhaite mettre plusieurs conditions ...

Par exemple,

Si il y a le mot "test" ou "blabla", ou "glouglou", la ligne en colonne AB = "OUI"

Re,

Pour le principe, avec l'instruction Select Case.

Cdlt.

Public Sub DEMO()
Dim n As Long, rng As Range, r As Range
    With ActiveSheet
        n = .Cells(.Rows.Count, 10).End(xlUp).Row
        If n > 1 Then
            Set rng = .Cells(2, 10).Resize(n - 1)
            For Each r In rng
                Select Case r.Value2
                    Case "test", "blabla", "gouglou"
                        r.Offset(, 18).Value = "OUI"
                    Case Else:
                End Select
            Next r
        End If
    End With
End Sub

C'est parfait. J'aimerai juste comprendre les "resize (n_1)" ?

Re,

Un exemple :

Tes données (avec en-tête) démarrent en J1 et se terminent en J10

Si je pars maintenant de J2 (sans en-tête) et que j'ajoute n (10), je dois retirer 1 pour redimensionner pour ne conserver que les données sans en-tête.

Est ce clair ?

https://docs.microsoft.com/fr-fr/office/vba/api/excel.range.resize

Cdlt.

merci pour l'info !

Puis je utiliser un like sur ce code ?!

Re,

Que recherches-tu réellement ?

Ne peux-tu pas joindre un fichier pour illustrer tes propos ?

Tu as eu des exemples avec l'opérateur Like, l'instruction Select Case et on peut associer les 2 (Select case + Like).

Alors, test1, test2, blabla et gouglou !...

Cdlt.

Ok j'ai su me débrouiller.

J'aimerai (pour aller plus vite) mettre une liste de nom au lieu d'un texte; c'est possible ?

comme :

With ActiveSheet
        n = .Cells(.Rows.Count, 9).End(xlUp).Row 'compter le nombre de ligne sur la colonne 9 à partir de 0(j)
        If n > 1 Then
            Set rng = .Cells(2, 9).Resize(n - 1)
            For Each r In rng
                Select Case r.Value2
                    Case "ma liste_de_nom"
                        r.Offset(, 26).Value = "oui"
                    Case Else:
                End Select
            Next r
        End If
    End With

Bonjour,

Un exemple pour le principe avec une plage définie et l'utilisation de Match [fonction Excel EQUIV()].

Cdlt.

7jdvirus.xlsm (19.40 Ko)

Merci ! C'est parfait.

Rechercher des sujets similaires à "chercher valeur colonne boucle"