Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comparaison entre 2 cellules

9 réponses
Avatar
fido76
Bonjour à tous.

Après plusieurs jours de recherche, je me décide à faire appel a vos
connaissances.

Voila mon probleme, prenons trois cellules A1,B1,C1

Dans la cellule A1, j ai une serie de type 1-2-3-4-5-6-7-8-9 etc...

Lorsque je tape dans B1, par exemple 1-2-4-6-9, j aimerai que la cellule C1
m'affiche la difference soit 3-5-7-8.

Jai deja trouvé un début de reponse en tapant dans C1, =SUBSTITUE(A1;B1) ms
malheuresement cela ne fonctione que si la serie se suit.

En esperant avoir été assez clair, je vous remercie par avance de vos
reponses

9 réponses

Avatar
Fredo P.
Sub Lesmanques()
Dim i
[C1].ClearContents
For i = 1 To Len([A1])
If InStr([B1], Mid([A1], i, 1)) = 0 Then
[C1] = [C1] & Mid([A1], i, 1) & "-"
End If
Next
[C1]=left([C1],Len([C1])-1)
End Sub
"fido76" a écrit dans le message de
news:
Bonjour à tous.

Après plusieurs jours de recherche, je me décide à faire appel a vos
connaissances.

Voila mon probleme, prenons trois cellules A1,B1,C1

Dans la cellule A1, j ai une serie de type 1-2-3-4-5-6-7-8-9 etc...

Lorsque je tape dans B1, par exemple 1-2-4-6-9, j aimerai que la cellule


C1
m'affiche la difference soit 3-5-7-8.

Jai deja trouvé un début de reponse en tapant dans C1, =SUBSTITUE(A1;B1)


ms
malheuresement cela ne fonctione que si la serie se suit.

En esperant avoir été assez clair, je vous remercie par avance de vos
reponses




Avatar
Sam
Bonjour,
si la série n'est pas trop longue tu pourrais écrire par exemple :
=SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;GAUCHE(B1;2);"");STXT(B1;2;2);"");STXT(B1;4;2);"");STXT(B1;6;2);"")

Cordialement
Michel dit "Sam"
"fido76" a écrit dans le message de news:

Bonjour à tous.

Après plusieurs jours de recherche, je me décide à faire appel a vos
connaissances.

Voila mon probleme, prenons trois cellules A1,B1,C1

Dans la cellule A1, j ai une serie de type 1-2-3-4-5-6-7-8-9 etc...

Lorsque je tape dans B1, par exemple 1-2-4-6-9, j aimerai que la cellule
C1 m'affiche la difference soit 3-5-7-8.

Jai deja trouvé un début de reponse en tapant dans C1, =SUBSTITUE(A1;B1)
ms malheuresement cela ne fonctione que si la serie se suit.

En esperant avoir été assez clair, je vous remercie par avance de vos
reponses



Avatar
Fredo P.
Ou encore plus simple, une fonction :

Public Function Absents(A$, B$)
Dim i, C$
For i = 1 To Len(A)
If InStr(B, Mid(A, i, 1)) = 0 Then
C = C & Mid(A, i, 1) & "-"
End If
Next
Absents = Left(C, Len(C) - 1)
End Function

Dans une cellule: «sents(A1;B1)

Dans la cellule A1, j ai une serie de type 1-2-3-4-5-6-7-8-9 etc...

Lorsque je tape dans B1, par exemple 1-2-4-6-9, j aimerai que la cellule


C1
m'affiche la difference soit 3-5-7-8.



Avatar
fido76
Tout d'abord merci pour ta reponse
Cela fonctionne mais seulement si la serie s'arrete à 9
C'est a dire que dans le cas de nombres à 2 chiffre ( ex :10-14-16-22) si je
rentre 10-16, cela me supprime tout les 1 donc je me retrouve avec une serie
du type 0-4-6-2-2

Aurai tu une solution pour palier a ce problème
Je te remercie d'avance


