Pb exportation de données vers feuille excel

Pb exportation de données vers feuille excel - VB/VBA/VBS - Programmation

Marsh Posté le 11-01-2011 à 08:59:49    

Bonjour,
 
Je suis débutante en programmation, je dois faire un petit calculateur de bilan carbone pour un logement sous excel.
Le calcul se fait bien par contre, au moment de l'exportation des résultats vers une feuille excel, il y a un problème: certaines valeurs ne sont plus sous forme décimale et je n'arrive pas à voir d'où ça vient!
Ce sont les valeurs en TEP et en tonne de CO2 qui posent problème.
 
 
Voici mon code si qqn peut m'aider
Merci!
 


Private Sub CommandButton1_Click()
'declaration des variables
 
Dim GPL, Essence, Fioul, Géothermique, Nucléaire, Fossile, Gaz, Bois As String
 
'Vérification du format de la valeur rentré
 
 
'équivalence variable et données entrées
 
GPL = TextBox1.Value * 1.095
Essence = TextBox2.Value * 1.048
Fioul = TextBox3.Value * 0.952
Géothermique = TextBox4.Value * 0.86
Nucléaire = TextBox5.Value * 0.261
Fossile = TextBox6.Value * 0.086
Gaz = TextBox7.Value * 0.077
Bois = TextBox8.Value * 0.147
 
 
'calcul de la valeur en TEP
 
    Label19.Caption = (GPL + Essence + Fioul + Géothermique + Nucléaire + Fossile + Gaz + Bois)
     
'calcul de la valeur en tonne de CO2
 
    Label20.Caption = Label19 * 2.25
     
'calcul de la valeur en arbre pour compenser
 
    Label21.Caption = Label20 / (25 * 10 ^ -3)
     
End Sub
 
Private Sub Export_Click() 'Export dans la feuille excel (valeur calculée)
 
 ' valeur en TEP
 
     
    ActiveCell.Value = Label18
               
    ActiveCell.Offset(0, 1) = Label19.Caption
    ActiveCell.Offset(1, 0).Select
   
     
     
'valeur en tonne de CO2
     
    ActiveCell.Value = Label17
     
    ActiveCell.Offset(0, 1) = Label20.Caption
    ActiveCell.Offset(1, 0).Select
     
 ' valeur en arbre pour compenser
 
    ActiveCell.Value = Label16
     
    ActiveCell.Offset(0, 1) = Label21.Caption
    ActiveCell.Offset(1, 0).Select
     
End Sub
 
Private Sub TextBox8_Change()
 
End Sub
 
Private Sub UserForm_Click()
 
End Sub


 
 
La question subsidiaire :
Je veux que qd j'exporte mes données, les cases de resultats soient colorées, sauf que comme le resultat est exporté aléatoirement (en fonction de là où clic la personne) je ne sais pas faire, nous on sait colorer une case que l'on connait.
Une idée la dessus ?


Message édité par pottok64 le 11-01-2011 à 09:11:22
Reply

Marsh Posté le 11-01-2011 à 08:59:49   

Reply

Marsh Posté le 12-01-2011 à 15:23:07    

Bonjour
 
La premier chose qui est étonnante est L’utilisations des chaines de Char (String) pour stoker des valeurs numérique.
 
Mais si comme il est indiquée dans le post << au moment de l'exportation des résultats vers une feuille excel>> il y a un problème de format (et uniquement a ce moment) le code ci-dessous donnera des exemples de formatage :
 
Private Sub Export_Click()  'Export dans la feuille excel (valeur calculée)
 
'Sélection de la cellule active sur la feuille active
  With ActiveCell
' -> Valeur en TEP
 
    'Traitement premiere cellule
    .NumberFormat = "0.00E+00"  'Pour Nombre scientifique (a adapter suivant contenu de Label18)
    .Font.Bold = True    'Pour texte en gras
    .Font.ColorIndex = 44 'Pour changer couleur texte
    .Value = Label18
    .Interior.ColorIndex = 50  'Change la couleur de fond de la cellule
                               '50 est l'index de la couleur dans la palette des 56 couleurs.
                               'Voir http://www.mvps.org/dmcritchie/excel/colors.htm (entre autre)
     
    'Traitement cellule colonne suivante
    With .Offset(0, 1)
      .NumberFormat = "@"  'Pour format texte (.Caption est un texte ?)
      .Value = Label19.Caption
      .Interior.ColorIndex = 3 'Change couleur fond
    End With
     
' -> Valeur en tonne de CO2
    'Traitement cellule Ligne suivante
    With .Offset(1, 0)       'Ici Pas de modification de format dans cette exemple
                             ' En Fait toutes les modif de format peuvent etre intégrée
                             ' dans les bloc With (Pour chaque cellule)
      .Value = Label17
    End With
     
    'Traitement cellule colonne suivante
    With .Offset(1, 1)
      .Value = Label20.Caption
    End With
 
' -> Valeur en arbre pour compenser
    'Traitement cellule Ligne suivante
    With .Offset(2, 0)
      .Value = Label16
      .NumberFormat = "0.00" ' (2 digit apres virgule)
    End With
     
    'Traitement cellule colonne suivante
    With .Offset(2, 1)
      .Value = Label21.Caption
    End With
    ' selectionne cellule suivante
    .Offset(3, 0).Select
  End With
End Sub
 
Mcdx


Message édité par mcdx le 12-01-2011 à 15:32:27
Reply

Marsh Posté le 12-01-2011 à 15:28:13    

Si le pb persite sur le calcul a base de string. Il faut utiliser des variables intermediaires du bon type et les fonctions de convertion.
 
Bon Calcul de TEP :sol:  
 
Mcdx


Message édité par mcdx le 12-01-2011 à 15:38:43
Reply

Marsh Posté le 15-01-2011 à 19:37:40    

Je vais tester tout ca merci beaucoup !

Reply

Sujets relatifs:

Leave a Replay

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