OVH Cloud OVH Cloud

données correspondantes

9 réponses
Avatar
cousinhub
Bonsoir,
j'aurais besoin de vos avis éclairés pour résoudre un problème que j'ai du
mal à résoudre.
Dans mon fichier, onglet "reference", j'ai une liste de 53 000 numéros avec
les codes correspondants.
certains numéros peuvent avoir plusieurs codes.
dans l'onglet "personnel", j'ai une liste de 11 000 numéros et dont je n'ai
pas les codes.
j'aimerai obtenir dans mon onglet personnel les codes liés aux numéros
présents, tout ceci par macro.
ci-joint un exemple : http://cjoint.com/?kttV52RCjA
Merci de votre aide

9 réponses

Avatar
Youky
Bonsoir, revoir le nom des pages si autre classeur
Youky

Sub Recap()
lig = 2: lig2 = 2
col = 1: k = 1
num = Feuil1.Cells(lig, 1)
Do While Feuil1.Cells(lig, 1) <> ""
If Feuil1.Cells(lig, 1) = "" Then Exit Do
If Feuil1.Cells(lig, 1) = num Then
Feuil2.Cells(lig2, col) = Feuil1.Cells(lig, k)
col = col + 1: k = 2: lig = lig + 1
Else
num = Feuil1.Cells(lig, 1)
k = 1: lig2 = lig2 + 1: col = 1
End If
Loop
End Sub

"cousinhub" a écrit dans le message de
news:
Bonsoir,
j'aurais besoin de vos avis éclairés pour résoudre un problème que j'ai du
mal à résoudre.
Dans mon fichier, onglet "reference", j'ai une liste de 53 000 numéros
avec
les codes correspondants.
certains numéros peuvent avoir plusieurs codes.
dans l'onglet "personnel", j'ai une liste de 11 000 numéros et dont je
n'ai
pas les codes.
j'aimerai obtenir dans mon onglet personnel les codes liés aux numéros
présents, tout ceci par macro.
ci-joint un exemple : http://cjoint.com/?kttV52RCjA
Merci de votre aide


Avatar
cousinhub
Bonsoir,
je te remercie, j'essaie en ce moment, et il y a un petit bug, ou je me suis
peut-être mal exprimé : en effet, lorsqu'il y a plusieurs numéros identiques
dans l'onglet référence, il me copie bien tous les codes correspondants, mais
s'il n'y en a qu'un, et qu'il corresponde bien à un de mes valeurs dans
l'onglet personnel, il ne m'indique rien. Merci encore, je fouille pour voir
où j''aurais pu me tromper


Bonsoir, revoir le nom des pages si autre classeur
Youky

Sub Recap()
lig = 2: lig2 = 2
col = 1: k = 1
num = Feuil1.Cells(lig, 1)
Do While Feuil1.Cells(lig, 1) <> ""
If Feuil1.Cells(lig, 1) = "" Then Exit Do
If Feuil1.Cells(lig, 1) = num Then
Feuil2.Cells(lig2, col) = Feuil1.Cells(lig, k)
col = col + 1: k = 2: lig = lig + 1
Else
num = Feuil1.Cells(lig, 1)
k = 1: lig2 = lig2 + 1: col = 1
End If
Loop
End Sub

"cousinhub" a écrit dans le message de
news:
Bonsoir,
j'aurais besoin de vos avis éclairés pour résoudre un problème que j'ai du
mal à résoudre.
Dans mon fichier, onglet "reference", j'ai une liste de 53 000 numéros
avec
les codes correspondants.
certains numéros peuvent avoir plusieurs codes.
dans l'onglet "personnel", j'ai une liste de 11 000 numéros et dont je
n'ai
pas les codes.
j'aimerai obtenir dans mon onglet personnel les codes liés aux numéros
présents, tout ceci par macro.
ci-joint un exemple : http://cjoint.com/?kttV52RCjA
Merci de votre aide







Avatar
AV
Regarde l'exemple là :

http://cjoint.com/?kui4qZswu8

AV
Avatar
cousinhub
Merci beaucoup.
Cependant, avec ta solution, les données issues de mon onglet perso et qui
n'ont pas d'équivalence dans l'onglet de référence disparaissent.
J'ai trouvé une autre solution, mais je suppose qu'on doit pouvoir gangner
quelques instructions : http://cjoint.com/?kuuTT6TFgg
Merci quand même
bonne soirée


Bonsoir,
j'aurais besoin de vos avis éclairés pour résoudre un problème que j'ai du
mal à résoudre.
Dans mon fichier, onglet "reference", j'ai une liste de 53 000 numéros avec
les codes correspondants.
certains numéros peuvent avoir plusieurs codes.
dans l'onglet "personnel", j'ai une liste de 11 000 numéros et dont je n'ai
pas les codes.
j'aimerai obtenir dans mon onglet personnel les codes liés aux numéros
présents, tout ceci par macro.
ci-joint un exemple : http://cjoint.com/?kttV52RCjA
Merci de votre aide