"Fredo P." <ponsinet.frederic363orange.fr> a écrit dans le message de news:

Sub Lesmanques()
Dim i
[C1].ClearContents
For i = 1 To Len([A1])
If InStr([B1], Mid([A1], i, 1)) = 0 Then
[C1] = [C1] & Mid([A1], i, 1) & "-"
End If
Next
[C1]=left([C1],Len([C1])-1)
End Sub
"fido76" a écrit dans le message de
news:
Bonjour à tous.

Après plusieurs jours de recherche, je me décide à faire appel a vos
connaissances.

Voila mon probleme, prenons trois cellules A1,B1,C1

Dans la cellule A1, j ai une serie de type 1-2-3-4-5-6-7-8-9 etc...

Lorsque je tape dans B1, par exemple 1-2-4-6-9, j aimerai que la cellule


C1
m'affiche la difference soit 3-5-7-8.

Jai deja trouvé un début de reponse en tapant dans C1, =SUBSTITUE(A1;B1)


ms
malheuresement cela ne fonctione que si la serie se suit.

En esperant avoir été assez clair, je vous remercie par avance de vos
reponses








Avatar
fido76
Merci pour ta reponse SAM mais malheureusement j ai des series qui peuvent
parfois etre tres longue, par consequent ta proposition n'est malheuresemnt
pas adapté dans ton cas.

Merci quand meme

"Sam" a écrit dans le message de news:
4925245f$0$960$

Bonjour,
si la série n'est pas trop longue tu pourrais écrire par exemple :
=SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;GAUCHE(B1;2);"");STXT(B1;2;2);"");STXT(B1;4;2);"");STXT(B1;6;2);"")

Cordialement
Michel dit "Sam"
"fido76" a écrit dans le message de news:

Bonjour à tous.

Après plusieurs jours de recherche, je me décide à faire appel a vos
connaissances.

Voila mon probleme, prenons trois cellules A1,B1,C1

Dans la cellule A1, j ai une serie de type 1-2-3-4-5-6-7-8-9 etc...

Lorsque je tape dans B1, par exemple 1-2-4-6-9, j aimerai que la cellule
C1 m'affiche la difference soit 3-5-7-8.

Jai deja trouvé un début de reponse en tapant dans C1, =SUBSTITUE(A1;B1)
ms malheuresement cela ne fonctione que si la serie se suit.

En esperant avoir été assez clair, je vous remercie par avance de vos
reponses







Avatar
Fredo P.
J'ai commencé à m'y penché, je terminerai demain, (un ptit coup de fatigue)

"fido76" a écrit dans le message de
news:
Tout d'abord merci pour ta reponse
Cela fonctionne mais seulement si la serie s'arrete à 9
C'est a dire que dans le cas de nombres à 2 chiffre ( ex :10-14-16-22) si


je
rentre 10-16, cela me supprime tout les 1 donc je me retrouve avec une


serie
du type 0-4-6-2-2

Aurai tu une solution pour palier a ce problème
Je te remercie d'avance


"Fredo P." <ponsinet.frederic363orange.fr> a écrit dans le message de


news:

> Sub Lesmanques()
> Dim i
> [C1].ClearContents
> For i = 1 To Len([A1])
> If InStr([B1], Mid([A1], i, 1)) = 0 Then
> [C1] = [C1] & Mid([A1], i, 1) & "-"
> End If
> Next
> [C1]=left([C1],Len([C1])-1)
> End Sub
> "fido76" a écrit dans le message de
> news:
>> Bonjour à tous.
>>
>> Après plusieurs jours de recherche, je me décide à faire appel a vos
>> connaissances.
>>
>> Voila mon probleme, prenons trois cellules A1,B1,C1
>>
>> Dans la cellule A1, j ai une serie de type 1-2-3-4-5-6-7-8-9 etc...
>>
>> Lorsque je tape dans B1, par exemple 1-2-4-6-9, j aimerai que la


