Comparer 2 cellules avec au moins 5 caracteres consécutifs en commun ?
6 réponses
Eric
Bonjour,
Je voudrais qu'excel me compare deux cellules: si il y a au moins 5
caracteres consécutifs en commun (chiffres ou lettres), alors dire "ok",
sinon "error".
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
gmlsteph
Hello,
Sub toto() Dim mych1 As String, mych2 As String, _ TstCh As String, mytest As Boolean
mych1 = [A1] mych2 = [B1] mytest = False For i = 1 To Len(mych1) - 4 TstCh = Mid(mych1, i, 5) If InStr(1, mych2, TstCh) Then mytest = True: Exit For End If Next
MsgBox mytest
End Sub
On 8 juin, 12:22, "Eric" wrote:
Bonjour,
Je voudrais qu'excel me compare deux cellules: si il y a au moins 5 caracteres consécutifs en commun (chiffres ou lettres), alors dire "ok" , sinon "error".
Sub toto()
Dim mych1 As String, mych2 As String, _
TstCh As String, mytest As Boolean
mych1 = [A1]
mych2 = [B1]
mytest = False
For i = 1 To Len(mych1) - 4
TstCh = Mid(mych1, i, 5)
If InStr(1, mych2, TstCh) Then
mytest = True: Exit For
End If
Next
MsgBox mytest
End Sub
On 8 juin, 12:22, "Eric" <edfsk...@df.netf> wrote:
Bonjour,
Je voudrais qu'excel me compare deux cellules: si il y a au moins 5
caracteres consécutifs en commun (chiffres ou lettres), alors dire "ok" ,
sinon "error".
Sub toto() Dim mych1 As String, mych2 As String, _ TstCh As String, mytest As Boolean
mych1 = [A1] mych2 = [B1] mytest = False For i = 1 To Len(mych1) - 4 TstCh = Mid(mych1, i, 5) If InStr(1, mych2, TstCh) Then mytest = True: Exit For End If Next
MsgBox mytest
End Sub
On 8 juin, 12:22, "Eric" wrote:
Bonjour,
Je voudrais qu'excel me compare deux cellules: si il y a au moins 5 caracteres consécutifs en commun (chiffres ou lettres), alors dire "ok" , sinon "error".
Une fonction personnalisée que tu places dans un module standard : Dans une cellule, tu écris : =Présent_Dans(A1;A2), OU =Présent_Dans(A2;A1)
'---------------------------------------- Function Présent_Dans(Rg As Range, Rg1 As Range) Dim A As String, X As String If Len(Rg) > Len(Rg1) Then A = Trim(Rg): X = Trim(Rg1) Else X = Trim(Rg): A = Trim(Rg1) End If For b = 1 To Len(X) - 4 toto = Mid(X, b, 5) If InStr(b, A, Mid(X, b, 5), vbTextCompare) <> 0 Then Présent_Dans = "Ok" Exit Function End If Next If Présent_Dans = "" Then Présent_Dans = "Absent" End Function '----------------------------------------
"Eric" a écrit dans le message de groupe de discussion : 4a2ce668$0$4845$ Bonjour,
Je voudrais qu'excel me compare deux cellules: si il y a au moins 5 caracteres consécutifs en commun (chiffres ou lettres), alors dire "ok", sinon "error".
Une fonction personnalisée que tu places dans un module standard :
Dans une cellule, tu écris :
=Présent_Dans(A1;A2), OU =Présent_Dans(A2;A1)
'----------------------------------------
Function Présent_Dans(Rg As Range, Rg1 As Range)
Dim A As String, X As String
If Len(Rg) > Len(Rg1) Then
A = Trim(Rg): X = Trim(Rg1)
Else
X = Trim(Rg): A = Trim(Rg1)
End If
For b = 1 To Len(X) - 4
toto = Mid(X, b, 5)
If InStr(b, A, Mid(X, b, 5), vbTextCompare) <> 0 Then
Présent_Dans = "Ok"
Exit Function
End If
Next
If Présent_Dans = "" Then Présent_Dans = "Absent"
End Function
'----------------------------------------
"Eric" <edfskghf@df.netf> a écrit dans le message de groupe de discussion :
4a2ce668$0$4845$426a34cc@news.free.fr...
Bonjour,
Je voudrais qu'excel me compare deux cellules: si il y a au moins 5
caracteres consécutifs en commun (chiffres ou lettres), alors dire "ok",
sinon "error".
Une fonction personnalisée que tu places dans un module standard : Dans une cellule, tu écris : =Présent_Dans(A1;A2), OU =Présent_Dans(A2;A1)
'---------------------------------------- Function Présent_Dans(Rg As Range, Rg1 As Range) Dim A As String, X As String If Len(Rg) > Len(Rg1) Then A = Trim(Rg): X = Trim(Rg1) Else X = Trim(Rg): A = Trim(Rg1) End If For b = 1 To Len(X) - 4 toto = Mid(X, b, 5) If InStr(b, A, Mid(X, b, 5), vbTextCompare) <> 0 Then Présent_Dans = "Ok" Exit Function End If Next If Présent_Dans = "" Then Présent_Dans = "Absent" End Function '----------------------------------------
"Eric" a écrit dans le message de groupe de discussion : 4a2ce668$0$4845$ Bonjour,
Je voudrais qu'excel me compare deux cellules: si il y a au moins 5 caracteres consécutifs en commun (chiffres ou lettres), alors dire "ok", sinon "error".
Je voudrais qu'excel me compare deux cellules: si il y a au moins 5 caracteres consécutifs en commun (chiffres ou lettres), alors dire "ok", sinon "error".
Je voudrais qu'excel me compare deux cellules: si il y a au moins 5
caracteres consécutifs en commun (chiffres ou lettres), alors dire "ok",
sinon "error".
Je voudrais qu'excel me compare deux cellules: si il y a au moins 5 caracteres consécutifs en commun (chiffres ou lettres), alors dire "ok", sinon "error".
Utiliser ceci : '------------------------- Function Présent_Dans(Rg As Range, Rg1 As Range) Dim A As String, X As String If Len(Rg) > Len(Rg1) Then A = Trim(Rg): X = Trim(Rg1) Else X = Trim(Rg): A = Trim(Rg1) End If For b = 1 To Len(X) - 4 If InStr(1, A, Mid(1, b, 5), vbBinaryCompare) <> 0 Then Présent_Dans = "Ok" Exit Function End If Next If Présent_Dans = "" Then Présent_Dans = "Absent" End Function '-------------------------
"MichDenis" a écrit dans le message de groupe de discussion :
Bonjour Éric,
Une fonction personnalisée que tu places dans un module standard : Dans une cellule, tu écris : =Présent_Dans(A1;A2), OU =Présent_Dans(A2;A1)
'---------------------------------------- Function Présent_Dans(Rg As Range, Rg1 As Range) Dim A As String, X As String If Len(Rg) > Len(Rg1) Then A = Trim(Rg): X = Trim(Rg1) Else X = Trim(Rg): A = Trim(Rg1) End If For b = 1 To Len(X) - 4 toto = Mid(X, b, 5) If InStr(b, A, Mid(X, b, 5), vbTextCompare) <> 0 Then Présent_Dans = "Ok" Exit Function End If Next If Présent_Dans = "" Then Présent_Dans = "Absent" End Function '----------------------------------------
"Eric" a écrit dans le message de groupe de discussion : 4a2ce668$0$4845$ Bonjour,
Je voudrais qu'excel me compare deux cellules: si il y a au moins 5 caracteres consécutifs en commun (chiffres ou lettres), alors dire "ok", sinon "error".
Utiliser ceci :
'-------------------------
Function Présent_Dans(Rg As Range, Rg1 As Range)
Dim A As String, X As String
If Len(Rg) > Len(Rg1) Then
A = Trim(Rg): X = Trim(Rg1)
Else
X = Trim(Rg): A = Trim(Rg1)
End If
For b = 1 To Len(X) - 4
If InStr(1, A, Mid(1, b, 5), vbBinaryCompare) <> 0 Then
Présent_Dans = "Ok"
Exit Function
End If
Next
If Présent_Dans = "" Then Présent_Dans = "Absent"
End Function
'-------------------------
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de groupe de discussion :
exsnwfC6JHA.5180@TK2MSFTNGP04.phx.gbl...
Bonjour Éric,
Une fonction personnalisée que tu places dans un module standard :
Dans une cellule, tu écris :
=Présent_Dans(A1;A2), OU =Présent_Dans(A2;A1)
'----------------------------------------
Function Présent_Dans(Rg As Range, Rg1 As Range)
Dim A As String, X As String
If Len(Rg) > Len(Rg1) Then
A = Trim(Rg): X = Trim(Rg1)
Else
X = Trim(Rg): A = Trim(Rg1)
End If
For b = 1 To Len(X) - 4
toto = Mid(X, b, 5)
If InStr(b, A, Mid(X, b, 5), vbTextCompare) <> 0 Then
Présent_Dans = "Ok"
Exit Function
End If
Next
If Présent_Dans = "" Then Présent_Dans = "Absent"
End Function
'----------------------------------------
"Eric" <edfskghf@df.netf> a écrit dans le message de groupe de discussion :
4a2ce668$0$4845$426a34cc@news.free.fr...
Bonjour,
Je voudrais qu'excel me compare deux cellules: si il y a au moins 5
caracteres consécutifs en commun (chiffres ou lettres), alors dire "ok",
sinon "error".
Utiliser ceci : '------------------------- Function Présent_Dans(Rg As Range, Rg1 As Range) Dim A As String, X As String If Len(Rg) > Len(Rg1) Then A = Trim(Rg): X = Trim(Rg1) Else X = Trim(Rg): A = Trim(Rg1) End If For b = 1 To Len(X) - 4 If InStr(1, A, Mid(1, b, 5), vbBinaryCompare) <> 0 Then Présent_Dans = "Ok" Exit Function End If Next If Présent_Dans = "" Then Présent_Dans = "Absent" End Function '-------------------------
"MichDenis" a écrit dans le message de groupe de discussion :
Bonjour Éric,
Une fonction personnalisée que tu places dans un module standard : Dans une cellule, tu écris : =Présent_Dans(A1;A2), OU =Présent_Dans(A2;A1)
'---------------------------------------- Function Présent_Dans(Rg As Range, Rg1 As Range) Dim A As String, X As String If Len(Rg) > Len(Rg1) Then A = Trim(Rg): X = Trim(Rg1) Else X = Trim(Rg): A = Trim(Rg1) End If For b = 1 To Len(X) - 4 toto = Mid(X, b, 5) If InStr(b, A, Mid(X, b, 5), vbTextCompare) <> 0 Then Présent_Dans = "Ok" Exit Function End If Next If Présent_Dans = "" Then Présent_Dans = "Absent" End Function '----------------------------------------
"Eric" a écrit dans le message de groupe de discussion : 4a2ce668$0$4845$ Bonjour,
Je voudrais qu'excel me compare deux cellules: si il y a au moins 5 caracteres consécutifs en commun (chiffres ou lettres), alors dire "ok", sinon "error".
Je voudrais qu'excel me compare deux cellules: si il y a au moins 5 caracteres consécutifs en commun (chiffres ou lettres), alors dire "ok", sinon "error".
Bonjour,
Merci beaucoup à tous. ;)) Fantastique ! ;)
Merci encore ;)
Eric
"Pierre-Yves Rivaille" <PierreYvesRivaille@discussions.microsoft.com> a
écrit dans le message de news:
120B3164-408B-48D2-BE44-BBEF8DC2C96D@microsoft.com...
Bonjour,
C'est possible sans utiliser de VBA avec la formule suivante :
Je voudrais qu'excel me compare deux cellules: si il y a au moins 5
caracteres consécutifs en commun (chiffres ou lettres), alors dire "ok",
sinon "error".
Je voudrais qu'excel me compare deux cellules: si il y a au moins 5 caracteres consécutifs en commun (chiffres ou lettres), alors dire "ok", sinon "error".
Voilà qui a le mérite d'être simple, attention toutefois de vérif ier que les chaînes à comparer comportent au minimum 5 caractères. Sinon, c 'est mieux de retourner explicitement faux que erreur. _________________________________________________ a écrit, le 08/06/2009 12:44 :
Hello,
Sub toto() Dim mych1 As String, mych2 As String, _ TstCh As String, mytest As Boolean
mych1 = [A1] mych2 = [B1] mytest = False For i = 1 To Len(mych1) - 4 TstCh = Mid(mych1, i, 5) If InStr(1, mych2, TstCh) Then mytest = True: Exit For End If Next
MsgBox mytest
End Sub
On 8 juin, 12:22, "Eric" wrote:
Bonjour,
Je voudrais qu'excel me compare deux cellules: si il y a au moins 5 caracteres consécutifs en commun (chiffres ou lettres), alors dire " ok", sinon "error".
Voilà qui a le mérite d'être simple, attention toutefois de vérif ier que
les chaînes à comparer comportent au minimum 5 caractères. Sinon, c 'est
mieux de retourner explicitement faux que erreur.
_________________________________________________
gmlsteph@gmail.com a écrit, le 08/06/2009 12:44 :
Hello,
Sub toto()
Dim mych1 As String, mych2 As String, _
TstCh As String, mytest As Boolean
mych1 = [A1]
mych2 = [B1]
mytest = False
For i = 1 To Len(mych1) - 4
TstCh = Mid(mych1, i, 5)
If InStr(1, mych2, TstCh) Then
mytest = True: Exit For
End If
Next
MsgBox mytest
End Sub
On 8 juin, 12:22, "Eric" <edfsk...@df.netf> wrote:
Bonjour,
Je voudrais qu'excel me compare deux cellules: si il y a au moins 5
caracteres consécutifs en commun (chiffres ou lettres), alors dire " ok",
sinon "error".
Voilà qui a le mérite d'être simple, attention toutefois de vérif ier que les chaînes à comparer comportent au minimum 5 caractères. Sinon, c 'est mieux de retourner explicitement faux que erreur. _________________________________________________ a écrit, le 08/06/2009 12:44 :
Hello,
Sub toto() Dim mych1 As String, mych2 As String, _ TstCh As String, mytest As Boolean
mych1 = [A1] mych2 = [B1] mytest = False For i = 1 To Len(mych1) - 4 TstCh = Mid(mych1, i, 5) If InStr(1, mych2, TstCh) Then mytest = True: Exit For End If Next
MsgBox mytest
End Sub
On 8 juin, 12:22, "Eric" wrote:
Bonjour,
Je voudrais qu'excel me compare deux cellules: si il y a au moins 5 caracteres consécutifs en commun (chiffres ou lettres), alors dire " ok", sinon "error".