Création d'un nuage de point sur une plage spécifique

Bonjour,

J'aimerais créer sur une feuille graphique un nuage de point mais j'aimerais n'avoir que les X dernières données dans ce nuage de point. MOn nombre de point étant variable j'ai essayé de me servir d'une plage créer à partir de la dernière ligne mais ma plage de donnée n'est pas valide (sans doute à cause de la concaténation).

Sub zoom()
Dern_Lig = Range("A" & Rows.Count).End(xlUp).Row 'Recherche la dernière ligne du document
DL = Right(Str(Dern_Lig), Len(Str(Dern_Lig)) - 1)
ML = DL - 100
ThisWorkbook.Charts.Add After:=Worksheets("Données")
With ActiveChart

.ChartType = xlXYScatterLines
.SetSourceData Worksheets("Données").Range("Données!$F&ML:$F,Données!$C&ML:$C")
.Name = "Zone de rupture"

End With

ActiveSheet.Range("K" & ML).Value = "Dern"
End Sub

Merci d'avance

Bonjour,

Excel et VBA n'interprète pas ce qui est placé entre guillemets, car ils sont utilisés pour délimiter du texte. Il faut donc sortir vos variables des guillemets pour qu'elles soient interprétées (comme c'est le cas pour la première et dernière instruction de votre code). Par ailleurs, si vous préciser un indice de ligne de départ, il faut un indice de ligne de fin.

D'accord, mais si VBA ne prends pas en compte ce qui a entre guillemet comme faire dans mon cas c'est la que je suis perdu.

D'accord, mais si VBA ne prends pas en compte ce qui a entre guillemet comme faire dans mon cas c'est la que je suis perdu.

Comme indiqué, il faut sortir la variable des guillemets, comme vous le faite par exemple ici à la dernière ligne du code : Range("K" & ML)

S'il y a à nouveau du texte après la variable, il faut à nouveau utiliser un & avant le texte (délimité, pour rappel, par de nouveaux guillemets).

Bonjour,

j'avoue que je ne comprends pas après de nombreux essai comment faire en sorte que ma plage sois composé des données pour la colonne F des 100 derniers points et pour la colonne C les 100 derniers points aussi.

J'ai essayé de différente façon avec des parenthèses, des guillemets mais je n'y arrive pas.

DL est mon dernier point et ML est 100 points avant DL:

Range(Données!"F"&ML:"F"&DL,Données!"C"&ML:"C"&DL)

Range(Données!"F"&ML:"F"&DL,Données!"C"&ML:"C"&DL)

Bonjour,

Tu es sur la bonne voie ! Les : font partie du texte et sont donc à inclure dans les guillemets. Pour concaténer ta variable avec le texte qui la précède, tu utilises l'opérateur &, il faut aussi l'utiliser avec le texte qui suit : & ML &

Ce que j'ignore, c'est si ta plage sera valide une fois correctement écrite, car tes 2 colonnes ne sont pas contiguës. Peut être que l'enregistreur de macro pourrait te permettre de le savoir.

J'ai donc essayé comme ceci :

Range(Données!"F"&ML&:"F"&DL&,Données!"C"&ML&:"C"&DL&)

Je n'ai pas compris dans quelle guillemet mettre le :

Mais on me signal une erreur, il manque des séparateurs de liste autour du premier "F"

Lorsque je créer mon graphe avec les deux colonnes bon contiguës la plage est la suivante

Range("Données!$F:$F,Données!$C:$C") donc j'ai bien reproduit le même principe de plage il me semble

Je n'ai pas compris dans quelle guillemet mettre le :

Actuellement, ce caractère n'est pas mis entre guillemets pour signifier que c'est un texte qu'il ne faut pas interpréter. VBA comprend donc le : comme une instruction à part entière. Dans VBA, il est utilisé pour écrire sur une même ligne des instructions qui auraient du être séparées par un saut de ligne (ce qui n'est absolument pas ton objectif ici).

Comme je vois que tu écris des choses sans trop les comprendre, je t'invite à découper tes instructions en petites "briques" dans une macro de test dédiée, pour évaluer le résultat de chacune de ces briques séparément. Exemple :

Sub Test()

Dim ML Long, DL As Long

ML = 1234
DL = 2345
MsgBox "F&ML"
MsgBox "F" & ML
MsgBox "F" & ML & :"F" & DL
MsgBox "F" & ML & ":F" & DL

End Sub
Rechercher des sujets similaires à "creation nuage point plage specifique"