XL 2016 Macro Copier Coller valeur en fonction choix utilisateur

  • Initiateur de la discussion Initiateur de la discussion ynx69
  • 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 !

ynx69

XLDnaute Junior
Bonjour à tous,

Je me vois face à un problème que je n'arrive pas à résoudre. Je souhaite créer un graphique afin de montrer une évolution mois par mois sur un certain nombre de critères.

Je souhaite, à partir d'une macro, que lorsque l'utilisateur clique sur un bouton, une liste déroulante apparaît en lui demandant l'année actuelle et le mois. Une fois les choix effectués, la macro devra aller chercher des valeurs sur une feuille et les placer au bon endroit dans la feuille qui me sert de source de donnée pour mes graphiques.

Une fois que la macro a identifié la bonne ligne sur laquelle placer les données ( dans la feuille EM ), elle vient copier la valeur en vert pour chacune des catégories et elle les replace dans la feuille EM.

Auriez vous une idée de comment réaliser la chose ?

Dans l'attente de vos retours,

Ynx
 

Pièces jointes

Bonsoir le fil, le forum

@ynx69
???
Trés bel exemple de fichier exemple vide!
Pas de données, pas d'entêtes, pas de graphique
A moins d'aimer jouer à Madame Irma, je vois pas ce qu'on on peut faire avec ton fichier en l'état.
Prends le temps de réaliser un exemple plus conséquent et détaillé, et on devrait déjà y voir plus clair 😉
 
Hello Staple,

Afin d'éviter tout coup de marteau, je viens de retraité le fichier ^^.

En fait que j'aurais besoin c'est :

- dans la page accueil, lorsque l'utilisateur clique sur traitement des données, qu'un userform apparait. Dans ce userform, il choisit l'année actuelle et le mois.

Exemple : 2018 et le mois de juin.

A la suite de ce choix, j'aimerais venir récupérer les valeurs en vert dans la feuille Data et les placer au bon endroit dans la feuille EM.

Si on continue sur l'exemple :

L'utilisateur a choisis l'année 2018 et le mois de juin. On va donc travailler sur la ligne 7 de la feuille EM.
En se référent à la feuille Data, on copie la première valeur qui correspond à la catégorie A et on la colle en A7, et on fait la même chose pour B, C et D.

Dans mon tableau en EM, la colonne note globale correspond à la somme des A-B-C-D. Cette valeur que j'aurais trouvé fera la base de mon graphique..

Et ainsi de suite pour tous les mois. On montre ainsi l'évolution mois par mois de mon indicateur.

Je vais aussi essayé d'adapter le graphique pour qu'il soit glissant.

Je te joins un fichier avec des valeurs et le fameux graphique.

Merci d'avance pour ton aide.
 

Pièces jointes

Re

Maintenant ajoute deux textbox et un combobox
puis colle le code ci-dessous dans l'userform
Et ensuite affiche l'userform
VB:
Private Sub ComboBox1_Change()
TextBox2 = CDate("1-" & ComboBox1)
End Sub

Private Sub UserForm_Initialize()
ComboBox1.List = Split("janvier²février²mars²avril²mai²juin²juillet²août²septembre²octobre²novembre²décembre", "²")
ComboBox1.ListIndex = Month(Date) - 1
TextBox1 = Year(Date)
End Sub
 
Re

Suite
Donc en mettant un ComboBox et un TextBox, et en mettant le code ci-dessous
(en lieu et place du précédent), la source du graphique s'actualise selon le choix de l'utilisateur
(Ici on se base juste sur l'année saisie en TextBox1)
VB:
Private Sub CommandButton1_Click()
Dim gf As Chart, plg As Range
Dim r As Range, a As Range, b As Range
With Sheets("EM")
Set r = .Columns(1).Find(What:=TextBox1, After:=.Cells(1, 1), LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows)
Set a = r.Offset(, 1).Resize(12): Set b = r.Offset(, 6).Resize(12)
Set gf = Sheets("Graphique").ChartObjects(1).Chart
Set plg = .Range(Union(a, b).Address)
End With
gf.SetSourceData Source:=plg
Me.Hide
End Sub
Private Sub UserForm_Initialize()
ComboBox1.List = Split("janvier²février²mars²avril²mai²juin²juillet²août²septembre²octobre²novembre²décembre", "²")
ComboBox1.ListIndex = Month(Date) - 1
TextBox1 = Year(Date)
End Sub
 
- 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
4
Affichages
243
Réponses
8
Affichages
475
Retour