cellule
> C1
>> m'affiche la difference soit 3-5-7-8.
>>
>> Jai deja trouvé un début de reponse en tapant dans C1,


=SUBSTITUE(A1;B1)
> ms
>> malheuresement cela ne fonctione que si la serie se suit.
>>
>> En esperant avoir été assez clair, je vous remercie par avance de vos
>> reponses
>>
>>
>
>




Avatar
fido76
Super

Merci de t'occuper de mon problème
<si tu trouves la solution tu me rendras un grand service car cela me ferai
gagner du temps dans mon boulot
merci d'avance


"Fredo P." <ponsinet.frederic363orange.fr> a écrit dans le message de news:

J'ai commencé à m'y penché, je terminerai demain, (un ptit coup de
fatigue)

"fido76" a écrit dans le message de
news:
Tout d'abord merci pour ta reponse
Cela fonctionne mais seulement si la serie s'arrete à 9
C'est a dire que dans le cas de nombres à 2 chiffre ( ex :10-14-16-22) si


je
rentre 10-16, cela me supprime tout les 1 donc je me retrouve avec une


serie
du type 0-4-6-2-2

Aurai tu une solution pour palier a ce problème
Je te remercie d'avance


"Fredo P." <ponsinet.frederic363orange.fr> a écrit dans le message de


news:

> Sub Lesmanques()
> Dim i
> [C1].ClearContents
> For i = 1 To Len([A1])
> If InStr([B1], Mid([A1], i, 1)) = 0 Then
> [C1] = [C1] & Mid([A1], i, 1) & "-"
> End If
> Next
> [C1]=left([C1],Len([C1])-1)
> End Sub
> "fido76" a écrit dans le message de
> news:
>> Bonjour à tous.
>>
>> Après plusieurs jours de recherche, je me décide à faire appel a vos
>> connaissances.
>>
>> Voila mon probleme, prenons trois cellules A1,B1,C1
>>
>> Dans la cellule A1, j ai une serie de type 1-2-3-4-5-6-7-8-9 etc...
>>
>> Lorsque je tape dans B1, par exemple 1-2-4-6-9, j aimerai que la


cellule
> C1
>> m'affiche la difference soit 3-5-7-8.
>>
>> Jai deja trouvé un début de reponse en tapant dans C1,


=SUBSTITUE(A1;B1)
> ms
>> malheuresement cela ne fonctione que si la serie se suit.
>>
>> En esperant avoir été assez clair, je vous remercie par avance de vos
>> reponses
>>
>>
>
>








Avatar
Fredo P.
Valable pour des nombres à 2 chiffres
http://cjoint.com/?lvpbtf6yxU

Public Function Abscents(A$, B$)
Dim i, C$, cp$
For i = 1 To Len(A)
If IsNumeric(Mid(A, i, 1)) Then
If IsNumeric(Mid(A, i + 1, 1)) Then
cp = Mid(A, i, 2)
If InStr(B, cp) = 0 Then C = C & cp & "-"
i = i + 1
Else
If i = 1 Then
If InStr(B, Left(A, 1) & "-") = 0 Then C = C & Left(A,
1)
Else
If InStr(B, "-" & Mid(A, i, 1)) = 0 Then C = C & Mid(A, i,
1) & "-"
End If
End If
End If
Next
Abscents = Left(C, Len(C) - 1)
End Function

"fido76" a écrit dans le message de
news:
Tout d'abord merci pour ta reponse
Cela fonctionne mais seulement si la serie s'arrete à 9
C'est a dire que dans le cas de nombres à 2 chiffre ( ex :10-14-16-22) si


je
rentre 10-16, cela me supprime tout les 1 donc je me retrouve avec une


serie
du type 0-4-6-2-2

Aurai tu une solution pour palier a ce problème
Je te remercie d'avance


"Fredo P." <ponsinet.frederic363orange.fr> a écrit dans le message de


news:

