[Excel] besoin d'aide pour formule de recherche

besoin d'aide pour formule de recherche [Excel] - Divers - Programmation

Marsh Posté le 22-11-2002 à 17:59:05    

Bonjour, désolé je ne savais pas ou mettre cette demande, et comme c'est un petit peu de la prog j'ai décidé de la mettre ici.
 
Voila mon problème.
 
Chaque mois je reçois deux listes Excell de plus de 500 entrés.
 
Dans chacune des listes j'ai des clients. ma 1ière liste est à titre informatif car elle comporte tout les clients.
 
Parcontre je dois trouver les clients qui sont dans la 1ière liste mais qui ne sont pas dans la 2ième liste et généré une nouvelle liste avec le numéro des clients manquant (ils sont identifié par un numéro)
 
Comment puis-je automatiser ce processus, j'ai bien essayer avec les formules recherche et recherchev mais je n'ai pas réussi ...
 
merci d'avance!

Reply

Marsh Posté le 22-11-2002 à 17:59:05   

Reply

Marsh Posté le 02-12-2002 à 01:59:11    

belzME a écrit a écrit :

Bonjour, désolé je ne savais pas ou mettre cette demande, et comme c'est un petit peu de la prog j'ai décidé de la mettre ici.
 
Voila mon problème.
 
Chaque mois je reçois deux listes Excell de plus de 500 entrés.
 
Dans chacune des listes j'ai des clients. ma 1ière liste est à titre informatif car elle comporte tout les clients.
 
Parcontre je dois trouver les clients qui sont dans la 1ière liste mais qui ne sont pas dans la 2ième liste et généré une nouvelle liste avec le numéro des clients manquant (ils sont identifié par un numéro)
 
Comment puis-je automatiser ce processus, j'ai bien essayer avec les formules recherche et recherchev mais je n'ai pas réussi ...
 
merci d'avance!




 
supposons que ta liste complete se trouve en A1:Ay
   ta liste partielle en                     B1:Bx
 
dim complete(),partielle(),absent()
// nbc et nbp nombres d'elements respectifs des colonnes
nbc=sheets("feuil1" ).range("A1" ).end(xldown).row
nbp=sheets("feuil1" ).range("B1" ).end(xldown).row
redim complete(nbc-1)
redim partielle(nbp-1)
 
// on met la colonne A en tableau
for i=0 to nbc-1
nbc(i)=sheets("feuil1" ).range("A1" ).offset(i)
next
// on met la colonne B en tableau
for i=0 to nbp -1
nbp(i)=sheets("feuil1" ).range("B1" ).offset(i)
next
 
for i=0 to nbp-1
for j=0 to nbc -1
if nbc(j)=nbp(i) then nbc(j)=""// on met a rien les cases du  
next                           // tableau complet qui correspond
next                           // au tableau partiel  
 
// on trouve maintenant les absents :
c=0
redim absent(nbc-nbp)//nbc-nbp = nombre d'absents
for i=0 to nbc-1    // on parcours la liste complete  
 if nbc(i)<>"" then // les absents sont les cases non vides
   absent(c)=nbc(i)
   c=c+1
 end if
next
 
// on met les absents en colonne C:
for i=0 to nbc-nbp-1
sheets("feuil1" ).range("C1" ).offset(i)=absent(i)
next
 
 
 
voila! pas testé mais ça devrait etre correct

Reply

Marsh Posté le 02-12-2002 à 11:34:52    

apres avoir testé,il y avait kk petites erreurs voici
la correction:
 
 
Sub chercheabsents()
Dim complete(), partielle(), absent()
nbc = Sheets("feuil1" ).Range("A1" ).End(xlDown).Row
nbp = Sheets("feuil1" ).Range("B1" ).End(xlDown).Row
ReDim complete(nbc - 1)
ReDim partielle(nbp - 1)
 
For i = 0 To nbc - 1
complete(i) = Sheets("feuil1" ).Range("A1" ).Offset(i)
Next
 
For i = 0 To nbp - 1
partielle(i) = Sheets("feuil1" ).Range("b1" ).Offset(i)
Next
 
For i = 0 To nbp - 1
For j = 0 To nbc - 1
If complete(j) = partielle(i) Then complete(j) = ""
Next
Next
c = 0
ReDim absent(nbc - nbp)
For i = 0 To nbc - 1
If complete(i) <> "" Then
absent(c) = complete(i)
c = c + 1
End If
Next
 
For i = 0 To nbc - nbp - 1
Sheets("feuil1" ).Range("c1" ).Offset(i) = absent(i)
Next
 
End Sub

Reply

Marsh Posté le 03-12-2002 à 14:35:36    

Wow merci bcp c'estplus que ce que je demandais.

Reply

Marsh Posté le 03-12-2002 à 16:18:14    

BelzME a écrit a écrit :

Wow merci bcp c'estplus que ce que je demandais.



a ton service si tu as d'autres questions n'hesite pas

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed