Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

seb_abellano

XLDnaute Nouveau
Bonjour tout le monde,

j'aimerai effectuer une macro sous excel pour effectuer une conciliation bancaire, en fait il s'agirait ni plus ni moins de trouver les doublons mais en l'améliorant un peu (et c'est la ou je coince).

Je m'explique:

j'ai 3 colonnes disons colonne E, F et J: la colonne E est la liste de paiements effectués, la colonne F est celle des paiements reçus et la colonne J la colonne de comptabilité qui regroupe "normalement" les 2 premières colonnes.

Je vous copie la macro que j'ai effectuée:

Sub Essai()

Dim rngA As Range
Dim rngB As Range

Set rngE = Range(Cells(3, "E"), Cells(Rows.Count, "E").End(xlUp))
Set rngJ = Range(Cells(3, "J"), Cells(Rows.Count, "J").End(xlUp))
Set rngF = Range(Cells(3, "F"), Cells(Rows.Count, "F").End(xlUp))

For Each cell In rngE
If Not IsError(Application.Match(cell.Value, rngJ, 0)) Then
Cells(cell.Row, "E").Interior.ColorIndex = 4

End If
Next

For Each cell In rngJ
If Not IsError(Application.Match(cell.Value, rngE, 0)) Then
Cells(cell.Row, "J").Interior.ColorIndex = 4

End If

Next

For Each cell In rngF
If Not IsError(Application.Match(cell.Value, rngJ, 0)) Then
Cells(cell.Row, "F").Interior.ColorIndex = 4

End If
Next

For Each cell In rngJ
If Not IsError(Application.Match(cell.Value, rngF, 0)) Then
Cells(cell.Row, "J").Interior.ColorIndex = 4

End If

Next

End Sub

Le problème avec cette macro c'est que je colorie tous les doublons. et mon but serait de trouver seulement les doublons uniques.

voilà ce que j'obtiens avec ma macro:


Paiements effectués; Paiements reçus; comptabilité
100; 200; 200
200; 400; 300
300; 500; 400
1000; 122; 1000
122; 3; 600
1; 2; 300


En fait j'aimerai avoir ceci:

Paiements effectués; Paiements reçus; comptabilité
100; 200; 200
200; 400; 300
300; 500; 400
1000; 122; 1000
122; 3; 600
1; 2; 300


Cas 1 : Quand un même nombre est trouvé plus que 2 fois colorier la cellule en rouge (à vérifier conilier manuellement)
Cas 2 : Quand un nombre est trouvé 1 seule fois entre la colonne 3 et 1 ou 3 et 2 colorier en vert (conciliation automatique), la colonne 3 étant la colonne de référence. Attention je complique si l'on Trouve par exemple 3 fois le nombre 250 dans la colonne 3 et qu'il apparait "seulement" 3 fois entre les colonnes 1 et 2 colorié aussi en vert.
Cas 3 : Quand un nombre est trouvé 1 seule fois entre la colonne 1 et 2 (sans apparaitre dans colonne 3 sinon on se retrouve dans le premier cas ) colorier en bleu.

Je suis vraiment bloqué avec cette macro si quelqu'un pouvait me donner au moins une piste, je crois que je m'y prends mal... mais j'ai vraiment besoin de cette macro car j'ai des milliers de lignes à traiter chaque mois et cela prend un temps fou!!

j'espère avoir été assez claire

Merci par avance de votre aide !!!

seb
 
Re : conciliation

Salut Seb_Abellano,

Après avoir planché pas mal de minutes 😀 je pense avoir trouvé la solution 😉

Pour chaque cellule de chaque colonne j'évalue le nombre d'occurence dans chaque colonne de la valeur en cours.

Je compare le résultat obtenu selon les indications que tu as donné

Voir fichier joint

A+
 

Pièces jointes

Re : conciliation

Salut BrunoM45 !

Désolé du retard mais comme je te le disais les fins de mois me sont fatales... et j'étais en déplacement cette semaine...😱

j'ai bien regardé ton fichier et "essayé" 😕 de comprendre le code mais c'est pas encore ça...😀

Enfin, le fichier est "presque" parfait mais il manque une condition...et comme j'ai pas tout compris...je sais pas ni où ni comment la rajouter...

je joins de nouveau le fichier si tu peux jeter un cou d'oeil...🙂

merci d'avance pour ta patience...et moi faut que j'apprenne vite car ça donne envie d'en faire des macros...des idées il m'en vient tout les jours...😀

j'espère avoir été clair dans le fichier...

a +
 

Pièces jointes

Re : conciliation

Re,

Tu viens de me faire gagner un truc comme 5 heures de travail !!!
Oui, c'est clair que le VBA peut faire gagner beaucoup de temps.

A mon boulot, j'ai développé pas mal de choses,
notamment pour les reporting économiques, qui prenait une journée entière à mon collègue
(saisie, pointage, vérification, ...)
Avec un peu (beaucoup) de code, il clique sur un bouton, ça met 10 minutes

Aïe Bruno j'ai un petit problème serait-il possible que la macro ne prenne pas les chiffre à virgule...???
On dirait que dès que les nombre sont décimaux, il y a un debogage...
Oui effectivement, il suffit de changer le type de variable des FoundX

Code:
Dim FoundE As Double, FoundJ As Double, FoundF As Double

As Integer c'est pour des entiers !

A+ 😉
 
Dernière modification par un modérateur:
Re : conciliation

Re,

Un point ce n'est pas la séparation décimal, c'est la virgule !

Sinon tu mets :
Code:
Dim FoundE, FoundJ, FoundF
tout simplement.

A+
 
Re : conciliation

re,

C'est vrai que c'est étrange !?
Ca ne marche pas non plus chez moi avec : 1,2 🙄

Pour y remédier, il faut transformer la valeur à chercher au format anglais, avec un point à la place de la virgule

Essaye ce fichier ..

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
213
Réponses
4
Affichages
457
Réponses
1
Affichages
452
Réponses
0
Affichages
367
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
481
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…