Pb exportation de données vers feuille excel - VB/VBA/VBS - Programmation
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
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
Mcdx
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