Recuperer données d'un tableau selon filtre

40previsions.xlsm (489.23 Ko)
40previsions.xlsm (489.23 Ko)

Bonjour,

J'ai un tableau qui effectue des prévisions (onglet LES) sur lequelle je souhaite recuperer les données présentes pour fin 2016, 2017 et 2018 présentes sur l'onglet forecast.

Le probleme est que mon programme de prévisions ne sait effectuer des calculs que sur la reference presente en h10 sur l'onglet forecast ainsi je souhaite recuperer toutes les prévisions de toutes les references sur l'onglet arbitrage sur la partie en rouge.

J'ai donc créer une macro qui copie les informations en les transposant au format que je veux mais je n'arrive pas à garder ces informations et copier les previsions des autres references dans mon tableau arbitrage

Voici la macro :

Sub Macro14()

Dim C As Worksheet 'déclare la variable C (onglet Forecast)'

Dim T As Worksheet 'déclare la variable T (onglet Prévisions)

Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)

Set C = Sheets("Forecast")

Set T = Sheets("Prev")

Set DEST = T.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0) 'définit la cellule de destination DEST

C.Range("k14:k26py 'copie la plage F2:F9

DEST.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=True 'colle les valeurs de la plage dans DEST en transposant

End Sub

L'objectif est de récuperer l'ensemble des prévisions par réference ainsi passer d'une reference à une autre et coller les previsions de toutes les references dans un tableau.

Merci beaucoup pour votre aide !!!

Bonjour JP, bonjour le forum,

Jp1994 a écrit :

J'ai donc créer une macro qui copie les informations en les transposant au format que je veux mais je n'arrive pas à garder ces informations et copier les previsions des autres references dans mon tableau arbitrage

C'est toi qui a "créé" cette macro ?...

Non je l'ai trouve sur un forum elle ma donner de l'espoir neanmoins je n'arrive pas a l'adapter

Re,

Oui je savais, merci. Elle est de moi (je la reconnais aux commentaires)... C'est pour ça que le "créer" m'avait fait tiquer...

Fin 2016 ? En regardant le tableau de l'onglet Arbitrage- PR, j'ai compris qu'il s'agissait de novembre et décembre 2016...

2017, que signifie Q3 et Q4 ? Pourquoi n'y a-t-il pas tous les mois ?

2018, que signifie Q5 à Q8 ? Pourquoi n'y a-t-il pas tous les mois ?

Difficile de t'aider avec des données non cohérentes avec ta demande !...

Elle m'a beaucoup aide et donner d'espoir

Q4 etc corresponde a des trimestres neanmoins on peut aussi coller les donnes sur des annees 2016 2017 et 2018 et apres il sera pour moi tres facile de recuperer les donnees avec des sommes si en

Re,

Voilà une macro qui, dans l'état, ne fonctionne que partiellement à cause de tes histoires de Q... (si j'ose dire. Et j'ose!...). Il faudra que tu revois soit le code, soit le tableau...

Sub Macro1()
Dim A As Worksheet 'déclare la variable A (onglet Arbitrage- PR)
Dim F As Worksheet 'déclare la variable F (onglet Forecast)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)

Set A = Worksheets("Arbitrage- PR") 'définit l'onglet A
Set F = Worksheets("Forecast") 'définit l'onglet F
DL = A.Range("B" & Application.Rows.Count).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne B de l'onglet A
For I = 3 To DL 'boucle sur les lignes 3 à DL
    F.Range("H10").Value = A.Cells(I, 3) 'renvoie dans la cellule H10 de l'onglet F, la valeur de la cellule ligne I colonne 3 (=C) de l'onglet A
    Application.Wait (Now + TimeValue("0:00:1")) 'Attend 1 seconde pour que Excel ait le temps de refaire les calculs (cela ralenti considérablement l'exécution de la macro mais...)
    A.Cells(I, 10).Value = F.Range("J24") 'renvoie dans la cellule ligne I, colonne 10 (=J) de l'onglet A la valeur de la cellule J24 de l'onglet F
    A.Cells(I, 11).Value = F.Range("J25") 'renvoie dans la cellule ligne I, colonne 11 (=K) de l'onglet A la valeur de la cellule J25 de l'onglet F
    A.Cells(I, 12).Value = F.Range("K14") 'renvoie dans la cellule ligne I, colonne 12 (=L) de l'onglet A la valeur de la cellule K14 de l'onglet F
    A.Cells(I, 13).Value = F.Range("K15") 'renvoie dans la cellule ligne I, colonne 13 (=M) de l'onglet A la valeur de la cellule K15 de l'onglet F
    A.Cells(I, 14).Value = F.Range("K16") 'renvoie dans la cellule ligne I, colonne 14 (=N) de l'onglet A la valeur de la cellule K16 de l'onglet F
    A.Cells(I, 15).Value = F.Range("K17") 'renvoie dans la cellule ligne I, colonne 15 (=O) de l'onglet A la valeur de la cellule K17 de l'onglet F
    A.Cells(I, 16).Value = F.Range("K18") 'renvoie dans la cellule ligne I, colonne 16 (=P) de l'onglet A la valeur de la cellule K18 de l'onglet F
    A.Cells(I, 17).Value = F.Range("K19") 'renvoie dans la cellule ligne I, colonne 17 (=Q) de l'onglet A la valeur de la cellule K19 de l'onglet F
    'après avec ton système de Q3 etc... je ne vois plus comment faire !
Next I
End Sub

J'ai change la mise en forme pour integrer les données et supprimer q3 etc etc.

Un grand merci la macro fonctionne du tonnerre !

Par contre j'ai un petit probleme je ne sais pas si tu peux repondre quand je fais un tcd ou une extraction de données xml les données du mois de juillet sont toutes 0 alors que j'ai des chiffres différents je ne comprends pas d'ou vient le probleme...

Re,

Désolé mais je ne te serai d'aucune aide sur ce coup car j'ignore les deux procédures que tu utilises...

Aucun soucis, merci beaucoup pour ton aide !

Rechercher des sujets similaires à "recuperer donnees tableau filtre"