Problème code VBA

Bonjour,

Je dois faire une erreur quelque part dans mon code VBA, je ne sais pas trop comment m'y prendre.

Je vous explique :

Dans ma cellule B66, je souhaite que ça me marque "Seau" lorsque dans la cellule C66 il y a le mot "Seau"

Et je souhaite que ça me marque "Fût" lorsque dans la cellule C66 il y a le mot "Fût".

J'ai donc fait le code suivant :

Sub Conditionnement_Bocal5()
Dim Réf As String
Dim x As Long, y As Long, z As Long
Cells(66, 2).ClearContents

If Cells(66, 3).Value Like "*Fût*" Then
Cells(66, 2) = "Fût"
If Cells(66, 3).Value Like "*Seau*" Then
Cells(66, 2) = "Seau"

End If

End If
End Sub

Le problème c'est que ça prend en compte seulement pour le mot "fût"...

Clem

Bonjour,

Sub Conditionnement_Bocal5()
  With ActiveSheet
    .Cells(66, 2).ClearContents
    If .Cells(66, 3).Value Like "*Fût*" Then .Cells(66, 2).Value = "Fût"
    If .Cells(66, 3).Value Like "*Seau*" Then .Cells(66, 2).Value = "Seau"
  End With
End Sub

Bonjour,

Problème avec la fermeture des If :

Sub Conditionnement_Bocal5()
    Cells(66, 2).ClearContents

    If Cells(66, 3).Value Like "*Fût*" Then
        Cells(66, 2) = "Fût"
    ElseIf Cells(66, 3).Value Like "*Seau*" Then
        Cells(66, 2) = "Seau"
    End If

End Sub

Merci du retour,

ça ne fonctionne pas ...

J'ai oublié de préciser que je lance cette macro quand je fais mon choix dans mes listes déroulantes...

f Not Application.Intersect(Target, Cells(13, 2)) Is Nothing Then Call Conditionnement_Bocal5
If Not Application.Intersect(Target, Cells(14, 2)) Is Nothing Then Call Conditionnement_Bocal5
If Not Application.Intersect(Target, Cells(15, 2)) Is Nothing Then Call Conditionnement_Bocal5

ça change quelque chose à votre code ?

Clem

Bonjour,

Attention, de mémoire "Like" est sensible à la casse. En clair, les majuscules et les minuscules ont une importance.

Merci Oyobrans

Ton code fonctionne !

Clem

If Not Application.Intersect(Target, Range(Cells(13, 2), Cells(15,2))) Is Nothing Then Call Conditionnement_Bocal5

Ah merci, ça va alléger un peu mon code

Par contre Perdro22 a raison le like prend en compte les majuscules. J'ai mis en minuscule et effectivement ça ne fonctionnait pas comme ma première lettre est en Majuscule.

Si quelqu'un a une astuce pour que ça prenne tout en compte ?

Clem

LCase permet de mettre une chaîne en minuscules :

Sub Conditionnement_Bocal5()

    Dim Réf As String
    Dim x As Long, y As Long, z As Long
    Cells(66, 2).ClearContents

    If LCase(Cells(66, 3).Value) Like "*fût*" Then
        Cells(66, 2) = "Fût"
    ElseIf LCase(Cells(66, 3).Value) Like "*seau*" Then
        Cells(66, 2) = "Seau"
    End If

End Sub

Du coup ça ne peut pas fonctionner avec mon code

Car en fait moi je veux que lorsqu'il trouve "poche" (qu'il soit en minuscule ou majuscule) il me mette dans la cellule d'à côté "Poche"

Sauf que si je cherche "poche" alors que dans ma base c'est marqué "Poche" avec un p majuscule. Il ne trouve rien ...

Clem

Du coup ça ne peut pas fonctionner avec mon code

Car en fait moi je veux que lorsqu'il trouve "poche" (qu'il soit en minuscule ou majuscule) il me mette dans la cellule d'à côté "Poche"

Sauf que si je cherche "poche" alors que dans ma base c'est marqué "Poche" avec un p majuscule. Il ne trouve rien ...

Clem

Relis la proposition de oyobrans juste au dessus de ton message...

Oui j'ai essayé avec LCase mais ça ne fonctionne pas, puisque que dans ma base "poche" est écrit de la manière suivante "Poche" ...

Clem

Oui j'ai essayé avec LCase mais ça ne fonctionne pas, puisque que dans ma base "poche" est écrit de la manière suivante "Poche" ...

Clem

Mais LCase le convertie justement en minuscule pour régler ce problème...

Mort de rire ce smiley.

Oui, normalement ça devrait marcher avec ce code, ça met en minuscules la valeur de la cellule, et la compare avec *fût* ou *seau*, en minuscules également.

Alors j'avais fait une erreur dans ma ligne de code, j'avais mis ceci :

ElseIf LCase(Cells(66, 3).Value) Like "*Poche*" Then
        Cells(66, 2) = "Poche"

Alors qu'il faut mettre ceci :

ElseIf LCase(Cells(66, 3).Value) Like "*poche*" Then
        Cells(66, 2) = "Poche"

Au temps pour moi

Merci à vous !

Clem

Bonjour,

Le fait que tu en aies prit conscience toi-même est bon signe, bientôt VBA n'aura plus de secrets pour toi !

Rechercher des sujets similaires à "probleme code vba"