Rechecher la ligne correspandante et detecter les erreurs par cellules

mehdi198

XLDnaute Nouveau
bonjour,
je suis un nouveau stagière chez une grande boite de gestion d'actifs et je suis sur un projet de detection d'erreur et de comparaison.
mon souci est le suivant :

7 colonnes :

Date1 / date2 /date3 / devise1(EUR,GBP..) /NOminal1/devise2/NOMINAL2
ligne 2 ---> 80

ET UN PEU EN BAS VERS LA LIGNE 100 ---> 200 sur les memes colonnes des deals de la contrepartie mais un peu mélanger donc je voudrai par exemple pour la ligne 2 que mon programme recheche cette ligne et detecte ou existe l'erreur sachant que des fois des cellules sont exacts et d'autres sont fausses et des fois le nominal 1 = nominal 2 chez la contrepartie les devises inversées et sa contrevaleur n'est pas tjs la meme, j'aimerai que la detection soit avec des couleurs et plein de trucs.



je suis vraiment à court d'idées.

je vous joint un exemple xls si vous pouvez me filer un coup de pouce et merci.
 

Pièces jointes

  • Clas.xls
    36 KB · Affichages: 49
  • Clas.xls
    36 KB · Affichages: 47
  • Clas.xls
    36 KB · Affichages: 51
Dernière édition:

JCGL

XLDnaute Barbatruc
Re : Rechecher la ligne correspandante et detecter les erreurs par cellules

Bonjour à tous,

Un essai sans grande conviction....

Utilisation de :

Code:
{=NB.SI(A2:G2;A100:G100)}
Code:
=SI(H100=0;SI(OU(D2<>D100;F2<>F100);1;0);"")


Il a surement beaucoup à revoir...


A+ à tous
 

mehdi198

XLDnaute Nouveau
Re : Rechecher la ligne correspandante et detecter les erreurs par cellules

je sais c'est un peu chelou mais j'ai réalisé une macro qui renvoie ces couleurs la dans l'exemple c'est plutot pas mal mais du coup je me suis rendu compte qu'elle fait juste de rechercher les nombres ou bien les dates qui existe dans la première partie suivant chaque colonne et c'est tt.
 

mehdi198

XLDnaute Nouveau
Re : Rechecher la ligne correspandante et detecter les erreurs par cellules

pour répondre sur la question des dates, il sont souvent du genre 17-dec-09 mais je pense pas que c'est la d'où vient le prob.

je cherche à détecter en premier lieu le meme deal des deux cotés , j'ai pensé à un truc comme un arbre mais aucune solution niveau code....!,

c'est en fixant la première variable(date1 ///de la 1ère ligne), on peut détecter si elle existe de l'autre coté dans la même colonne si oui il met cette cellule en jaune sinon il saut jusqu'à la fin de cette colonne puis on passe à la deuxième colonne (date2//// pour la 1ère ligne ) il cherche la même date jusqu'à la fin elle la met en jaune meme s'il y aura des doublons et ainsi de suite jusqu'a la fin de toute les colonnes et compte le nombre maximum de jaunes de chaque lignes si le nombre de jaune >2 il prend en considération que c la bonne ligne sinon il laisse tomber cette ligne et il efface les jaunes de toutes les autres lignes et il continu ....

je sais que c'est un peu trop lourd tout ca mais je serai très reconnaissant d'une autre idée ou une idée complémentaire

merci.
 

mehdi198

XLDnaute Nouveau
Re : Rechecher la ligne correspandante et detecter les erreurs par cellules

Bonjour ,

Je vous propose de voir le code ainsi que le résultat obtenu par mon code sous xls.



mon code :
------------------------------------------------------------------------
Code:
Sub compar()

Dim i, j, k1, k2 As Integer
Feuil1.Select
k1 = Range("A1").End(xlDown).Offset(1, 0).Row
k2 = Range("A100").End(xlDown).Offset(1, 0).Row

Application.ScreenUpdating = False

For i = 2 To k1 - 1
    For j = 100 To k2 - 1

If Range("A" & i).Value = Range("A" & j).Value Then
       Range("A" & j).Interior.Color = vbYellow
End If
               
If Range("B" & i).Value = Range("B" & j).Value Then
      Range("B" & j).Interior.Color = vbYellow
End If
                
If Range("C" & i).Value = Range("C" & j).Value Then
       Range("C" & j).Interior.Color = vbYellow
End If


If Abs(Range("E" & i).Value) = Abs(Range("E" & j).Value) Then
      Range("G" & j).Interior.Color = vbYellow
End If
     
 If Abs(Range("E" & i).Value) = Abs(Range("G" & j).Value) Then
         Range("G" & j).Interior.Color = vbGreen
 End If
      
      
If Abs(Range("G" & i).Value) = Abs(Range("E" & j).Value) Then
        Range("E" & j).Interior.Color = vbGreen
End If
        
If Abs(Range("G" & i).Value) = Abs(Range("G" & j).Value) Then
        Range("G" & j).Interior.Color = vbYellow
End If

 if Range("D" & i).Value = Range("D" & j).Value Then
       Range("D" & j).Interior.Color = vbYellow
       Range("F" & j).Interior.Color = vbYellow
End If
     
If Range("F" & i).Value = Range("F" & j).Value Then
    Range("F" & j).Interior.Color = vbYellow
    Range("D" & j).Interior.Color = vbYellow
 End If

If Range("D" & i).Value = Range("F" & j).Value Then
   Range("D" & j).Interior.Color = vbGreen
   Range("F" & j).Interior.Color = vbGreen
End If
  
   Next j
Next i


For i = 2 To k1 - 1
    For j = 100 To k2 - 1

If Range("E" & j).Interior.Color = vbWhite Or _ 
           Range("F" & j).Interior.Color = vbWhite Then
     
  If Abs(Range("E" & i).Value) = Abs(Range("E" & j).Value) Then
              Range("E" & j).Interior.Color = vbYellow
    ElseIf Abs(Range("E" & i).Value) = Abs(Range("G" & j).Value) Then
              Range("G" & j).Interior.Color = vbYellow
    ElseIf Abs(Range("G" & i).Value) = Abs(Range("G" & j).Value) Then
              Range("G" & j).Interior.Color = vbYellow
   ElseIf Abs(Range("G" & i).Value) = Abs(Range("E" & j).Value) Then
        Range("E" & j).Interior.Color = vbYellow
   Else

   Range("G" & j).Interior.Color = vbRed
   Range("E" & j).Interior.Color = vbRed

   End If
End If

Next j
Next i




'pour cette partie je n'ai pas de réaction sur la feuille
For i = 2 To k1 - 1
  For j = 100 To k2 - 1
     
     If Range("C" & i).Value = Range("B" & j).Value Then
      Range("B" & j).Interior.Color = vbGreen
   End If
      If Range("B" & i).Value = Range("B" & j).Value Then
       Range("B" & j).Interior.Color = vbYellow
    End If
Next j
Next i



Application.ScreenUpdating = True



End Sub

--------------------------------------

toute proposition sera la bienvenue et merci
 

mehdi198

XLDnaute Nouveau
Re : Rechecher la ligne correspandante et detecter les erreurs par cellules

je ne sais quoi vous dire que de vous remercier maintenant,et de vous souhaiter une bonne avancée dans vos recherches car je pense que dans ce forum,on trouve rarement se qu'on souhaite mais bon.
je vais utiliser mon code pour l'instant espérant avoir une autre solution de votre part.
 

JCGL

XLDnaute Barbatruc
Re : Rechecher la ligne correspandante et detecter les erreurs par cellules

Bonjour à tous,

Tom message n'incite pas à rechercher une solution.
Je te rappelle que nous sommes bénévoles et sans obligation de résultats.

Si tu trouves un autre Forum XL aussi fréquenté qu'XLD, merci de me le signaler.

Quand au :
car je pense que dans ce forum,on trouve rarement se qu'on souhaite mais bon.
Tout les participants de ce Forum apprécieront aussi bien les demandeurs que les répondeurs. Jugement sur six messages déposés...

A+ à tous
 

JCGL

XLDnaute Barbatruc
Re : Rechecher la ligne correspandante et detecter les erreurs par cellules

Bonjour à tous,

En ce qui me concerne, tu es excusé :).

Si je pouvais t'aider, je le ferai bien volontiers mais j'ai toujours un peu de mal à comprendre ta demande.

Encore une fois tes dates ne sont pas toutes des dates mais du texte : cela ne doit aider ton code à fonctionner

A++
A+ à tous
 
Dernière édition:

mehdi198

XLDnaute Nouveau
Re : Rechecher la ligne correspandante et detecter les erreurs par cellules

Pour le problème des lignes j'ai trouvé un moyen de resoudre le souci, c'est de recopier cette colonne dans une autre plus loin ( juste pour effectuer le calcul) et appliquer un split par "-" du genre où on obtient à la fin 3 colonnes séparées 30-aug-2009 = 30 | aug | 2009 et ainsi pour la deuxième colonne ("aug") excel reconnait que c'est bien des dates et on les regroupe après dans une seule colonne à l'aide des "&" exemple :
cells(i,1) = cells(i,44) &"/"& cells(i,45) &"/"& cells(i,46)
et de changer le format ensuite en 30/08/09.
 

mehdi198

XLDnaute Nouveau
Re : Rechecher la ligne correspandante et detecter les erreurs par cellules

j'espère pourra m'aider afin de trouver une autre solution pour mon problème de compaaison de ligne entre deux feuil selon plusieurs cellules de touver en premier lieu la ligne correspandante et de savoir dans les deux lignes est ce qu'il ya une difference ou pas ma macro à moi est fiable pour l'instant mais elle n'est pas solide du point de vu algorithmique.

exemple

FEUIL1 ||| FEUIL2


L1 ||| L1
L2 ||| L2
.. ||| ..
.. ||| ..
.. ||| ..
.. ||| ..
Ln ||| Lm

matcher les lignes sur 10 colonne,sachant qu'on peut trouver des lignes d'un coté et pas de l'autre coté,

nb : les deux feuilles ont les memes colonnes



je reste à votre disposition pour toute information complémentaire,et merci.
 

Discussions similaires

Statistiques des forums

Discussions
312 675
Messages
2 090 799
Membres
104 667
dernier inscrit
gwtr