[VBA] graphiques & format

Lailaine

XLDnaute Nouveau
Bonjour à tous,

Mon but : Faire des graphiques
Mon problème : Ca marche pas !!!
Conclusion : petite stagiaire toute triste et désemparée

Aller je m’explique, commençons par le commencement
1- J’ai du extraire des données d’une multitude de fichier .txt que j’ai par la suite mis dans une base de donnée Access (merci tititoto2008 :eek:p)
2- Comme tous les pc de mon entreprise ne sont pas équipés avec Access, j’ai créé une « interface » Excel pour aller rechercher ces données donc un formulaire qui avec une requête SQL prend les données qu’il faut à savoir un certain nombres de « lignes » de ma base de donnée comportant une date ,un nom et trois valeurs (en tout 5 colonnes), ca me les met bien dans mon fichier Excel, parfait me dis-je, il ne me reste plus qu’à faire les graphiques !!!
3- Et là, c’est le drame !!!

Avant de me lancer dans la programmation VBA, j’essaye de faire un petit graphique avec les dates et une des colonnes de valeurs.
Mon fichier Excel considère mes valeurs comme du texte (et donc met tout à 0) et je n’arrive pas à changer le format…
J’ai essayé de reprendre le problème à la base (de donnée) et de mettre mes données en tant que « valeur numérique » et paf, ca ne veut plus les importer… (à part pour les dates donc il reste encore 3 colonnes à problèmes…)

Flashback :
Je me souviens avoir eu un problème du même genre pour une macro beaucoup plus « simple » ou il fallait surligner en rouge les valeurs inférieures à un certain nombre et le même problème s’était présenté, il ne me surlignait rien puis que pour Excel, ce n’était pas des nombres, à quoi bon les comparer à un autre ? :p
Bref je m’en était sortie avec un Val(Cell.Value) …

Question finale :
Sachant que EN PLUS le nombre de valeurs dépend de la demande, comment je peux faire pour faire mon graphique (avec une sorte de xldown peut être)???
Bref je suis franchement novice avec tout ce qui concerne les graphique via VBA mais bon… je suis là pour apprendre :eek:p


En vous remerciant d’avoir lu mon message (parce qu’il est assez long quand même !!)
 

Gael

XLDnaute Barbatruc
Re : [VBA] graphiques & format

Bonjour Lailaine,

Et si tu nous envoyait un extrait de la base access et un exemple de récupération de données sur Excel (avec les mêmes données pour que ce soit cohérent).

Si les graphiques sont toujours du même type, il n'est pas forcément utile de passer par VBA, on peut créer des plages variables et ils s'adapteront aux données récupérées.

@+

Gael
 

Lailaine

XLDnaute Nouveau
Re : [VBA] graphiques & format

Bonjour Gael,
Je crois que j'ai trouvé une facon de résoudre mon problème (même si c'est pas la plus estétique):eek:)
Voila un exemple de mon fichier excel

20070326 truc 0.161214 0.491596 0.474818
20070730 truc 0.149777 1.156918 0.486869
20070727 truc 0.153334 0.107677 0.452372
20071203 truc 0.129508 1.415533 0.650088
20070723 truc 0.170668 0.529860 0.529154
20071128 truc 0.113825 0.932746 0.541953
20070405 truc 0.168080 2.131541 0.603063


Les dates, ca fonctionne car elles ne sont pas importées avec des "." en revanche, c'est pas le cas des données "valeurs"

je suis donc en train de transformer tout ca ^^ puisque quand je transforme manuellement le point en virgule, ca remet bien en format "nombre".

Alors pour ca j'ai essayé deux méthodes :
Je selectionne puis je change

méthode 1 :

Sub tranformationnnn()
Range("C4", Range("C4").End(xlDown)).Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

End Sub
=> ne fonctionne directement car ca ne prend pas mon fameux "val" ^^

méthode 2 :

Sub tranformationnnn2()
Dim Cell As Range
Range("C4", Range("C4").End(xlDown)).Select
For Each Cell In Selection
If InStr(1, Cell.Text, ".") > 0 Then
Cell.Value = CDbl(Val(Cell.Text))
End If
End Sub

Ca marche :) Mais c'est moins joli donc ca doit prendre un peu plus de temps si il y a trop de cellules à scanner mais bon dans mon cas, le nombre reste raisonnable :D

Il ne me reste plus qu'à selectionner plusieurs colonnes et à rajouter des décimaux car lors de la transformation en nombre le "format" se remet automatiquement à 2 :mad:

Enfin je me rapproche du bout, ca fait plaisir ;)

Merci d'avoir répondu en tout cas!!!
Je vais aussi voir ce que sont ces fameuses "plages variables"
Ce site est formidable ;)
 

Lailaine

XLDnaute Nouveau
Re : [VBA] graphiques & format

au cas ou ca intéresserait quelqu'un...

Sub tranformationnnn2()
Dim Cell As Range
Range("C4:E4", Range("C4:E4").End(xlDown)).Select
For Each Cell In Selection
If InStr(1, Cell.Text, ".") > 0 Then
Cell.Value = CDbl(Val(Cell.Text))
End If
Next
Selection.NumberFormat = "0.000000"
End Sub

Et voila ;) c'est surement pas la solution la plus optimale mais elle a le mérite de marcher !!!

Bisous à tous
 

Statistiques des forums

Discussions
312 361
Messages
2 087 613
Membres
103 607
dernier inscrit
lolo1970