Macro pour remplir automatiquement un tableau "en dur"

  • Initiateur de la discussion Initiateur de la discussion VincentOo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

VincentOo

XLDnaute Nouveau
Bonjour,

Je dispose d'un extract d'une base de donnée sur un premier onglet, correspondant à des valeurs pour la semaine en cours. Les 3 valeurs qui m'interessent sont toujours à la meme place dans ce premier onglet, mais varient d'une semaine à l'autre avec les changements dans la base de donnée. (Chaque semaine, ce fichier est ouvert et de nouvelles données apparaissent dans ces 3 cellules).

J'aimerais pouvoir créer une macro qui copie ces 3 valeurs dans un autre onglet, dans la ligne correspondant au numéro de semaine, numéro qui se trouve dans une case du premier onglet, sans rien effacer d'une semaine sur l'autre.

A terme, le but est d'avoir un historique par semaine de ces valeurs, et de faire un graphique sur les 6 dernières semaines pour voir l'évolution des valeurs.
La 2e question ici est comment faire un graphique dont la plage de donnée va se déplacer en même temps que la valeur de la semaine en cours, pour rester sur les 6 derniere semaine.

Vous trouverez en piece jointe un fichier avec ces 2 onglets pour mieux vous représenter ma problèmatique.

J'espère que vous pourrez m'aider et que j'ai été clair sur mes demandes. N'hésitez pas à me solliciter si vous avez besoin de plus de précisions.

Vincent
 

Pièces jointes

Re : Macro pour remplir automatiquement un tableau "en dur"

Bonjour, VincentOo
(aec modération)🙂

Sans macro (pourquoi se compliquer la vie...)
Suffit de copier-collage spécialer/valeur de la dernière semaine.
 

Pièces jointes

Re : Macro pour remplir automatiquement un tableau "en dur"

Merci pour ta réponse Victor, mais justement le but est de se compliquer la vie !

Je voudrais que cela soit automatisé, et qu'en appuyant sur un bouton, le tableau du 2e onglet se remplisse automatiquement.

Avec ta solution, les données vont s'effacer d'une semaine sur l'autre non ? à la semaine 23, l'onglet 2 va passer en revue toutes les formules, effacer la ligne 22 et remplir la 23 non ?

J'aimerais que les données restent en mémoire dans la feuille, est-ce que ta solution le permet ?

Merci beaucoup pour ton aide en tout cas !

PS: pour la modération, je vais voir ce que je peux faire mais je promet rien 😉
 
Re : Macro pour remplir automatiquement un tableau "en dur"

Merci bien pour ton aide Eric.

Pourrais-tu m'expliquer ce que tu as fait ? J'ai l'impression que tu m'as donné la solution, mais je ne la comprend pas bien.

Le bouton CommandButton est relié à quoi ? à la macro ?

Encore merci pour ton aide.

Vincent
 
Re : Macro pour remplir automatiquement un tableau "en dur"

Re, bonjour, Eric S

Avec ta solution, les données vont s'effacer d'une semaine sur l'autre non ?
Non.
à la semaine 23, l'onglet 2 va passer en revue toutes les formules, effacer la ligne 22 et remplir la 23 non ?
Non.
Le collage spécial/valeur sur la dernière ligne remplie remplacera la formule par les données en dur.
 
Re : Macro pour remplir automatiquement un tableau "en dur"

re

le commandbutton est relié à la macro, oui
la dernière semaine est déterminée en L1 dernière cellule remplie de la colonne B, la cellule esr nommée dersem
en L2 tu choisis le nombre de mois, cellule nommée nbsem

