Trouver une variable dans une plage de cellules

Trouver une variable dans une plage de cellules - VB/VBA/VBS - Programmation

Marsh Posté le 18-05-2008 à 17:00:46    

:hello:  
 
Salut à tous !
 
J'ai créé ma première boîte sous VB dans laquelle je renseigne pas mal d'informations.
La première contient un code société (liste déroulante reprise du tableau Excel) et autres des informations relatives à la société concernée.
Dans la feuille Excel, j'ai la plage de cellules qui contient la liste des codes sociétés.
Comment retrouver le code société renseigné dans la boîte dans la feuille ? Et ensuite, les informations se reporteront dans les cellules de la ligne correspondantes ?
 
Et une question d'ordre général...  :D  ... existe-t-il un lexique exhaustif des fonctions VB ?
 
Merci d'avance
 


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 18-05-2008 à 17:00:46   

Reply

Marsh Posté le 19-05-2008 à 10:39:51    

scaryfan a écrit :


Dans la feuille Excel, j'ai la plage de cellules qui contient la liste des codes sociétés.
Comment retrouver le code société renseigné dans la boîte dans la feuille ? Et ensuite, les informations se reporteront dans les cellules de la ligne correspondantes ?


première étape, ta feuille a un nom :
affiche ses propriétés et regarde la propriété "name"; supposons que c'est "frmMaFenetre"
idem avec ta zone d'information, elle a un nom. supposons que c'est "cboCodeSociete"
 
donc pour récupérer la valeur dans la fenêtre VB c'est :

Code :
  1. frmMaFenetre.cboCodeSociete.Text


 
pour récupérer la valeur d'une plage (Plage = Range en anglais)
ça doit être un truc du genre :

Code :
  1. Range("A1" ).Value


 
 

scaryfan a écrit :


Et une question d'ordre général...  :D  ... existe-t-il un lexique exhaustif des fonctions VB ?
Merci d'avance


 
tu écris une fonction VB dans l'éditeur, selectionne le mot, appuis sur F1, tu arrive dans l'aide concernant cette fonction, en navigant correctement dans l'aide, t'as toutes les fonctions :p
 

Reply

Marsh Posté le 19-05-2008 à 16:29:38    

Xxxaaavvv a écrit :


première étape, ta feuille a un nom :
affiche ses propriétés et regarde la propriété "name"; supposons que c'est "frmMaFenetre"
idem avec ta zone d'information, elle a un nom. supposons que c'est "cboCodeSociete"
 
donc pour récupérer la valeur dans la fenêtre VB c'est :

Code :
  1. frmMaFenetre.cboCodeSociete.Text


 
pour récupérer la valeur d'une plage (Plage = Range en anglais)
ça doit être un truc du genre :

Code :
  1. Range("A1" ).Value


 
 


 

Xxxaaavvv a écrit :


 
tu écris une fonction VB dans l'éditeur, selectionne le mot, appuis sur F1, tu arrive dans l'aide concernant cette fonction, en navigant correctement dans l'aide, t'as toutes les fonctions :p
 


 
 
Merci beaucoup !
;)
 
Autre question : comment puis-je imposer un format à une zone de texte (TextBox) ? Je veux que les données numériques aient obligatoirement 2 décimales...
 
;)


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 19-05-2008 à 16:36:00    

scaryfan a écrit :


 
 
Merci beaucoup !
;)
 
Autre question : comment puis-je imposer un format à une zone de texte (TextBox) ? Je veux que les données numériques aient obligatoirement 2 décimales...
 
;)


 
la zone de texte affiche une chaine de caractère.
il faut donc que tu lui passe une variable de type String déjà formatée
 
 
 
en gros :
utilise la fonction format
(écrit Format dans l'éditeur, selectionne la fonction, apuis sur F1, t'aura toutes les explications et surtout les exemples)
 
bref quelque chose comme :

Code :
  1. nomDeMaZoneDeTexte.Text = format(valeur, chaineDeFormatage)


 
 
 
 
pour t'aider dans les chaines de formatage
c'est les mêmes que dans la boite de dialogue format des cellules...
(en gros impose 2 décimales a une cellule, et regarde la chaine de formatage employée)

Reply

Marsh Posté le 19-05-2008 à 16:41:02    

Xxxaaavvv a écrit :


 
la zone de texte affiche une chaine de caractère.
il faut donc que tu lui passe une variable de type String déjà formatée
 
 
 
en gros :
utilise la fonction format
(écrit Format dans l'éditeur, selectionne la fonction, apuis sur F1, t'aura toutes les explications et surtout les exemples)
 
bref quelque chose comme :

Code :
  1. nomDeMaZoneDeTexte.Text = format(valeur, chaineDeFormatage)


 
 
 
pour t'aider dans les chaines de formatage
c'est les mêmes que dans la boite de dialogue format des cellules...
(en gros impose 2 décimales a une cellule, et regarde la chaine de formatage employée)


 
Merci, j'essaie ça tout de suite... ;)


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 19-05-2008 à 16:51:22    

scaryfan a écrit :


 
Merci, j'essaie ça tout de suite... ;)


 
Génial... ça marche...
 
Encore une - dernière  :whistle:  - question....
J'ai plusieurs zones de texte dans une boite de dialogue...
Dans les premières, je saisie des nombres...
Dans la dernière, j'aimerais que la somme de ces cellules se calcule dynamiquement... ou plutôt, dès que j'entre une valeur dans une cellule et que je passe à la suivante, la dernière cellule se calcule automatiquement...
ça est possible ???
 
Merci encore pour votre aide...
 
 :hello:


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 19-05-2008 à 17:00:18    

scaryfan a écrit :


 
Génial... ça marche...
 
Encore une - dernière  :whistle:  - question....
J'ai plusieurs zones de texte dans une boite de dialogue...
Dans les premières, je saisie des nombres...
Dans la dernière, j'aimerais que la somme de ces cellules se calcule dynamiquement... ou plutôt, dès que j'entre une valeur dans une cellule et que je passe à la suivante, la dernière cellule se calcule automatiquement...
ça est possible ???
 
Merci encore pour votre aide...
 
 :hello:


 
tu parles de la fenêtre VB ?
 
alors première étape
il faut créer une fonction qui met a jour la dernière cellule :
 

Code :
  1. public sub MiseAJourDeMaZoneTotal()
  2. nomDeMaZoneTotal.Text =  nomDeMaZone1.Text + nomDeMaZone2.Text + (...)
  3. end sub


 
ensuite pour chaque zone que tu peux mettre a jour
tu double click dessus tu arrive dans les évenements
pour l'évenement "change" tu appele la fonction ci-dessus
 

Code :
  1. Private Sub nomDeMaZone1_Change()
  2.    call MiseAJourDeMaZoneTotal
  3. End Sub


 
voila voila...

Reply

Marsh Posté le 19-05-2008 à 17:19:43    

Xxxaaavvv a écrit :


 
tu parles de la fenêtre VB ?
 
alors première étape
il faut créer une fonction qui met a jour la dernière cellule :
 

Code :
  1. public sub MiseAJourDeMaZoneTotal()
  2. nomDeMaZoneTotal.Text =  nomDeMaZone1.Text + nomDeMaZone2.Text + (...)
  3. end sub


 
ensuite pour chaque zone que tu peux mettre a jour
tu double click dessus tu arrive dans les évenements
pour l'évenement "change" tu appele la fonction ci-dessus
 

Code :
  1. Private Sub nomDeMaZone1_Change()
  2.    call MiseAJourDeMaZoneTotal
  3. End Sub


 
voila voila...


 
 :bounce:  
 
Super !!!
J'enregistre mon fichier sur ma clef USB et j'essaie ça ce soir à la maison...
Merci beaucoup...
 
;)
 
P.S. : faut que je m'achète un bouquin sur le VB...  :p  


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 20-05-2008 à 14:54:23    

:hello:  
 
Je me remets sur ma boîte de dialogue.
 
Ch'tite question !
 
Là, j'ai un gros souci... je capte que dalle...  :D  
 
Voici mon code pour une macro qui s'exécute quand je clique sur un bouton dans une feuille Excel :
 

Code :
  1. Private Sub DEBUT_Click()
  2.     Sheets("MAFEUILLE" ).Select
  3.     Range("AJ8" ).Select
  4.    
  5. End Sub


 
C'est simple... je clique sur le bouton (DEBUT), la feuille MAFEUILLE est active et la cellule AJ8 doit être sélectionnée...STOP.
Mais là, j'ai un drôle de message :
  Erreur 1004
  La méthode Select de la classe RANGE a échoué

 :cry:  
 
Quelqu'un peut-il me venir en aide ?
 
 ;)


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 20-05-2008 à 15:38:48    

aille, c'est absolument pas génial de travailler avec les selects...
 
ou alors faut que ta fenêtre VB "perde le focus" AVANT de tenter de selectionner ta plage de cellule....
 
 
EDIT : pourtant j'ai pas de problème chez moi avec ton bout de code ... >_<

Message cité 1 fois
Message édité par Xxxaaavvv le 20-05-2008 à 15:40:04
Reply

Marsh Posté le 20-05-2008 à 15:38:48   

Reply

Marsh Posté le 20-05-2008 à 15:45:24    

Xxxaaavvv a écrit :

aille, c'est absolument pas génial de travailler avec les selects...
 
ou alors faut que ta fenêtre VB "perde le focus" AVANT de tenter de selectionner ta plage de cellule....
 
 
EDIT : pourtant j'ai pas de problème chez moi avec ton bout de code ... >_<


 
Le pire, c'est que j'essaie de contourner le problème avec un autre code.
Ma feuille MAFEUILLE est la deuxième du classeur... alors j'essaie ce code :
 

Code :
  1. Private Sub DEBUT_Click()
  2.     Worksheets(2).Cells(8, 36).Select
  3.            
  4. End Sub


 
et la macro me donne le même message d'erreur....   :??:   ... alors qu'il n'y a pas de RANGE dans le code...
 
 :??:   :??:   :??:
 
 
Au fait, qu'entends-tu par "perdre le focus" ???
 
;)


Message édité par scaryfan le 20-05-2008 à 15:46:07

---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 20-05-2008 à 15:47:15    

si si y a un range :p
 
Worksheets(2).Cells(8, 36)
renvois un objet de type range
et ta méthode select a échouée...
 
tu n'as qu'un seul classeur d'ouvert ? (t'es pas dans le cas de plusieurs classeur ?)

Reply

Marsh Posté le 20-05-2008 à 15:49:44    

autre question  
 
la selection de la feuille ne plante pas ?
(Sheets("MAFEUILLE" ).Select)

Reply

Marsh Posté le 20-05-2008 à 15:51:51    

Xxxaaavvv a écrit :

si si y a un range :p
 
Worksheets(2).Cells(8, 36)
renvois un objet de type range
et ta méthode select a échouée...
 
tu n'as qu'un seul classeur d'ouvert ? (t'es pas dans le cas de plusieurs classeur ?)


 
OK pour l'explication sur le RANGE...  :wahoo:  
Et effectivement, j'ai 2 classeurs ouverts... les - presque - 2 mêmes classeurs... l'un se nomme CLASSEUR.XLS et le deuxième CLASSEUR_ancien.XLS.
C'est dans le premier que ça bugge et le deuxième est une ancienne version... dans lequel il y a la ligne Range("AJ8" ).Select ... mais ça ne bugge pas...
Je capte plus rien...


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 20-05-2008 à 15:56:43    

Xxxaaavvv a écrit :

autre question  
 
la selection de la feuille ne plante pas ?
(Sheets("MAFEUILLE" ).Select)


 
Non ça marche...
Si je mets ActiveCell.Offset(0, 80).Select, la sélection se déplace bien de 80 colonnes...
 
Si j'essaie ce code :

Code :
  1. Worksheets(2).Activate
  2. Cells(17, 2).Select


 
idem... message d'erreur 1004    

Reply

Marsh Posté le 20-05-2008 à 16:04:33    

