XL 2013 Rapprochement

momo

XLDnaute Occasionnel
Bonjour à tous
Je voudrais savoir si il est possible de comparer le total d'un tableau (tableau détail) se trouvant sur onglet avec le montant inscrit dans un autre tableau (Tableau mère) et renvoyer un message, si le total est bon ou une alerte si il y a une différence.

Merci par avance
 

Pièces jointes

  • Test_V0.xlsm
    52.1 KB · Affichages: 28

job75

XLDnaute Barbatruc
Bonsoir momo,

Efforcez-vous d'écrire "Accueil" correctement...

Voyez le fichier joint et la macro du bouton "Vérif" du ruban :
Code:
'Callback for Vérif onAction
Sub Check(control As IRibbonControl)
Dim P As Range, w As Worksheet, i As Variant, j As Variant, test1 As Boolean, test2 As Boolean, mes$, n, s, s1
Set P = Sheets("Accueil").[B:B]
For Each w In Worksheets
    i = Application.Match(w.Range("A11"), P, 0) 'adapter au besoin
    j = Application.Match("Total", w.Columns("A"), 0)
    If IsNumeric(i) And IsNumeric(j) Then
        test1 = P(i, 2) = w.Cells(j, 2)
        test2 = P(i, 3) = w.Cells(j, 3)
        mes = IIf(mes = "", "", mes & vbLf) & w.Name & Chr(9)
        If test1 And test2 Then mes = mes & "Vérif Ok": n = n + 1
        If Not test1 Then mes = mes & "Erreur sur Année N": n = n + 1
        If Not test2 Then mes = mes & IIf(test1, "", vbLf & w.Name & Chr(9)) & "Erreur sur Année N-1": n = n + 1
    End If
Next
MsgBox mes
With Sheets("Verif")
   . [A:B].ClearContents 'RAZ
    If mes = "" Then Exit Sub
    s = Split(mes, vbLf)
    For i = 1 To n
        s1 = Split(s(i - 1), Chr(9))
        .Cells(i, 1) = s1(0)
        .Cells(i, 2) = s1(1)
    Next
End With
End Sub
Je rappelle que CAR(9) - Chr(9) - est le caractère de tabulation.

A+
 

Pièces jointes

  • Test_V1.xlsm
    71.7 KB · Affichages: 15
Dernière édition:

momo

XLDnaute Occasionnel
Bonsoir momo,

Efforcez-vous d'écrire "Accueil" correctement...

Voyez le fichier joint et la macro du bouton "Vérif" du ruban :
Code:
'Callback for Vérif onAction
Sub Check(control As IRibbonControl)
Dim P As Range, w As Worksheet, i As Variant, j As Variant, test1 As Boolean, test2 As Boolean, mes$, n, s, s1
Set P = Sheets("Accueil").[B:B]
For Each w In Worksheets
    i = Application.Match(w.Range("A11"), P, 0) 'adapter au besoin
    j = Application.Match("Total", w.Columns("A"), 0)
    If IsNumeric(i) And IsNumeric(j) Then
        test1 = P(i, 2) = w.Cells(j, 2)
        test2 = P(i, 3) = w.Cells(j, 3)
        mes = IIf(mes = "", "", mes & vbLf) & w.Name & Chr(9)
        If test1 And test2 Then mes = mes & "Vérif Ok": n = n + 1
        If Not test1 Then mes = mes & "Erreur sur Année N": n = n + 1
        If Not test2 Then mes = mes & IIf(test1, "", vbLf & w.Name & Chr(9)) & "Erreur sur Année N-1": n = n + 1
    End If
Next
MsgBox mes
With Sheets("Verif")
   . [A:B].ClearContents 'RAZ
    If mes = "" Then Exit Sub
    s = Split(mes, vbLf)
    For i = 1 To n
        s1 = Split(s(i - 1), Chr(9))
        .Cells(i, 1) = s1(0)
        .Cells(i, 2) = s1(1)
    Next
End With
End Sub
Je rappelle que CAR(9) - Chr(9) - est le caractère de tabulation.

A+
Bonsoir Job!

Merci pour le rappel sur le mot "Accueil", Erreur d'inattention

Un grand merci pour le code, j'ai essayé la première Version elle a vait marché au premier et plus au deuxième

la deuxième version est vraiment top! si seulement vous pouvez me donner des cours.... vous donnez vraiment envie d'apprendre

Par contre n'est il pas possible que la l'onglet vérif disparaisse à la fermeture du fichier
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 519
dernier inscrit
Thomas_grc11