Contrôler les valeurs en + ou en - dans diverses feuilles Excel

Bonjour,

j'ai un fichier excel comme celui en PJ qui affiche dans differentes feuilles Excel des valeurs dans 4 Colonnes.

Les 2 premieres colonnes des 3 premieres feuilles sont les valeurs brutes recupérée dans une base.

On compare des valeurs dans un referent (colonne "REF.RC") a celle de la colonne "REF.BBG".

J'aimerai obtenir une macro qui va creer une derniere feuille nommée "RECAP", va renseigner les differentes colonnes comme vous pourrez le voir dans le fichier (feuille "RECAP) et va recuperer dans les differentes feuilles les valeurs qui sont en plus ou en moins dans les colonnes "REF.RC" par rapport aux colonnes "REF.BBG".

Je note que dans la feuille RECAP, je dois remplir les colonnes "CFIN" et "BBG" avec les noms des feuilles de telle sorte que la colonne "CFIN" contienne les chiffres a droite du tiret "-" et la colonne "BBG" contienne la valeur a gauche du tiret

Je met le fichier en pj pour plus de visibilité

merci

9testons.xlsm (11.17 Ko)

Bonjour

Un essai à tester. Te convient-il ?

5testons-v1.xlsm (26.73 Ko)

Bye !

Bonjour

Merci pour la macro c'est ce que je cherche je vaius la tester sur mon fichier final

Stp pourrais tu ajouter quelques commentaires afin que je puisse bien comprendre le code stp ? je suis debutant

Merci

Option Explicit

Dim f As Worksheet, dico1, dico2, tablo, tablor()

Dim i&, k&, flag&

Sub comparer()

'ajoute la feuille RECAP à la fin du Classeur'

Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Recap"

Sheets("Recap").Range("A1") = "CFIN"

Sheets("Recap").Range("B1") = "BBG"

Sheets("Recap").Range("C1") = "En + RF"

Sheets("Recap").Range("D1") = "En - RF"

Worksheets("Recap").Activate

Set dico1 = CreateObject("Scripting.Dictionary")

Set dico2 = CreateObject("Scripting.Dictionary")

k = 0

For Each f In Worksheets

If f.Name <> "Recap" Then

tablo = f.Range("A1").CurrentRegion

For i = 2 To UBound(tablo, 1)

dico1(tablo(i, 3)) = tablo(i, 3)

dico2(tablo(i, 4)) = tablo(i, 4)

Next i

For i = 2 To UBound(tablo, 1)

flag = 0

If Not dico2.exists(tablo(i, 3)) And tablo(i, 3) <> "" Then

ReDim Preserve tablor(1 To 4, 1 To k + 1)

tablor(1, k + 1) = Split(f.Name, "-")(0)

tablor(2, k + 1) = Split(f.Name, "-")(1)

tablor(3, k + 1) = dico1(tablo(i, 3))

flag = 1

End If

If Not dico1.exists(tablo(i, 4)) And tablo(i, 4) <> "" Then

ReDim Preserve tablor(1 To 4, 1 To k + 1)

tablor(1, k + 1) = Split(f.Name, "-")(0)

tablor(2, k + 1) = Split(f.Name, "-")(1)

tablor(4, k + 1) = dico2(tablo(i, 4))

flag = 1

End If

If flag = 1 Then k = k + 1

Next i

End If

dico1.RemoveAll

dico2.RemoveAll

Next f

Sheets("RECAP").Range("A1").CurrentRegion.Offset(1, 0).ClearContents

Sheets("RECAP").Range("A2").Resize(UBound(tablor, 2), 4) = Application.Transpose(tablor)

'debug.Print variable'

End Sub

Bonjour

Le même avec macro commentée.

6testons-v2.xlsm (28.25 Ko)

Bye !

Merci c'est parfait tout fonctionne a merveille

Rechercher des sujets similaires à "controler valeurs diverses feuilles"