VBA (Excel 2010) Syntaxe Range

VBA (Excel 2010) Syntaxe Range - VB/VBA/VBS - Programmation

Marsh Posté le 27-11-2012 à 06:30:53    

Bonjour à tous !
 
Cela fait un long moment que je parcours différents forums avec une calvitie en constante évolution.
En bref, je m'arrache les cheveux  :fou: .
 
Mon niveau en VBA: Débutant  :jap: . Je me suis débrouillé avec les forums et l'enregistreur de macro pour observer le code.
 
Mon objectif :
J'ai un fichier excel contenant plusieurs feuilles dont le nombre augmente régulièrement.
A chaque nouvelle feuille je dois tracer plusieurs courbes. L'idée est donc d'automatiser tout ce petit monde pour qu'à chaque évolution du fichier je puisse en un clic sortir les nouveaux tracés.
 
Mon problème  :fou: :
Pour mes tracés, l'intégralité des données de la colonne ne m'intéresse pas forcement. Je fais donc un "balayage" pour identifier la plage qui m'intéresse. Ça c'est bon.
C'est quand je souhaite tracer cette courbe avec ma plage de données que ça coince. J'ai essayé plein de bout de code sans succès.
 
Le code fonctionnel sans la gestion "dynamique" de la plage de données:
 

Code :
  1. With ActiveSheet
  2.             Set Graph = .ChartObjects.Add(100, 50, 400, 200)                                'Taille du graphique
  3.             Graph.Chart.ChartType = xlXYScatterSmoothNoMarkers                              'Type de graphique
  4.             Graph.Chart.SetSourceData Source:=Sheets(Nom).Range("A4:A30000;F4:F30000" )     'Data
  5.             Graph.Chart.SeriesCollection(1).Name = ActiveSheet.Name & "Nom du graph"          'Nom du graphique
  6.             Graph.Chart.Location Where:=xlLocationAsNewSheet
  7.             ActiveChart.Name = "Courbe " & Nom
  8.             Set Graph = Nothing
  9. End With


 
Ce programme fonctionne nickel. Mais l'intégralité du tracé ne m'intéresse pas. Alors j'ajoute les variables (integer) qui sont les butées hautes et basses de ma courbe:
 

Code :
  1. Graph.Chart.SetSourceData Source:=Sheets(Nom).Range("A" & Id_Start & ":A" & Id_Stop & ";F" & Id_Start & ":F" & Id_Stop)


 
Et c'est la partie en rouge qui plante mon programme. Je suis sûr que ça doit être un truc tout bête mais là... Je bloque!
 
Merci d'avance pour votre réponse.

Reply

Marsh Posté le 27-11-2012 à 06:30:53   

Reply

Marsh Posté le 27-11-2012 à 07:22:21    

Bonjour,
 
tu as essayé de remplacer le ";" par "," ?

Code :
  1. Graph.Chart.SetSourceData Source:=Sheets(Nom).Range("A" & Id_Start & ":A" & Id_Stop & ",F" & Id_Start & ":F" & Id_Stop)


 
Sinon, une autre solution est de travailler avec Union() :

Code :
  1. Dim r As Range
  2. Dim r1 As Range
  3. Dim r2 As Range
  4. (...)
  5. Set r1 = Sheets(Nom).Range("A" & Id_Start & ":A" & Id_Stop)
  6. Set r2 = Sheets(Nom).Range("F" & Id_Start & ":F" & Id_Stop)
  7. Set r = Union(r1, r2)
  8. (...)
  9. Graph.Chart.SetSourceData Source:=r


 
Voilà, j'espère que ça pourra te dépanner ;)


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed