Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/11/2011, 09h48   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2008
Messages : 45
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 45
Points : 10
Points : 10
Par défaut Graph à partir d'une plage nommée

Bonjour à tous,

Voici plusieurs jours que je recherche une solution sur le forum mais je ne trouve pas de tuto ou autres

Je voudrais construire par VBA un graph dans une feuille à partir d'une plage définie depuis la dernière cellule de la colonne A et une cellule "plus haut" de x lignes de la colonne B. Je sens bien qu'il faudrait selectionner la plage, la nommer mais comment utiliser le nom de cette plage par VBA pour construire le graph ?

Pourriez vous m'aider s'il vous plait !
Merci par avance.
Lucky062 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 10h14   #2
Candidat au titre de Membre du Club
 
Homme Yannick Bouvet
Technicien R&D électronique
Inscription : novembre 2011
Messages : 33
Détails du profil
Informations personnelles :
Nom : Homme Yannick Bouvet
Localisation : France, Indre et Loire (Centre)

Informations professionnelles :
Activité : Technicien R&D électronique
Secteur : Industrie

Informations forums :
Inscription : novembre 2011
Messages : 33
Points : 11
Points : 11
Bonjour,

Pour sélectionner ta plage, tu peux utiliser InputBox.
Pour ton graphe, tu veux une courbe pour la colonne A et une pour la B ou la colonne B en fonction de A ?
Daetheia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 10h51   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2008
Messages : 45
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 45
Points : 10
Points : 10
Bonjour Daetheia et merci,

Il s'agit en fait de tracer l'évolution dans le temps (les jours étant contenus dans la colonne A) d'un paramètre contenu dans une autre colonne B ou C ... sur un intervalle de "remontée dans le temps" de x jours. Mais tout cela fait de manière transparente pour l'utilisateur.

Par exemple sur 5 jours antérieurs avec une date aujourd'hui au 22/11/2011 :
Colonne A Colonne B
A10 = 18/11/2011 B10 = 50
A11 = 19/11/2011 B11 = 40
A12 = 20/11/2011 B12 = 35
A13 = 21/11/2011 B13 = 30
A14 = 22/11/2011 B14 = 25


Merci encore du coup de main !
Lucky062 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 11h03   #4
Candidat au titre de Membre du Club
 
Homme Yannick Bouvet
Technicien R&D électronique
Inscription : novembre 2011
Messages : 33
Détails du profil
Informations personnelles :
Nom : Homme Yannick Bouvet
Localisation : France, Indre et Loire (Centre)

Informations professionnelles :
Activité : Technicien R&D électronique
Secteur : Industrie

Informations forums :
Inscription : novembre 2011
Messages : 33
Points : 11
Points : 11
J'utilise pratiquement le même principe pour un de mes code.
Dans le code qui suit, j'ai crée un bouton 'Graphe' qui lors du clic offre le choix de la plage à sélectionner. Tu sélectionnes la plage dans la colonne jour et le graphe ce fait sur cette plage.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Sub Graphe()
    Dim P As Range
    Dim Plage As Range
    Dim Legraph As ChartObject
 
 
' Choix de la plage de donnée
    On Error Resume Next
    Set P = Application.InputBox("Sélectionnez une cellule ou une plage :", Type:=8)
    On Error GoTo 0
    If P Is Nothing Then MsgBox "Sélection annulée"
 
' Supprime les graphiques de la feuille activée
    Sheets("Feuil1").Activate
    For Each Legraph In ActiveSheet.ChartObjects
        Legraph.Delete
    Next
 
' création de la plage à mettre en graphe
    Set Plage = P
    Set Plage = Union(Plage, Plage.Offset(, 1))
 
 ' Création du graphique
    Charts.Add
    ActiveChart.ChartType = xlLineMarkers  'type de graphe
    ActiveChart.Location _
    Where:=xlLocationAsObject, Name:="Feuil1"   'localisation du graphe
 
    With ActiveChart
        .SetSourceData Source:=Plage, PlotBy:=xlColumns
        .HasTitle = True
        .ChartTitle.Characters.Text = "Titre"
        .Axes(xlCategory, xlPrimary).HasTitle = True
        .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Abscisse"
        .Axes(xlValue, xlPrimary).HasTitle = True
        .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Ordonnée"
    End With
 
    ActiveChart.HasLegend = True
    ActiveChart.Legend.Select
    ActiveChart.SeriesCollection(1).Name = "=""Valeur"""
    Selection.Position = xlRight
 
 
End Sub
Daetheia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 11h20   #5
Candidat au titre de Membre du Club
 
Inscription : janvier 2008
Messages : 45
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 45
Points : 10
Points : 10
Un GRAND MERCI Daetheia,

C'est exactement ce que je cherchai ! Il ne reste plus qu'à l'adapter !

Merci encore !
A+
Lucky062 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h57.


 
 
 
 
Partenaires

Hébergement Web