ok alors essaye plutot un truc du genre :
 

Code :
  1. with Worksheets(2)
  2.    .select
  3.    .range("AJ8" ).Select
  4. end with

Reply

Marsh Posté le 20-05-2008 à 16:09:32    

Xxxaaavvv a écrit :

ok alors essaye plutot un truc du genre :
 

Code :
  1. with Worksheets(2)
  2.    .select
  3.    .range("AJ8" ).Select
  4. end with



 
 
ça marche ...  :bounce:  
ça bugge plus...  :p  
 
Bizarre... non ?

Reply

Marsh Posté le 20-05-2008 à 16:10:04    

non :p

Reply

Marsh Posté le 20-05-2008 à 16:10:55    

en fait  

Code :
  1. with Worksheets(2)
  2.    .select
  3.    .range("AJ8" ).Select
  4. end with


est équivalent à  

Code :
  1. Worksheets(2).select
  2. Worksheets(2).range("AJ8" ).Select


 
 
alors que ton code était plutot équivalent à

Code :
  1. Worksheets(2).select
  2. Activesheet.range("AJ8" ).Select

Message cité 1 fois
Message édité par Xxxaaavvv le 20-05-2008 à 16:11:47
Reply

Marsh Posté le 20-05-2008 à 16:13:27    

Xxxaaavvv a écrit :

en fait  

Code :
  1. with Worksheets(2)
  2.    .select
  3.    .range("AJ8" ).Select
  4. end with


est équivalent à  

Code :
  1. Worksheets(2).select
  2. Worksheets(2).range("AJ8" ).Select


 
 
alors que ton code était plutot équivalent à

Code :
  1. Worksheets(2).select
  2. Activesheet.range("AJ8" ).Select



 
Si c'est équivalent, pourquoi l'un fonctionne et pas l'autre ???
 :??:  


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 20-05-2008 à 16:18:26    

Code :
  1. Worksheets(2).select
  2. Worksheets(2).range("AJ8" ).Select


 
ne marche pas non plus ? :D
 
bah la désolé, je sèche :o

Message cité 1 fois
Message édité par Xxxaaavvv le 20-05-2008 à 16:18:45
Reply

Marsh Posté le 20-05-2008 à 16:20:10    

Xxxaaavvv a écrit :

Code :
  1. Worksheets(2).select
  2. Worksheets(2).range("AJ8" ).Select


 
ne marche pas non plus ? :D
 
bah la désolé, je sèche :o


 
Tant pis !
On a contourné le problème quand même...
Merci de ton aide !!!
 :sol:


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 21-05-2008 à 07:06:31    

Xxxaaavvv a écrit :


 
tu parles de la fenêtre VB ?
 
alors première étape
il faut créer une fonction qui met a jour la dernière cellule :
 

Code :
  1. public sub MiseAJourDeMaZoneTotal()
  2. nomDeMaZoneTotal.Text =  nomDeMaZone1.Text + nomDeMaZone2.Text + (...)
  3. end sub


 
ensuite pour chaque zone que tu peux mettre a jour
tu double click dessus tu arrive dans les évenements
pour l'évenement "change" tu appele la fonction ci-dessus
 

Code :
  1. Private Sub nomDeMaZone1_Change()
  2.    call MiseAJourDeMaZoneTotal
  3. End Sub


 
voila voila...


 
Salut Xxxaaavvv !
 
J'ai essayé ce que tu me proposes plus haut... ça fonctionne bien...
Dans ma boîte de dialogue, lorsque je modifie nomDeMaZone1, nomDeMaZoneTotal se modifie automatiquement (somme d'autres variable nomDeMaZone1, nomDeMaZone2...).
Le problème c'est que ces variables se concatenent...
Exemple :
nomDeMaZone1 = 1.25
nomDeMaZone2 = 2.75
la macro donne 1.252.75 et non 4.00  :non:  
 
... ???
 
C'est un problème de formatage de variables ?
 
 :hello:


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 21-05-2008 à 09:38:58    

de conversion de donnée avant de faire l'opération :p
au moment ou tu additionnes :
 
nomDeMaZoneTotal.Text =  nomDeMaZone1.Text + nomDeMaZone2.Text + (...)
 
bah faut plutot faire :
 
nomDeMaZoneTotal.Text =  cdbl(nomDeMaZone1.Text) + cdbl(nomDeMaZone2.Text) + cdbl(...)
 
 
 
cdbl converti la chaine de caractère en nombre à virgule
et l'addition se fait correctement.
 
(une addition de chaine de caractère = concaténation :) )

