Condition si dans le champs il y a un texte

Bonjour,

J'ai un code sous vba qui doit me permettre de mettre une couleur dans les cases si elle contient un texte.

Par exemple, si elle contient "FRANCO" alors elle se met en orange ou si elle contient "PA" alors elle se met en Fushia, ...

Voici mon code :

 'si la case contient le mot FRANCO
If UCase(UserForm1.PortBox.Value) Like "*FRANCO *" Then
        NN.Offset(0, i).Value = UserForm1.PortBox.Text
        NN.Offset(0, i).Interior.ColorIndex = 44
        Else
            'Si la case contient le mot PA ou Port Avancé
            If UCase(UserForm1.PortBox.Value) Like "*PA *" Or UCase(UserForm1.PortBox.Value) Like "*Port Avancé *" Then
                NN.Offset(0, i).Value = UserForm1.PortBox.Text
                NN.Offset(0, i).Interior.ColorIndex = 7
            Else
                'Si la case contient le mot CFR LH
                If UCase(UserForm1.PortBox.Value) Like "*CFR LH *" Then
                    NN.Offset(0, i).Value = UserForm1.PortBox.Text
                    NN.Offset(0, i).Interior.ColorIndex = 37
                Else
                   'Si la case contient le mot CIF LH
                    If UCase(UserForm1.PortBox.Value) Like "*CIF LH *" Then
                        NN.Offset(0, i).Value = UserForm1.PortBox.Text
                        NN.Offset(0, i).Interior.ColorIndex = 41
                    End If
                End If
            End If
            NN.Offset(0, i).Value = UserForm1.PortBox.Text
    End If

J'ai plusieurs truc que je ne comprends pas

lorsque j'ai la valeur :

FRANCO => le code ne marche pas

FRANCO 500 : c'est à dire FRANCO + espace + autre chose => le code fonctionne

PA => le code ne marche pas

PA r : c'est à dire PA + espace + autre chose => le code fonctionne

Port Avancé => le code ne marche pas

Port Avancé r : c'est à dire Port avancé + espace + autre chose => le code ne marche pas

Est ce que quelqu'un peux m'aider ?

Merci

nini

Bonjour,

lorsque tu écris

Like "*FRANCO *" Then

tu constates qu'entre FRANCO et * il y a un espace. Si tu supprimes cet espace tu devrais obtenir tout les textes contenant FRANCO (sans espace).

Et idem pour les autres textes.

A+

Merci pour votre réponse

Cela m'a permis de régler quasiment tous les problèmes sauf pour un ????

J'ai modifié le code en supprimant l'espace mais lorsque j'ai "Port Avancé", il ne prend pas la condition ??

Merci

nini

L'opérateur like vérifie que les 2 chaînes de caractères comparées sont identiques.

Vérifie que c'est le cas.

Sinon, fais-moi passer un fichier exemple avec la comparaison qui ne fonctionne pas.

A+

Bonjour,

Voici le fichier.

Il faut utiliser le bouton "Nouvelle entrée".

Les champs suivants sont nécessaires :

N° cde

Date

Fournisseur

Plante

Origine

Quantité

Prix

Le champs qui pose problème est "Port"

Merci

Nini

21suivi.rar (96.51 Ko)

Bonjour,

Dans ta procédure, tu as noté "*Port Avanc*"

C'est différent de "*Port Avancé*"

A+

C'est exacte mais :

1. Si tu écris Port Avanc la condition ne fonctionne pas

2. Je croyais que les * permettaient de mettre ensuite un mot comme "Port Avancé : client X" et qu'il serait intégré dans la condition "*Port Avanc*" car "Port Avanc" est présent dans "Port Avancé : client X"

nini dubitatif sur la réponse

Je vais te donner un truc pour arrêter de dubitater : tu fais le test pour voir si ça marche.

A+

Bonjour,

Frangy désolé mais le fait que cela ne fonctionne pas, cela n'a rien à voir avec "*Port Avanc*" ou "*Port Avancé*" car effectivement * remplace tous les caractères, donc "théoriquement" Liop49 a raison, et cela devrait fonctionner dans les deux cas.

Ensuite Liop49, cela ne fonctionne pas à cause de cette partie :

If UCase(UserForm1.PortBox.Value) Like "*Port Avanc*" Then

Tu passes la valeur de ta textbox en majuscule, et tu lui demande une comparaison avec un texte en minuscule...

en modifiant en :

If UCase(UserForm1.PortBox.Value) Like "*PORT AVANC*" Then

cela devrait mieux marcher non ?

Cordialement,

Merci Zyrak

c'est bon cela fonctionne au top maintenant

Merci

Nini content

Au temps pour moi

J'ai complètement zappé le Ucase.

Zyrak

Nini

A+

Rechercher des sujets similaires à "condition champs texte"