XL 2013 Ventilation des montants sur un mois précis

an@s

XLDnaute Occasionnel
Bonjour à tous,
je reviens vers vous pour solliciter votre aide concernant ma problématique de ventilation des montants.
dans le fichier ci-joint j'ai une feuille RECAP qui englobe toutes les données qui seront dispatchées dans les autres feuilles.

j'aimerais avoir un code qui me permettra lorsque je renseigne le mois souhaité dans K1 (Feuille RECAP) de :

  1. Ventiler les données de la colonne C de la feuille Recap dans la feuille Concernée en se basant sur le code de la colonne D qui est le même nom de la feuille de destination
  2. Ventiler les montants de la colonne E de la feuille RECAP dans le même mois que K1 dans la feuille concernée en se basant sur le code de la colonne D qui est le même nom de la feuille de destination
  3. dans la colonne AO je dois avoir les mêmes montants copiés automatiquement comme j'ai fait manuellement en renseignant le nom du mois dans la cellule AO2
  4. dans la colonne AP je dois avoir les montants du même mois mais de l'année précédente c'est à dire les mois qui sont entre N & Y

Exemple: dans K1 j'ai mis Juin-2018 donc dans la feuille DT par exemple les montants des colonnes C & E (feuille recap) sont mentionnés dans les colonnes C & G .
puis les mêmes données de la colonne G (feuille DT) sont mentionnées dans AO en mettant dans AO2 le nom du mois et l'année.
ensuite les données du même mois mais de l'année écoulée sont mentionnées dans AP en mettant dans AP2 le nom du mois et lannée.

NB: de préférence que les données du tableau AN: AS soit en valeur et pas en formule

Merci d'avance pour votre aide

Cordialement
An@s
 

Pièces jointes

  • FG.xlsm
    36.4 KB · Affichages: 19

job75

XLDnaute Barbatruc
Voyez donc ce fichier (4) et cette dernière macro :
Code:
Sub Import_Budget_Moins1()
Dim fichier$, tablo, d As Object, i&, e, F As Worksheet, a, b()
fichier = ThisWorkbook.Path & "\Budget -1.xlsx" 'à adapter
Application.ScreenUpdating = False
On Error Resume Next
With Workbooks.Open(fichier)
    tablo = .Sheets(1).[A1].CurrentRegion 'matrice, plus rapide
    .Close False
End With
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
For i = 2 To UBound(tablo): d(tablo(i, 4)) = "": Next
For Each e In d.keys
    Set F = Nothing: Set F = Sheets(e)
    a = F.Range("A3", F.Range("A" & F.Rows.Count).End(xlUp)(3)) 'matrice, plus rapide, au moins 2 éléments
    ReDim b(1 To UBound(a) - 2, 1 To 12) 'tableau pour les 12 mois
    d.RemoveAll
    For i = 1 To UBound(b): d(a(i, 1)) = i: Next 'mémorise le LIBELLE et la ligne
    For i = 2 To UBound(tablo)
        If tablo(i, 4) = e Then If d.exists(tablo(i, 3)) Then _
            b(d(tablo(i, 3)), tablo(i, 6)) = b(d(tablo(i, 3)), tablo(i, 6)) + tablo(i, 7)
    Next i
    '---restitution---
    With F.[N3] 'à adapter éventuellement
        .Resize(UBound(b), 12) = b
    End With
Next e
End Sub
 

Pièces jointes

  • FG(4).xlsm
    56.6 KB · Affichages: 16
  • Budget -1.xlsx
    15.6 KB · Affichages: 7

an@s

XLDnaute Occasionnel
Re-bonjour Job, le forum
merci beaucoup pour la promptitude de vos réponses.
j'ai fait un test général et tout fonctionne comme souhaité sauf que j'ai remarqué un souci au niveau du code import budget 1
comme vous pouvez remarquer sur le fichier ci-joint il a importé dans la colonne AK de la feuille DM les données de la colonne F (colonne SAT) au lieu de la colonne F (colonne DM)

1-exemple : au lieu qu'il mette dans AK4 860 880 de la colonne E (feuille budget1) il a mentionné 503 000 de la colonne F (feuille Budget1)
2-exemple: au lieu qu'il mette dans AK5 174 373 de la colonne E (feuille budget1) il a mentionné 5000 de la colonne F (feuille Budget1)

je ne sais pas d'ou vient le problème ?

Cordialement
An@s
 

Pièces jointes

  • FG(4).xlsm
    54.2 KB · Affichages: 11
  • Budget 1.xlsx
    13.8 KB · Affichages: 10

job75

XLDnaute Barbatruc
Bah en F1 du fichier Budget 1.xlsx il est écrit "SAT" alors que la feuille du fichier FG(4).xlsm s'appelle "SAV".

Et en G1 et I1 il est écrit 2 fois "RVM" et pas "VP"...

Pour éviter d'entrer des montants erronés je viens d'ajouter Set F = Nothing dans la macro Import_Budget_1 du fichier (4) post #16.
 

an@s

XLDnaute Occasionnel
Bonsoir Job, le forum

j'ai rajouté un code qui permet d'exporter tout les onglets du classeur sauf la feuille RECAP,
est ce que ce serait possible de rectifier le code pour qu'il n'exporte entre les colonne B et M que les données du mois concerné qui correspond à K1 de la feuille RECAP.

Exemple:
1-pour la feuille DT le code exportera toute les données sauf les données des colonnes E & G en gardant celles de J puisque K1 de la feuille recap correspond au même mois de la colonne J

2-pour la feuille DP le code exportera toute les données sauf les données des colonnes H & L en gardant celles de J puisque K1 de la feuille recap correspond au même mois de la colonne J
 

Pièces jointes

  • FG(4).xlsm
    53.7 KB · Affichages: 9

Discussions similaires

Réponses
2
Affichages
132

Statistiques des forums

Discussions
311 740
Messages
2 082 047
Membres
101 880
dernier inscrit
Anton_2024