Valeur est égale à une valeur ou une autre

Fermé
ccvr - 11 août 2022 à 14:33
f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 - 12 août 2022 à 12:00

Bonjour,

Je souhaite recherchée une certaine valeur dans une colonne d'un fichier excel. Cependant, cette valeur a deux mots et ces deux mots peuvent être espacés ou collés. 

J'aimerai déclarer cette valeur en mode est égale à valeur1(celle avec espace) ou à valeur2( celle sans espace)

Pour pouvoir ensuite avec un Find rechercher cette valeur dans ma colonne ( la méthode du find est acquise pour moi)

Merciii

4 réponses

f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 709
11 août 2022 à 14:52

Bonjour,

ces deux mots peuvent être espacés ou collés.

Est ce que le premier mot ou le deuxieme peuvent etre associes avec un autre mot dans une cellule?

0

oui enfaite ils correspondent chacun à une valeur dans une cellule

0
f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 709 > ccvr
Modifié le 11 août 2022 à 18:17

Re,

Est-ce que ces deux mots sont toujours en "couple" dans les cellules?

ex:

M1=a, M2=z

a z

ax  ?

az

sz  ?

a ou z ne sont jamais avec un autre mot 

0
ccvr > f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024
11 août 2022 à 19:51

oui il peut y avoir a et z , a et x, s et z 

ca peut changer 

0
yg_be Messages postés 23242 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 octobre 2024 Ambassadeur 1 541
11 août 2022 à 20:08

bonjour,

Quand le Find devient complexe, il est préférable de faire une boucle VBA qui vérifie chaque valeur en utilisant un critère aussi complexe que nécessaire.

Comme expliqué dans le paragraphe avant "Exemples", ici: https://docs.microsoft.com/fr-fr/office/vba/api/Excel.Range.Find

0
f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 709
Modifié le 12 août 2022 à 00:17

Re,

Une boucle avec deux like

Sub test()
    Valeur1 = "a"
    Valeur2 = "z"
    For n = 1 To 7
        If Cells(n, 1) Like "*" & Valeur1 & "*" And Cells(n, 1) Like "*" & Valeur2 & "*" Then
            MsgBox Cells(n, 1)
        End If
    Next n
End Sub

A vous d'adapter vu que nous ne savons pas ce que en ferez.

Si les deux valeurs sont inversees ex: za ou z a il y a detection

EDIT : Basic sélectionné pour la coloration.

0
f894009 Messages postés 17200 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 11 septembre 2024 1 709
Modifié le 12 août 2022 à 12:10

Bonjour,

Une facon de faire avec find

Sub test_2()
    Valeur1 = "a"
    Valeur2 = "z"
    Valeur = "*" & Valeur1 & "*" & Valeur2 & "*"
    Set Plage = Range("A1:A10")
    Set cell = Plage.Cells.Find(what:=Valeur, LookAt:=xlPart)
    If cell Is Nothing Then
        msg = Valeur & " n'existe pas"
    Else
        msg = "Valeur: " & Valeur & "-->" & cell.Address
    End If
    MsgBox msg
End Sub

'celle que j'utilise pour recherches multiples
Sub test_3()
    Valeur1 = "a"
    Valeur2 = "z"
    Valeur = "*" & Valeur1 & "*" & Valeur2 & "*"
    Set Plage = Range("A2:A10")
    Nb = Application.CountIf(Plage, Valeur)
    If Nb > 0 Then
        lig = 1
        Adr = Columns(1).Find(Valeur, Cells(lig, 1), , LookAt:=xlPart).Address
        msg = "Valeur: " & Valeur & "-->" & Adr
    Else
        msg = Valeur & " n'existe pas"
    End If
    MsgBox msg
End Sub

0