XL 2016 Macro Copier Coller valeur en fonction choix utilisateur

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

  • exemple V1.0.xlsx
    36.1 KB · Affichages: 31

Staple1600

XLDnaute Barbatruc
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 ;)
 

ynx69

XLDnaute Junior
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

  • exemple V2.0.xlsx
    43.4 KB · Affichages: 23

Staple1600

XLDnaute Barbatruc
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
 

Staple1600

XLDnaute Barbatruc
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
 

Discussions similaires

Réponses
4
Affichages
186

Statistiques des forums

Discussions
312 083
Messages
2 085 187
Membres
102 809
dernier inscrit
Sandrine83