ITFR
Messages postés4Date d'inscriptionjeudi 20 avril 2006StatutMembreDernière intervention25 avril 2006
-
20 avril 2006 à 14:00
rvblog
Messages postés792Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention12 juin 2012
-
25 avril 2006 à 09:42
Bonjours,
Voilà mon problème j'ai deux classeurs excel > (1)mat_te.xls et (2)mat_sc.xls
Classeur (1) colonne A> N° Article
B>Vide
C>Prix
Classeur (2) colonne A > Pst
B> XYZ
C> N° Article
Comment créer une macros qui me permet de connaitre les no article identique dans les deux classeurs et affiche le résultat dans le classeur 1 colonne B ???
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 20 avril 2006 à 14:36
Salut,
j'ai bien une technique, mais qui est relativement lourde, (en mémoire et en temps de recherche suivant le nombre de données) :
Sub Cherche_Doublons()
Dim PremLiVide As Long, PremLiVide2 As Long, i as Long
PremLiVide = Columns(1).Find ("", [A1], , , xlByRows, xlNext).Row
Dim NbArticleClasseur1(2 to PremLiVide) As String, n As Long, z as long, j as long
For i = 2 To PremLiVide
NbArticleClasseur1(i) = Cells(i, 1).Value
Next i
WorkBook(mat_sc.xls).Select
PremLiVide2 = Columns(3).Find ("", [C1], , , xlByRows, xlNext).Row
______________________________________________________________________
On Error Resume Next
n = 2
z = 1
BoucleX:
For j = 2 To PremLiVide2
If Cells(j, 3).Value = NbArticleClasseur1(n) then
WorkBook(mat_te.xls).Sheets(1).Range("B" & z).Value = NbArticleClasseur1(n)
z = z + 1
Exit For
End If
Next j
If n < PremLiVide2 then
n = n + 1
GoTo BoucleX
End If
On Error Goto 0
WorkBook(mat_te.xls).Select
End Sub
Je n'ai pas pu le tester car je suis au taf mais s'il y des erreurs qui apparaissent, ça te fait déjà une base.
dans un autre registre de solution, un formule de cellule Excel (que tu répèterais pour toute la hauteur de la colonne la + grande) pourrait te remplir une 3ème colonne avec les identifiants que tu trouves dans les 2 colonnes observées :
=SI(ESTERREUR(EQUIV(C1;$A$1:$A$10;0));"";C1)
où A1:A10 est la 1ère colonne (1er classeur dans ta question), C1:C10 est la 2ème colonne (2ème classeur). La valeur de résultat de cette formule, pour la cellule courante, est l'identifiant de la colonne 1 s'il est dans les 2 colonnes, et rien sinon.
A toi de l'adapter pour atteindre ton but.
à+
rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais... mais jamais avant la page 4
</SUP>
752628 ITFR, merci d'en dire un peu plus que "Les deux solutions ne fonctionnent pas !!!!", ça pourrais nous aider (et donc t'aider).
Ta demande avait peut-être l'air précise pour toi, mais ma réponse est, à mes yeux, un peu plus précise qu'elle.
En effet, dans ma réponse, je te signale que cette formule travaille avec 2 colonnes sources de la même feuille, et 1 colonne résultat de la même feuille aussi (et qu'il faut donc que tu l'adaptes à ton cas, classeurs multiples).
Je t'y signale aussi que cette formule met en évidence, dans la 3ème colonne, les valeurs de la 2ème colonne que l'on trouve exister dans la 1ère. Et pour ce but, elle fonctionne!
Ta demande laisse des questions sans réponses (et ta réponse aussi) :
"Comment créer une macros qui me permet de connaitre les no article identique dans les deux classeurs et affiche le résultat dans le classeur 1 colonne B ???".
Que sont, pour toi, des no articles identiques? Des cellules de 2 colonnes différentes (dans 2 classeurs différents), sur le même indice de ligne, qui ont une valeur identique? ou qui ont une valeur identique sans tenir compte de l'indice de ligne? autre spécifications?
Allez, fais un effort, tu as écris 11 lignes (et c'est toi qui a le problème), =647037 mortalino a écrit 31 lignes, et moi 26 (et on n'a vraissemblablement pas la solution). As-tu un problème de clavier? de doigts? :)
à+ (on attend)
rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais... mais jamais avant la page 4
</SUP>
Vous n’avez pas trouvé la réponse que vous recherchez ?