> Sub Lesmanques()
> Dim i
> [C1].ClearContents
> For i = 1 To Len([A1])
> If InStr([B1], Mid([A1], i, 1)) = 0 Then
> [C1] = [C1] & Mid([A1], i, 1) & "-"
> End If
> Next
> [C1]=left([C1],Len([C1])-1)
> End Sub
> "fido76" a écrit dans le message de
> news:
>> Bonjour à tous.
>>
>> Après plusieurs jours de recherche, je me décide à faire appel a vos
>> connaissances.
>>
>> Voila mon probleme, prenons trois cellules A1,B1,C1
>>
>> Dans la cellule A1, j ai une serie de type 1-2-3-4-5-6-7-8-9 etc...
>>
>> Lorsque je tape dans B1, par exemple 1-2-4-6-9, j aimerai que la


cellule
> C1
>> m'affiche la difference soit 3-5-7-8.
>>
>> Jai deja trouvé un début de reponse en tapant dans C1,


=SUBSTITUE(A1;B1)
> ms
>> malheuresement cela ne fonctione que si la serie se suit.
>>
>> En esperant avoir été assez clair, je vous remercie par avance de vos
>> reponses
>>
>>
>
>




Avatar
fido76
Impec merci beaucoup atous


"Fredo P." <ponsinet.frederic363orange.fr> a écrit dans le message de news:
O$cTpI%

Valable pour des nombres à 2 chiffres
http://cjoint.com/?lvpbtf6yxU

Public Function Abscents(A$, B$)
Dim i, C$, cp$
For i = 1 To Len(A)
If IsNumeric(Mid(A, i, 1)) Then
If IsNumeric(Mid(A, i + 1, 1)) Then
cp = Mid(A, i, 2)
If InStr(B, cp) = 0 Then C = C & cp & "-"
i = i + 1
Else
If i = 1 Then
If InStr(B, Left(A, 1) & "-") = 0 Then C = C & Left(A,
1)
Else
If InStr(B, "-" & Mid(A, i, 1)) = 0 Then C = C & Mid(A, i,
1) & "-"
End If
End If
End If
Next
Abscents = Left(C, Len(C) - 1)
End Function

"fido76" a écrit dans le message de
news:
Tout d'abord merci pour ta reponse
Cela fonctionne mais seulement si la serie s'arrete à 9
C'est a dire que dans le cas de nombres à 2 chiffre ( ex :10-14-16-22) si


je
rentre 10-16, cela me supprime tout les 1 donc je me retrouve avec une


serie
du type 0-4-6-2-2

Aurai tu une solution pour palier a ce problème
Je te remercie d'avance


"Fredo P." <ponsinet.frederic363orange.fr> a écrit dans le message de


news:

> Sub Lesmanques()
> Dim i
> [C1].ClearContents
> For i = 1 To Len([A1])
> If InStr([B1], Mid([A1], i, 1)) = 0 Then
> [C1] = [C1] & Mid([A1], i, 1) & "-"
> End If
> Next
> [C1]=left([C1],Len([C1])-1)
> End Sub
> "fido76" a écrit dans le message de
> news:
>> Bonjour à tous.
>>
>> Après plusieurs jours de recherche, je me décide à faire appel a vos
>> connaissances.
>>
>> Voila mon probleme, prenons trois cellules A1,B1,C1
>>
>> Dans la cellule A1, j ai une serie de type 1-2-3-4-5-6-7-8-9 etc...
>>
>> Lorsque je tape dans B1, par exemple 1-2-4-6-9, j aimerai que la


cellule
> C1
>> m'affiche la difference soit 3-5-7-8.
>>
>> Jai deja trouvé un début de reponse en tapant dans C1,


=SUBSTITUE(A1;B1)
> ms
>> malheuresement cela ne fonctione que si la serie se suit.
>>
>> En esperant avoir été assez clair, je vous remercie par avance de vos
>> reponses
>>
>>
>
>