Chercher une valeur dans une colonne boucle Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
J
JdViRuS
Membre habitué
Membre habitué
Messages : 124
Inscrit le : 19 mai 2017
Version d'Excel : 2010 FR

Message par JdViRuS » 4 février 2019, 17:37

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 .
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 3'886
Appréciations reçues : 161
Inscrit le : 16 mars 2017
Version d'Excel : PC - 2010 FR

Message par i20100 » 4 février 2019, 17:50

Bonjour,

à tester,
For x = 2 To derlig
 If Not IsError(Application.Find("test", Range("J" & x))) Then Range("AB" & x) = "OUI" '
Next x
S'il vous plaît, pas de messagerie personnelle pour vos questions. La réponse peut servir aux autres membres. Merci!
isabelle
Avatar du membre
Dan
Modérateur
Modérateur
Messages : 5'789
Appréciations reçues : 72
Inscrit le : 27 avril 2007
Version d'Excel : 2010, 2000, Mac 2004, 2011

Message par Dan » 4 février 2019, 17:55

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
@+ Dan ;)
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'276
Appréciations reçues : 400
Inscrit le : 27 août 2012
Version d'Excel : O365 32 bits

Message par Jean-Eric » 4 février 2019, 18:08

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
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
J
JdViRuS
Membre habitué
Membre habitué
Messages : 124
Inscrit le : 19 mai 2017
Version d'Excel : 2010 FR

Message par JdViRuS » 4 février 2019, 18:10

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
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'276
Appréciations reçues : 400
Inscrit le : 27 août 2012
Version d'Excel : O365 32 bits

Message par Jean-Eric » 4 février 2019, 18:32

Re,
C'est quoi plusieurs mots différents ?
Peux-tu être plus précis ?
Cdlt.
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
J
JdViRuS
Membre habitué
Membre habitué
Messages : 124
Inscrit le : 19 mai 2017
Version d'Excel : 2010 FR

Message par JdViRuS » 4 février 2019, 18:34

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.
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'276
Appréciations reçues : 400
Inscrit le : 27 août 2012
Version d'Excel : O365 32 bits

Message par Jean-Eric » 4 février 2019, 18:46

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

Je ne réponds pas aux M.P. non sollicités.
J
JdViRuS
Membre habitué
Membre habitué
Messages : 124
Inscrit le : 19 mai 2017
Version d'Excel : 2010 FR

Message par JdViRuS » 4 février 2019, 19:19

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"
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'276
Appréciations reçues : 400
Inscrit le : 27 août 2012
Version d'Excel : O365 32 bits

Message par Jean-Eric » 4 février 2019, 19:26

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
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message