Message cité 2 fois
Message édité par Xxxaaavvv le 21-05-2008 à 09:39:44
Reply

Marsh Posté le 21-05-2008 à 09:42:15    

Xxxaaavvv a écrit :

de conversion de donnée avant de faire l'opération :p
au moment ou tu additionnes :
 
nomDeMaZoneTotal.Text =  nomDeMaZone1.Text + nomDeMaZone2.Text + (...)
 
bah faut plutot faire :
 
nomDeMaZoneTotal.Text =  cdbl(nomDeMaZone1.Text) + cdbl(nomDeMaZone2.Text) + cdbl(...)
 
 
 
cdbl converti la chaine de caractère en nombre à virgule
et l'addition se fait correctement.
 
(une addition de chaine de caractère = concaténation :) )


 
Merci beaucoup...
Je rame pas mal en fait...
Tu aurais éventuellement une référence de livre(s) ou manuel(s) à me recommander pour bien apprendre le VB ?
 
 ;)  


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 21-05-2008 à 09:46:35    

heu :p
 
perso je suis autodidacte, et je me suis basé sur la docs de microsoft et le web :)
 
désolé, j'ai pas de bouquin à conseiller.
 
C'est en ramant qu'on se muscle !

Message cité 1 fois
Message édité par Xxxaaavvv le 21-05-2008 à 09:49:44
Reply

Marsh Posté le 21-05-2008 à 10:00:14    

Xxxaaavvv a écrit :

heu :p
 
perso je suis autodidacte, et je me suis basé sur la docs de microsoft et le web :)
 
désolé, j'ai pas de bouquin à conseiller.
 
C'est en ramant qu'on se muscle !


 
Effectivement... c'est en pratiquant qu'on apprend...
Perso, j'aime bien avoir un manuel pour au moins connaitre les fonctions, les codes...
 
Car dans la soluce que tu me donnes pour faire la somme (cdbl), ce serait plus simple que j'aie un manuel...
Car quand je fais une recherche sur le net, on arrive pas de suite sur la solution...
Cela dit, ça se trouve peut-être sur le net ce genre de liste.

Reply

Marsh Posté le 21-05-2008 à 10:04:29    

Xxxaaavvv a écrit :

de conversion de donnée avant de faire l'opération :p
au moment ou tu additionnes :
 
nomDeMaZoneTotal.Text =  nomDeMaZone1.Text + nomDeMaZone2.Text + (...)
 
bah faut plutot faire :
 
nomDeMaZoneTotal.Text =  cdbl(nomDeMaZone1.Text) + cdbl(nomDeMaZone2.Text) + cdbl(...)
 
 
 
cdbl converti la chaine de caractère en nombre à virgule
et l'addition se fait correctement.
 
(une addition de chaine de caractère = concaténation :) )


 
??? j'ai un message d'erreur... incomptabilité de type...
 :??:  


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 21-05-2008 à 10:28:46    

aille je viens de penser que tu avais peut etre des zones vides...
 
je te conseil de faire une fonction de conversion comme celle-ci :

Code :
  1. Public Function dblConversion(strValeur As String) As Double
  2.    If IsNumeric(strValeur) Then
  3.       dblConversion = CDbl(strValeur)
  4.    Else
  5.       dblConversion = 0
  6.    End If
  7. End Function


 
et de l'utiliser a la place de Cdbl

Message cité 1 fois
Message édité par Xxxaaavvv le 21-05-2008 à 10:30:19
Reply

Marsh Posté le 21-05-2008 à 10:51:09    

Xxxaaavvv a écrit :

aille je viens de penser que tu avais peut etre des zones vides...
 
je te conseil de faire une fonction de conversion comme celle-ci :

Code :
  1. Public Function dblConversion(strValeur As String) As Double
  2.    If IsNumeric(strValeur) Then
  3.       dblConversion = CDbl(strValeur)
  4.    Else
  5.       dblConversion = 0
  6.    End If
  7. End Function


 
et de l'utiliser a la place de Cdbl


 
???
 
J'insère ce code ??? Tout simplement ?
 
???


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 21-05-2008 à 10:57:39    

oui, c'est une fonction que je t'ai écrite qui remplace le "cdbl"

Reply

Marsh Posté le 21-05-2008 à 11:03:18    

Donc, en lieu et place de la ligne :
  nomDeMaZoneTotal.Text =  cdbl(nomDeMaZone1.Text) + cdbl(nomDeMaZone2.Text) + cdbl(...)  
Je mets :
  nomDeMaZoneTotal.Text =  nomDeMaZone1.Text + nomDeMaZone2.Text + ...  
 
Et ta fonction de conversion à la fin de mon code...
 
 :)


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 21-05-2008 à 11:05:35    

tu met bien la fonction deconversion ala fin de ton code ...
 
 
par contre  
 

Code :
  1. nomDeMaZoneTotal.Text =  cdbl(nomDeMaZone1.Text) + cdbl(nomDeMaZone2.Text) + cdbl(...)


deviens :

Code :
  1. nomDeMaZoneTotal.Text =  dblConversion(nomDeMaZone1.Text) + dblConversion(nomDeMaZone2.Text) + dblConversion(...)


Reply

Marsh Posté le 21-05-2008 à 11:21:49    

Xxxaaavvv a écrit :

tu met bien la fonction deconversion ala fin de ton code ...
 
 
par contre  
 

Code :
  1. nomDeMaZoneTotal.Text =  cdbl(nomDeMaZone1.Text) + cdbl(nomDeMaZone2.Text) + cdbl(...)


deviens :

Code :
  1. nomDeMaZoneTotal.Text =  dblConversion(nomDeMaZone1.Text) + dblConversion(nomDeMaZone2.Text) + dblConversion(...)




 
OK j'essaie... ;)


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 21-05-2008 à 11:25:35    

Xxxaaavvv a écrit :

tu met bien la fonction deconversion ala fin de ton code ...
 
 
par contre  
 

Code :
  1. nomDeMaZoneTotal.Text =  cdbl(nomDeMaZone1.Text) + cdbl(nomDeMaZone2.Text) + cdbl(...)


deviens :

Code :
  1. nomDeMaZoneTotal.Text =  dblConversion(nomDeMaZone1.Text) + dblConversion(nomDeMaZone2.Text) + dblConversion(...)




 
ça marche !!!
pour ravoir un format avec deux décimales, je mets :
nomDeMaZoneTotal.Text =  format(dblConversion(nomDeMaZone1.Text) + dblConversion(nomDeMaZone2.Text) + dblConversion(...) ;  "##,##0.00" )
 
???


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le 21-05-2008 à 11:38:36    

bah essaye tu verra bien :D
 
sauf que c'est pas un ";" mais un ","
 

Citation :

nomDeMaZoneTotal.Text =  format(dblConversion(nomDeMaZone1.Text) + dblConversion(nomDeMaZone2.Text) + dblConversion(...) ,  "##,##0.00" )


Reply

Marsh Posté le 21-05-2008 à 11:51:55    

Le fait de rajouter "Format" donne bien un résultat avec 2 décimales même si les données additionnées sont entières... c'est ce que je veux...
Par contre, nouvel obstable...  :fou:  
 
J'ai 40 variables à additionner et VB me dit "Erreur de compilation ; Attendu : nom ligne ou étiquette ou instruction ou fin d'instruction"
A priori, il y a trop de variables ...
J'ai donc créé deux variables supplémentaires qui font la somme d'une première partie des anciennes variables et l'autre l'autre moitié...
ET ça marche... ;)
 
C'est du bricolage...  :D


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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