VBA : problème Range sur plage dynamique
Résolu
chronicle13
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
chronicle13 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
chronicle13 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous.
Je suis nouveau en programmation sur Excel et je n'ai pas pu résoudre mon problème alors je m'adresse à vous.
Je cherche à générer des graphiques de manière automatique. Pour cela je range les plages qui seront les axes de X et des Y.
j'utilise :
XderLigne = Range(Range("B7"), Range("B7").End(xlDown))
Cela marche quand j'inscrit en "dur" les inputs. Le range marche et prend la plage de la 1ere cellule à la dernière non-vide
Pour mes besoins, je dois générer ces inputs via une fonction. Et la la fonction range ne marche plus du tout. Il semble que la 1ere cellule renvoyée soit OK mais me ressort -4161 pour la derniere cellule.
C'est à n'y rien comprendre. Il doit me manquer une étape à effectuer
Par avance merci si vous avez une idée!!
Dim Numéro_Simulation As Single
Cells(1, 2).Clear
ActiveSheet.Range("B7:IV17").ClearContents
For Numéro_Simulation = 1 To Cells(3, 2).Value
Cells(1, 2).Value = Cells(1, 2).Value + 1
Cells(7, 1 + Numéro_Simulation).Value = Cells(1, 2).Value
Cells(8, 1 + Numéro_Simulation).Value = Cells(2, 2).Value
Next
XderLigne = Range(Range("B7"), Range("B7").End(xlToRight))
Range("B8").Select
YderLigne = Range(Selection, Selection.End(xlToRight))
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("D22")
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = XderLigne
ActiveChart.SeriesCollection(1).Values = YderLigne
ActiveChart.SeriesCollection(1).Name = "=""Premium"""
ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "test"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
ActiveWindow.Visible = False
Windows("Classeur1.xls").Activate
Range("J4").Select
End Sub
Je suis nouveau en programmation sur Excel et je n'ai pas pu résoudre mon problème alors je m'adresse à vous.
Je cherche à générer des graphiques de manière automatique. Pour cela je range les plages qui seront les axes de X et des Y.
j'utilise :
XderLigne = Range(Range("B7"), Range("B7").End(xlDown))
Cela marche quand j'inscrit en "dur" les inputs. Le range marche et prend la plage de la 1ere cellule à la dernière non-vide
Pour mes besoins, je dois générer ces inputs via une fonction. Et la la fonction range ne marche plus du tout. Il semble que la 1ere cellule renvoyée soit OK mais me ressort -4161 pour la derniere cellule.
C'est à n'y rien comprendre. Il doit me manquer une étape à effectuer
Par avance merci si vous avez une idée!!
Dim Numéro_Simulation As Single
Cells(1, 2).Clear
ActiveSheet.Range("B7:IV17").ClearContents
For Numéro_Simulation = 1 To Cells(3, 2).Value
Cells(1, 2).Value = Cells(1, 2).Value + 1
Cells(7, 1 + Numéro_Simulation).Value = Cells(1, 2).Value
Cells(8, 1 + Numéro_Simulation).Value = Cells(2, 2).Value
Next
XderLigne = Range(Range("B7"), Range("B7").End(xlToRight))
Range("B8").Select
YderLigne = Range(Selection, Selection.End(xlToRight))
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("D22")
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = XderLigne
ActiveChart.SeriesCollection(1).Values = YderLigne
ActiveChart.SeriesCollection(1).Name = "=""Premium"""
ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "test"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
ActiveWindow.Visible = False
Windows("Classeur1.xls").Activate
Range("J4").Select
End Sub
A voir également:
- VBA : problème Range sur plage dynamique
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
4 réponses
Re,
Je ne vois pas où est l'erreur, voir avec ce code, seule remarque, tu ne spécifie pas que les données sont en lignes et il est possible que par défaut ce soit en colonne
A+
Je ne vois pas où est l'erreur, voir avec ce code, seule remarque, tu ne spécifie pas que les données sont en lignes et il est possible que par défaut ce soit en colonne
Sub AjouteGraph() Dim XderLigne As String Dim YderLigne As String XderLigne = Range(Range("B7"), Range("B7").End(xlToRight)).Address YderLigne = Range(Range("B8"), Range("B8").End(xlToRight)).Address Charts.Add ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1" ActiveChart.ChartType = xlLine ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("F28"), PlotBy:= _ xlRows ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(1).XValues = Sheets("Feuil1").Range(XderLigne) ActiveChart.SeriesCollection(1).Values = Sheets("Feuil1").Range(YderLigne) Range("I14").Select End Sub
A+
Bonjour,
A première vue !
dans tes sérieColection() tu doit donner une plage et pas le bout de la plage.
Dim XderLigne as string
XderLigne = Range(Range("B7"), Range("B7").End(xlToRight)) .address
sinon tu donne le contenu.
Tu dit
A+
A première vue !
dans tes sérieColection() tu doit donner une plage et pas le bout de la plage.
Dim XderLigne as string
XderLigne = Range(Range("B7"), Range("B7").End(xlToRight)) .address
sinon tu donne le contenu.
Tu dit
A+