Dans mon classeur, j'ai dans la feuille1 une liste de 40000 num=E9ros,
et dans la feuille2 une liste de 1500 num=E9ros.
Les donn=E9es de la premiere liste1 Feuil1:
A -------------------- B
Num=E9ro ----------- Type
014748810 -------
014748811 -------
014748812 -------
014748813 -------
014748814 -------
014748815 -------
014748816 -------
.
.
.
Dans la deuxieme list2e Feuil2 :
A
Num=E9ro
014748812
014748814
014748816
J'aimerais comparaitre les deux listes par num=E9ro.
S'il y'a deux num=E9ros qui se correspondent, on mettra dans la colonne
B sous type de liste1 devant le num=E9ro correspondant un K sinon un O.
La liste1 deviendra :
A -------------------- B
Num=E9ro ----------- Type
014748810 ------- O
014748811 ------- O
014748812 ------- K
014748813 ------- O
014748814 ------- K
014748815 ------- O
014748816 ------- K
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
JB
Bonsoir,
En B2:
=SI(ESTNA(EQUIV(A2;Feuil2!A2:A10000;0));"O";"K")
JB
On 4 juin, 19:06, Apitos wrote:
Bonjour,
Dans mon classeur, j'ai dans la feuille1 une liste de 40000 numéros, et dans la feuille2 une liste de 1500 numéros.
Les données de la premiere liste1 Feuil1:
A -------------------- B Numéro ----------- Type 014748810 ------- 014748811 ------- 014748812 ------- 014748813 ------- 014748814 ------- 014748815 ------- 014748816 ------- . . .
Dans la deuxieme list2e Feuil2 :
A Numéro 014748812 014748814 014748816
J'aimerais comparaitre les deux listes par numéro.
S'il y'a deux numéros qui se correspondent, on mettra dans la colonne B sous type de liste1 devant le numéro correspondant un K sinon un O.
La liste1 deviendra :
A -------------------- B Numéro ----------- Type 014748810 ------- O 014748811 ------- O 014748812 ------- K 014748813 ------- O 014748814 ------- K 014748815 ------- O 014748816 ------- K
Merci d'avance.
Bonsoir,
En B2:
=SI(ESTNA(EQUIV(A2;Feuil2!A2:A10000;0));"O";"K")
JB
On 4 juin, 19:06, Apitos <api...@gmail.com> wrote:
Bonjour,
Dans mon classeur, j'ai dans la feuille1 une liste de 40000 numéros,
et dans la feuille2 une liste de 1500 numéros.
Les données de la premiere liste1 Feuil1:
A -------------------- B
Numéro ----------- Type
014748810 -------
014748811 -------
014748812 -------
014748813 -------
014748814 -------
014748815 -------
014748816 -------
.
.
.
Dans la deuxieme list2e Feuil2 :
A
Numéro
014748812
014748814
014748816
J'aimerais comparaitre les deux listes par numéro.
S'il y'a deux numéros qui se correspondent, on mettra dans la colonne
B sous type de liste1 devant le numéro correspondant un K sinon un O.
La liste1 deviendra :
A -------------------- B
Numéro ----------- Type
014748810 ------- O
014748811 ------- O
014748812 ------- K
014748813 ------- O
014748814 ------- K
014748815 ------- O
014748816 ------- K
Dans mon classeur, j'ai dans la feuille1 une liste de 40000 numéros, et dans la feuille2 une liste de 1500 numéros.
Les données de la premiere liste1 Feuil1:
A -------------------- B Numéro ----------- Type 014748810 ------- 014748811 ------- 014748812 ------- 014748813 ------- 014748814 ------- 014748815 ------- 014748816 ------- . . .
Dans la deuxieme list2e Feuil2 :
A Numéro 014748812 014748814 014748816
J'aimerais comparaitre les deux listes par numéro.
S'il y'a deux numéros qui se correspondent, on mettra dans la colonne B sous type de liste1 devant le numéro correspondant un K sinon un O.
La liste1 deviendra :
A -------------------- B Numéro ----------- Type 014748810 ------- O 014748811 ------- O 014748812 ------- K 014748813 ------- O 014748814 ------- K 014748815 ------- O 014748816 ------- K
Merci d'avance.
Apitos
Merci JB.
J'ai modifier la formule pour s'appliquer a tous les ligne :
Y'a-t-il un autre moyen pour accomplir cette tache ?
Merci à vous.
FFO
Salut à toi
Solution macro :
Sheets("feuil1").Select For Each c In Worksheets("Feuil1").Range([A1], [A65535].End(xlUp)) n = 0 Sheets("feuil2").Select For Each d In Worksheets("Feuil2").Range([A1], [A65535].End(xlUp)) If d = c Then n = 1 Exit For End If Next If n = 1 Then c.Offset(0, 1) = "K" Else c.Offset(0, 1) = "O" End If Next
Pour 1000 lignes en feuil1 et 1500 lignes en feuil2 le temps de traitement est de 10 secondes Pour 40000 lignes en feuil1 et 1500 lignes en feuil2 il devrait être de 6 minutes
Peut être un peu long A toi ce voir Dis moi !!!
Merci JB.
J'ai modifier la formule pour s'appliquer a tous les ligne :
Y'a-t-il un autre moyen pour accomplir cette tache ?
Merci à vous.
Salut à toi
Solution macro :
Sheets("feuil1").Select
For Each c In Worksheets("Feuil1").Range([A1], [A65535].End(xlUp))
n = 0
Sheets("feuil2").Select
For Each d In Worksheets("Feuil2").Range([A1], [A65535].End(xlUp))
If d = c Then
n = 1
Exit For
End If
Next
If n = 1 Then
c.Offset(0, 1) = "K"
Else
c.Offset(0, 1) = "O"
End If
Next
Pour 1000 lignes en feuil1 et 1500 lignes en feuil2 le temps de traitement
est de 10 secondes
Pour 40000 lignes en feuil1 et 1500 lignes en feuil2 il devrait être de 6
minutes
Peut être un peu long
A toi ce voir
Dis moi !!!
Merci JB.
J'ai modifier la formule pour s'appliquer a tous les ligne :
Sheets("feuil1").Select For Each c In Worksheets("Feuil1").Range([A1], [A65535].End(xlUp)) n = 0 Sheets("feuil2").Select For Each d In Worksheets("Feuil2").Range([A1], [A65535].End(xlUp)) If d = c Then n = 1 Exit For End If Next If n = 1 Then c.Offset(0, 1) = "K" Else c.Offset(0, 1) = "O" End If Next
Pour 1000 lignes en feuil1 et 1500 lignes en feuil2 le temps de traitement est de 10 secondes Pour 40000 lignes en feuil1 et 1500 lignes en feuil2 il devrait être de 6 minutes
Peut être un peu long A toi ce voir Dis moi !!!
Merci JB.
J'ai modifier la formule pour s'appliquer a tous les ligne :
Y'a-t-il un autre moyen pour accomplir cette tache ?
Merci à vous.
JB
Bonjour,
Application.ScreenUpdating = False For Each c In Range("A2", [A65000].End(xlUp)) Set x = Sheets(2).[A:A].Find(what:=c.Value, lookat:=xlWhole) c.Offset(0, 1) = IIf(x Is Nothing, "O", "K") Next c
40 s
JB
On 4 juin, 20:05, Apitos wrote:
Merci JB.
J'ai modifier la formule pour s'appliquer a tous les ligne :
Y'a-t-il un autre moyen pour accomplir cette tache ?
Merci à vous.
Bonjour,
Application.ScreenUpdating = False
For Each c In Range("A2", [A65000].End(xlUp))
Set x = Sheets(2).[A:A].Find(what:=c.Value, lookat:=xlWhole)
c.Offset(0, 1) = IIf(x Is Nothing, "O", "K")
Next c
40 s
JB
On 4 juin, 20:05, Apitos <api...@gmail.com> wrote:
Merci JB.
J'ai modifier la formule pour s'appliquer a tous les ligne :
Application.ScreenUpdating = False For Each c In Range("A2", [A65000].End(xlUp)) Set x = Sheets(2).[A:A].Find(what:=c.Value, lookat:=xlWhole) c.Offset(0, 1) = IIf(x Is Nothing, "O", "K") Next c
40 s
JB
On 4 juin, 20:05, Apitos wrote:
Merci JB.
J'ai modifier la formule pour s'appliquer a tous les ligne :
Y'a-t-il un autre moyen pour accomplir cette tache ?
Merci à vous.
AV
Avec les fonctions de feuilles en lieu et place d'une boucle c'est 10 à 100 plus rapide ! Pour comparer 40000 cellules de "Feuil1" à 1500 cellules de "Feuil2" ---> 5 à 6 secondes.
Exemple (à lancer à partir de "Feuil1")
Sub avecFormul() Application.ScreenUpdating = False Application.Calculation = xlManual [B2:B4000] = "=if(isnumber(match(A2,Feuil2!$A$2:$A$40000,0)),""K"",""O"")" Application.Calculation = xlAutomatic [B2:B4000] = [B2:B4000].Value End Sub
AV
Avec les fonctions de feuilles en lieu et place d'une boucle c'est 10 à
100 plus rapide !
Pour comparer 40000 cellules de "Feuil1" à 1500 cellules de "Feuil2" --->
5 à 6 secondes.
Exemple (à lancer à partir de "Feuil1")
Sub avecFormul()
Application.ScreenUpdating = False
Application.Calculation = xlManual
[B2:B4000] = "=if(isnumber(match(A2,Feuil2!$A$2:$A$40000,0)),""K"",""O"")"
Application.Calculation = xlAutomatic
[B2:B4000] = [B2:B4000].Value
End Sub
Avec les fonctions de feuilles en lieu et place d'une boucle c'est 10 à 100 plus rapide ! Pour comparer 40000 cellules de "Feuil1" à 1500 cellules de "Feuil2" ---> 5 à 6 secondes.
Exemple (à lancer à partir de "Feuil1")
Sub avecFormul() Application.ScreenUpdating = False Application.Calculation = xlManual [B2:B4000] = "=if(isnumber(match(A2,Feuil2!$A$2:$A$40000,0)),""K"",""O"")" Application.Calculation = xlAutomatic [B2:B4000] = [B2:B4000].Value End Sub
AV
AV
Sub avecFormul() Application.ScreenUpdating = False Application.Calculation = xlManual [B2:B40000] = "=if(isnumber(match(A2,Feuil2!$A$2:$A$40000,0)),""K"",""O"")" Application.Calculation = xlAutomatic [B2:B40000] = [B2:B40000].Value End Sub
AV
Sub avecFormul()
Application.ScreenUpdating = False
Application.Calculation = xlManual
[B2:B40000] = "=if(isnumber(match(A2,Feuil2!$A$2:$A$40000,0)),""K"",""O"")"
Application.Calculation = xlAutomatic
[B2:B40000] = [B2:B40000].Value
End Sub
Sub avecFormul() Application.ScreenUpdating = False Application.Calculation = xlManual [B2:B40000] = "=if(isnumber(match(A2,Feuil2!$A$2:$A$40000,0)),""K"",""O"")" Application.Calculation = xlAutomatic [B2:B40000] = [B2:B40000].Value End Sub
AV
Merci AV.
PST
Bonjour
Explication de la formule ci dessous SVP
merci
Avec les fonctions de feuilles en lieu et place d'une boucle c'es t 10 à 100 plus rapide ! Pour comparer 40000 cellules de "Feuil1" à 1500 cellules de "Fe uil2" ---> 5 à 6 secondes.
Exemple (à lancer à partir de "Feuil1")
Sub avecFormul() Application.ScreenUpdating = False Application.Calculation = xlManual [B2:B4000] = "=if(isnumber(match(A2,Feuil2!$A$2:$A$40000,0)), ""K"",""O"")" Application.Calculation = xlAutomatic [B2:B4000] = [B2:B4000].Value End Sub
AV
Bonjour
Explication de la formule ci dessous SVP
merci
Avec les fonctions de feuilles en lieu et place d'une boucle c'es t 10 à
100 plus rapide !
Pour comparer 40000 cellules de "Feuil1" à 1500 cellules de "Fe uil2" --->
5 à 6 secondes.
Exemple (à lancer à partir de "Feuil1")
Sub avecFormul()
Application.ScreenUpdating = False
Application.Calculation = xlManual
[B2:B4000] = "=if(isnumber(match(A2,Feuil2!$A$2:$A$40000,0)), ""K"",""O"")"
Application.Calculation = xlAutomatic
[B2:B4000] = [B2:B4000].Value
End Sub
Avec les fonctions de feuilles en lieu et place d'une boucle c'es t 10 à 100 plus rapide ! Pour comparer 40000 cellules de "Feuil1" à 1500 cellules de "Fe uil2" ---> 5 à 6 secondes.
Exemple (à lancer à partir de "Feuil1")
Sub avecFormul() Application.ScreenUpdating = False Application.Calculation = xlManual [B2:B4000] = "=if(isnumber(match(A2,Feuil2!$A$2:$A$40000,0)), ""K"",""O"")" Application.Calculation = xlAutomatic [B2:B4000] = [B2:B4000].Value End Sub