tu vas dans la gestion des noms tu verras, il y a 4 noms se terminant par "decal", ils sont définis par une formule decaler (décalage en fonction de dersem et nbsem

le décalage va servir sur l'abscisse et les séries,
tu cliques droit sur le graphique et tu fais données sources, tu retrouveras ces noms finissant par decal

une variante, si P2 vide = dernière semaine, sinon valeur de P2. Cela peut servir
 

Pièces jointes

Dernière édition:
Re : Macro pour remplir automatiquement un tableau "en dur"

Si je comprend bien, cette histoire de décalage est le principe que tu as utilisé pour le graphique, c'est ça ? Si oui, je pense que cela répond completement à mon probleme concernant le graphique !! Merci beaucoup !!

Cependant, je n'arrive pas à voir la macro que tu as utilisé, pourrais tu me donner le code ? J'aimerais comprendre comment tu as fait !

Encore merci pour ton aide !

Vincent
 
Re : Macro pour remplir automatiquement un tableau "en dur"

Re

Code:
Private Sub CommandButton1_Click()
' suppose que la semaine 1 commence en ligne 2 sur sheet2
Cells(Sheets("sheet1").Range("A2").Value, 2).Value = Sheets("sheet1").Range("B2").Value
Cells(Sheets("sheet1").Range("A2").Value, 3).Value = Sheets("sheet1").Range("C2").Value
Cells(Sheets("sheet1").Range("A2").Value, 4).Value = Sheets("sheet1").Range("D2").Value
End Sub

la macro est dans feuil2, pas dans un module

pour le décalage tu vas dans la gestion des noms, tu sélectionne par exemple absdecal
tu cliques dans le champs formule et tu verras la zone sélectionnée entourée de pointillés
 
Dernière édition:
Re : Macro pour remplir automatiquement un tableau "en dur"

Super ! Merci beaucoup pour ton aide Eric !!! Merci à toi aussi Victor, mais je vais garder la solution d'Eric qui correspond plus à ce que j'attendais !!

Encore merci, ce forum est très utile à un débutant comme moi !!

Vincent
 
Re : Macro pour remplir automatiquement un tableau "en dur"

Et bien non, fausse alerte, je n'y arrive toujours pas !! J'ai du mal à comprendre ton code Eric !!

Je ne comprend pas pourquoi cela ne fonctionne pas, dans mon fichier original, les onglets s'appellent Portfolio et HistoricsData, et les valeurs sont dans les cellules F41, G41 et H41. De plus, je ne comprend pas le principe de macro relié à une feuille ou à un module ...

Pourrais-tu finir de m'expliquer ta macro, afin que je puisse profiter à fond de l'aide que tu m'as apportée ?? Ou, si c'est plus facile pour toi, me la réécrire avec mes variables pour que je la copie (je préfererai l'explication, mais tu m'as déja beaucoup aidé !)

Merci bien !
Vincent
 
Re : Macro pour remplir automatiquement un tableau "en dur"

re

dans le fichier que je t'ai envoyé, j'ai créé le bouton avec la barre d'outil contrôle
avec ce genre de bouton, à la création, le code se trouve dans la feuille.

pour créer le bouton (je ne suis pas sous 2010 mais sous 2003 et je n'ai pas en tête les menus 2010) :
tu places un bouton de commande sur ta feuille historicsdata
tu doubleclic dessus et normalement une fenêtre apparait avec

Code:
Private Sub CommandButton2_Click()

End Sub

et la tu places ton code

Cells(Sheets("sheet1").Range("A2").Value, 2).Value = Sheets("sheet1").Range("B2").Value

la syntaxe est cells(n°ligne, n° colonne)
n° colonne est 2 donc B
n° ligne est récupéré sur la feuil1 en cellule A2 : Sheets("sheet1").Range("A2").Value
donc, dans cette cellule, on écrit le contenu de la cellule B2 de la feuil1 : Sheets("sheet1").Range("B2").Value

dans ton fichier réel,
sheet1 devient Porfolio
au lieu de A2 tu mets l'adresse de la cellule contenant la date de la semaine sur le feuille portfolio
B2 devient sans doute F41
...
 
Re : Macro pour remplir automatiquement un tableau "en dur"

Un dernier message pour te remercier encore une fois Eric !!

Merci beaucoup pour tes dernières explications, j'ai pu faire ce que je voulais et je t'en remercie beaucoup !!

Vincent
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
40
Affichages
1 K
Retour