Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1556 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA (Excel 2010) Syntaxe Range

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

VBA (Excel 2010) Syntaxe Range

n°2165568
Zixion
Posté le 27-11-2012 à 06:30:53  profilanswer
 

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.

mood
Publicité
Posté le 27-11-2012 à 06:30:53  profilanswer
 

n°2165571
vave
Nice to meet me
Posté le 27-11-2012 à 07:22:21  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA (Excel 2010) Syntaxe Range

 

Sujets relatifs
[VBA]Comment traduire If A1=A2=.... ThenPb fonction RechercheV Excel
EXCEL alternative a la fonction SIVBA
[VBA] Créer une liste depuis une cellule[Résolu] VBA XLS Aide msgbox
Access VBA & Sharepoint WorkflowVBA - Solveur
Problème VBA/VBS[VBA] Fonction find avec plusieurs criteres
Plus de sujets relatifs à : VBA (Excel 2010) Syntaxe Range


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR