Actualisation de tableau (via macro je pense...)

Bonjour,

Dans le fichier ci-joint, j'extrait des données d'internet (via copier/coller) de prix de céréales, que je colle dans un tableau "calendrier" pour connaitre les prix au jour le jour.

Comment je procède :

J'extrait les données du net, que je colle dans l'onglet "extract des données" en B6, B55 et G75. Tout ce qui est sur cet onglet (sauf les cellules D54 et E54) sont les données extraites.

Ensuite, je sélectionne les cellules D6 à D32 (les seules données qui m'intéressent, mais je ne peux pas extraire que ça du net...), je copie, et je fais un collage special "valeur" dans l'onglet "saison en cours" sur la ligne 3 (par ex en BA3)

Ensuite je repars dans "extract des données", je copie les cellules D55 à D63, et je fais un collage spécial "valeur" dans "saison en cours", sur la ligne 32 (par ex BA32)

Enfin je repars dans "extract des données", je copie les cellules de G75 à J83, et je fais un collage spésial "valeur" dans "saison en cours" en B45

Ce que j'aimerais, mais je ne sais pas si c'est possible (j'y connais rien en VBA... et mes connaissances en excel sont plutot limitée ) c'est, par ex via une macro (car via des formules seules je pense que ça doit être une usine à gaz) faire àa :

j'extrait les données (toujours manuellement) du net.

via un bouton, j'active la mise à jour du tableau "saison en cours" de façon à ce que cela remplisse la 1ere "colonne datée" vide (par ex ectuellement la 1ere collone vide est la colonne BA. Je la met à jour et demain, je refais mon extract, j'appuie sur le bouton et la macro détecte que BA n'est pas vide, donc elle remplie BB, etc...)

Tout ça, juste pour m'éviter de faire les collages speciaux

Maintenant, si ce que je souhaite faire est trop compliqué, je suis preneur de toutes les idées qui pourraient améliorer ma façon de faire, quite à changer un peu la mise en page...

Merci à tous les cerveaux qui se pencheront sur ma question!

14car.zip (28.00 Ko)

Bonjour,

A tester

32gigi777.zip (38.33 Ko)

A+

Bonjour frangy,

c'est top!!!

je pensais pas que c'était possible (je sais : un utilisateur lambda n'utilise même pas 10% des capacités de ce logiciel, mais quand même...)

C'est pile poil ce que je cherchais à faire!

Je peux t'embêter juste un peu?

pourrais tu mettre (éventuellement, c'est juste pour mon info) un peu de commentaires dans la macro, que ça m'aide à déchiffrer ce qui pour moi est du chinois...

Si c'est trop demandé, pas de souci : le plus important, c'est le résultat!

Pour commencer, voici le code commenté.

Si tu as besoin de précisions, n'hésite pas à demander.

Sub Transferer()
Dim WsS As Worksheet, WsC As Worksheet
Dim Plage1 As Range, Plage2 As Range, Plage3 As Range
Dim ColonneAjout As Integer
    'La référence de la feuille "extract des données" est attribuée à la variable WsS
    'Il s'agit de la feuille Source où seront puisées les données
    Set WsS = Worksheets("extract des données")
    'La référence de la feuille "saison_en_cours" est attribuée à la variable WsC
    'Il s'agit de la feuille Cible où seront collées les données
    Set WsC = Worksheets("saison_en_cours")
    'La référence de la plage correspondant aux marchandises CONVENTIONNELLES est attribuée à la variable Plage1
    Set Plage1 = WsS.Range("D6:D32")
    'La référence de la plage correspondant aux PAILLE & FOIN est attribuée à la variable Plage2
    Set Plage2 = WsS.Range("D55:D63")
    'La référence de la plage correspondant aux CONTRATS est attribuée à la variable Plage3
    Set Plage3 = WsS.Range("G75:J83")
    'L'actualisation de l'écran est désactivée (elle sera automatiquement réactivée en sortie de procédure)
    Application.ScreenUpdating = False
    'On cherche le numéro de la ligne où doit être effectué l'ajout dans la feuille Cible
    ColonneAjout = WsC.Cells(3, Columns.Count).End(xlToLeft).Column + 1
    'On copie la Plage1
    Plage1.Copy
    'On colle les valeurs de la Plage1 dans la feuille cible
    WsC.Cells(3, ColonneAjout).PasteSpecial xlPasteValues
    'On copie la Plage2
    Plage2.Copy
    'On colle les valeurs de la Plage2 dans la feuille cible
    WsC.Cells(32, ColonneAjout).PasteSpecial xlPasteValues
    'On copie la Plage3
    Plage3.Copy
    'On colle les valeurs de la Plage3 dans la feuille cible
    WsC.Cells(45, 2).PasteSpecial xlPasteValues
    'On active la feuille cible
    WsC.Activate
    'On sélectionne la cellule date de la colonne où a été effectué l'ajout
    WsC.Cells(2, ColonneAjout).Select
    'On libère la mémoire
    Set Plage1 = Nothing: Set Plage2 = Nothing: Set Plage3 = Nothing
    Set WsC = Nothing: Set WsS = Nothing
End Sub

A+

cool

Besoin de précisions, non pas quand même... sinon je vais devoir te payer pour que tu me donnes des cours :p

mais déja avec ces commantaires, ça m'éclaire un peu

C’est toujours plus gratifiant d’échanger avec quelqu’un qui s’intéresse au programme plutôt que de se cantonner à servir du prêt à consommer

A+

Rechercher des sujets similaires à "actualisation tableau via macro pense"