Avatar
AV
Cependant, avec ta solution, les données issues de mon onglet perso et qui
n'ont pas d'équivalence dans l'onglet de référence disparaissent.


Ca m'étonnerait !
Tu es victime d'un micro-climat
M'est avis que tu n'as pas du tester...

J'ai trouvé une autre solution,


Ha bon ? Tu es sur de l'avoir testée ?
Bon, si ça te convient ....

AV

Avatar
JB
Bonjour,

http://cjoint.com/?kvjvRDNb0c

Solution1:

Application.ScreenUpdating = False ' 1 seconde pour 5000 lignes
ligPers = 2
ligRef = 2
Do While ligRef <= [A65000].End(xlUp).Row
numéro = Cells(ligRef, 1)
Sheets("personnel").Cells(ligPers, 1) = Cells(ligRef, 1)
c = 2
Do While Cells(ligRef, 1) = numéro
Sheets("personnel").Cells(ligPers, c) = Cells(ligRef, 2)
c = c + 1
ligRef = ligRef + 1
Loop
ligPers = ligPers + 1
Loop

Solution2:on ne supprime pas les codes de personnel qui n'ont pas de
référence dans References

Application.ScreenUpdating = False
Sheets("personnel").Select
Set champReferences = Sheets("references").[A2:A65000]
ligPers = 2
Do While ligPers <= [A65000].End(xlUp).Row
code = Cells(ligPers, 1)
Position = Application.Match(code, champReferences, 0)
If Not IsError(Position) Then
c = 1
Do While Sheets("references").Cells(Position + c, 1) = code
Cells(ligPers, c + 1) = Sheets("references").Cells(Position + c
+ 1, 2)
c = c + 1
Loop
End If
ligPers = ligPers + 1
Loop

Cordialement JB

Bonsoir,
j'aurais besoin de vos avis éclairés pour résoudre un problème qu e j'ai du
mal à résoudre.
Dans mon fichier, onglet "reference", j'ai une liste de 53 000 numéros avec
les codes correspondants.
certains numéros peuvent avoir plusieurs codes.
dans l'onglet "personnel", j'ai une liste de 11 000 numéros et dont je n'ai
pas les codes.
j'aimerai obtenir dans mon onglet personnel les codes liés aux numéros
présents, tout ceci par macro.
ci-joint un exemple : http://cjoint.com/?kttV52RCjA
Merci de votre aide


Avatar
JB
http://cjoint.com/?kvjNkUmXdA

JB


Bonsoir,
j'aurais besoin de vos avis éclairés pour résoudre un problème qu e j'ai du
mal à résoudre.
Dans mon fichier, onglet "reference", j'ai une liste de 53 000 numéros avec
les codes correspondants.
certains numéros peuvent avoir plusieurs codes.
dans l'onglet "personnel", j'ai une liste de 11 000 numéros et dont je n'ai
pas les codes.
j'aimerai obtenir dans mon onglet personnel les codes liés aux numéros
présents, tout ceci par macro.
ci-joint un exemple : http://cjoint.com/?kttV52RCjA
Merci de votre aide


Avatar
cousinhub
Bonjour,
tout d'abord merci pour bien vouloir passer un peu de ton temps à mon
problème, cependant, habitant en bretagne, le micro-climat, je connais pas
trop. et je confirme que certains numéros de ma bd "personnel" n'ayant pas de
codes dans la bd "references" n'apparaissent plus après l'exécution de ta
macro.
Pour ma solution, j'ai effectivement un problème, c'est avec la méthode
.Find, j'ai oublié le Lookat:=whole
Merci encore

Cependant, avec ta solution, les données issues de mon onglet perso et qui
n'ont pas d'équivalence dans l'onglet de référence disparaissent.


Ca m'étonnerait !
Tu es victime d'un micro-climat
M'est avis que tu n'as pas du tester...

J'ai trouvé une autre solution,


Ha bon ? Tu es sur de l'avoir testée ?
Bon, si ça te convient ....

AV






Avatar
cousinhub
Bonjour JB,
merci beaucoup pour ta solution, effectivement, ave la deuxième proposition,
c'est exactement ce qu'il me faut. avec ta macro, les 5000 lignes en 3
secondes et des poussières, avec la mienne, 71 secondes. La méthode "loop
while" est donc bien plus rapide que "For each"
Merci beaucoup
Ps : je suis un grand fan de toutes tes explications et autres
démonstrations que tu nous permets de tester et utiliser via le site
"excelabo"


http://cjoint.com/?kvjNkUmXdA

JB


Bonsoir,
j'aurais besoin de vos avis éclairés pour résoudre un problème que j'ai du
mal à résoudre.
Dans mon fichier, onglet "reference", j'ai une liste de 53 000 numéros avec
les codes correspondants.
certains numéros peuvent avoir plusieurs codes.
dans l'onglet "personnel", j'ai une liste de 11 000 numéros et dont je n'ai
pas les codes.
j'aimerai obtenir dans mon onglet personnel les codes liés aux numéros
présents, tout ceci par macro.
ci-joint un exemple : http://cjoint.com/?kttV52RCjA
Merci de votre aide