[Catégorie modifiée VB6 -> VBA] [VB] comparer deux variables avec LIKE

Résolu
cs_bastouneco
Messages postés
5
Date d'inscription
mardi 14 novembre 2000
Statut
Membre
Dernière intervention
24 mai 2010
- 21 mai 2010 à 12:05
cs_bastouneco
Messages postés
5
Date d'inscription
mardi 14 novembre 2000
Statut
Membre
Dernière intervention
24 mai 2010
- 24 mai 2010 à 14:50
Bonjour,

Comment le titre l'indique je souhaiterais comparer deux cellules avec l'opérateur LIKE puisqu'elle l'une des deux cellules ne sera pas exactement identique à la première mais contiendra des suite de caractères communs.

En gros voici ce que j'essaie de faire :

J'ai un tableau comme ceci sur une feuille appelée temps_moyens :


je souhaite récupérer les temps indiqué selon si une cellule d'une autre feuille LIKE une des cellules de la colonne A.

Je ne trouve pas de code permettant d'utilisé LIKE avec les variables, voici en gros ce que j'ai trouvé et qui ne marche pas non plus. Le but étant que je puisse ensuite rajouter des nouvelles ligne au tableau.

Sub tpsmoyenprevi(ligneplan)
    
    Dim vide
    vide = ""

    With Worksheets("Temps moyens").Range("A:A")
        Set A = .Find(vide, LookIn:=xlValues, LookAt:=xlWhole)
        nblt = A.Row - 1
        'nblt = nbre  de lignes entammée dans tps moyens
    End With
    
    With Worksheets("Planning")
     'temps en jour (dépendant de la pièce) (feuille temps moyens)
    For n = 2 To nblt Step 1
    
    'Supprimer les 7 premiers caractères
    
        If InStr(1, Mid(Range("A" & n), 2), Mid(Range("D" & ligneplan), 1), vbTextCompare) <> 0 Then
        Range("L" & ligneplan).Formula = "='Temps moyens'!B " & n 'moulage
        Range("Q" & ligneplan).Formula = "='Temps moyens'!C " & n 'refroidissement
        Range("T" & ligneplan).Formula = "='Temps moyens'!D " & n 'tthe+coupage
        Range("X" & ligneplan).Formula = "='Temps moyens'!E " & n 'ebarbage1
        'Range("?" & ligneplan).Formula = "='Temps moyens'!F "& n 'usinage
        Range("AA" & ligneplan).Formula = "='Temps moyens'!G " & n 'ebarbage2
        End If
    Next n
    

    
    End With
    
    'temps en jour
    
End Sub



Pourriez vous m'aider svp ?

Merci d'avance.

5 réponses

cs_bastouneco
Messages postés
5
Date d'inscription
mardi 14 novembre 2000
Statut
Membre
Dernière intervention
24 mai 2010

24 mai 2010 à 14:50
Voici la solution pour un potentiel intéressé.
If InStr(UCase(Worksheets("Temps moyens").Range("A" & n)), UCase(Trim(Worksheets("Planning").Range("D" & ligneplan)))) > 0 Then ...
3
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
21 mai 2010 à 12:42
Salut
Like s'utilise dans VB comme cela :
If maChaine Like "*toto*" Then  ' n'importe où dans la chaine
If maChaine Like "toto*" Then   ' en début de la chaine
If maChaine Like "*toto" Then   ' en fin de la chaine

Attention : Like tient compte des min/maj : il ne trouvera pas "toto" dans "Toto Martin"
Voir LCase et UCase

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_bastouneco
Messages postés
5
Date d'inscription
mardi 14 novembre 2000
Statut
Membre
Dernière intervention
24 mai 2010

22 mai 2010 à 15:41
Merci, j'ai déjà vu cela, mais en fait ce que je cherche à faire est de comparer deux variable contenant du texte.
Exemple

IF Range("B" & ligne).Value LIKE Range("C" & ligne).value THEN ...
0
cs_bastouneco
Messages postés
5
Date d'inscription
mardi 14 novembre 2000
Statut
Membre
Dernière intervention
24 mai 2010

22 mai 2010 à 15:45
(désolé je n'arrive pas à éditer)

J'ai essayer ceci qui ne marche pas, suis-je sur la bonne piste ?

        If InStr(1, Mid(Worksheets("Temps moyens").Range("A" & n), 2), Mid(Worksheets("Planning").Range("D" & ligneplan), 1), vbTextCompare) <> 0 Then
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bastouneco
Messages postés
5
Date d'inscription
mardi 14 novembre 2000
Statut
Membre
Dernière intervention
24 mai 2010

23 mai 2010 à 20:43
Svp, j'ai eu beau chercher et chercher je ne trouve toujours pas de solution, et j'en ai réellement besoin ...
0