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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Probléme de type VBA

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probléme de type VBA

n°1503294
bobo19
Posté le 15-01-2007 à 18:44:08  profilanswer
 

Bonjour,
 
Voici mon code VBA que j applique sous excel, la boucle fonctionne correctement mais lors de l'éxécution certaines valeurs sont erronées : elles affichent trop de décimal (environ 10^-8). Sauriez vous pourquoi?
 

Code :
  1. Sub NeauGraphique2()
  2.   Dim N As Double, L As Double
  3.   Dim Graphique As ChartObject
  4.   N = -2
  5.   With ActiveWorkbook.Worksheets("Polynomes" )
  6.     .Range("A1" ) = "Valeurs X"
  7.     .Range("B1" ) = "N+10"
  8.     .Range("C1" ) = "N+5"
  9.     For L = 2 To 402
  10.       .Range("A" & L) = "X=" & N
  11.       .Range("B" & L) = N + 10
  12.       .Range("C" & L) = N + 5
  13.       N = N + 0.01
  14.     Next L
  15.     .Range("A:C" ).Columns.AutoFit
  16.     Set Graphique = .ChartObjects.Add(0, 140, 600, 450)
  17.   End With
  18.   Graphique.Chart.SetSourceData Worksheets("Polynomes" ).Range("A1:C401" )
  19. End Sub


Merci d avance pour votre réponse

mood
Publicité
Posté le 15-01-2007 à 18:44:08  profilanswer
 

n°1503361
olivthill
Posté le 15-01-2007 à 21:10:46  profilanswer
 

:hello:  
Peut-être que NumberFormat résoudrait le problème.

...
.Range("B" & L).NumberFormat = "##########0.00"
.Range("B" & L) = N + 10
.Range("C" & L).NumberFormat = "##########0.00"
.Range("C" & L) = N + 5
...


Message édité par olivthill le 15-01-2007 à 21:11:10
n°1504381
bobo19
Posté le 17-01-2007 à 20:37:57  profilanswer
 

Cette solutione ne fonctionne pas pour moi, c'est meme au niveau de la colonne A quand la boucle affecte ces valerus qu il y a un probléme!

n°1504383
olivthill
Posté le 17-01-2007 à 20:39:49  profilanswer
 

Bon, si c'est pour la colonne A, il faut mettre :
 
.Range("A" & L).NumberFormat = "##########0.00"
 
Edit :
Je viens de relire le programe initial, et je vois qu'il s'agit d'une chaine de caractère au lieu d'un champ numérique.
Dans ce cas il faudrait agir au niveau de la ligne  
 
.Range("A" & L) = "X=" & N
 
en la remplaçant par  
 
.Range("A" & L) = "X=" & CStr(CInt(N * 100) / 100)
 
CInt() fait une conversion en entier et CStr() fait une conversion en chaine de caractères.
Ou bien, il faudrait essayer avec les fonctions d'arrondis, mais je ne les ai pas en tête (je ne sais plus si c'est floor ou round).


Message édité par olivthill le 17-01-2007 à 20:44:30
n°1505231
bobo19
Posté le 19-01-2007 à 20:39:54  profilanswer
 

Parfait!!!Merci beaucoup!!!


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

  Probléme de type VBA

 

Sujets relatifs
probleme avec EasyPHPProblème de compréhension avec un ligne de shell
{flash 8} probleme d'arrêt sur un boutonProblème avec requete SELECT .. WHERE
Problème java sous Firefox, ok sous IE[FLASH 8]probleme lien interne a un site flash
problème d'ip avec phpOpérations matrices problème structure pointeur
probleme de code php pour atcivé un bouton desactivé[Javamail] Comment extraire les PJ de type mail ?
Plus de sujets relatifs à : Probléme de type VBA


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