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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Trouver une variable dans une plage de cellules

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Trouver une variable dans une plage de cellules

n°1733357
scaryfan
Apple Inside
Posté le 18-05-2008 à 17:00:46  profilanswer
 

: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
mood
Publicité
Posté le 18-05-2008 à 17:00:46  profilanswer
 

n°1733579
Xxxaaavvv
Posté le 19-05-2008 à 10:39:51  profilanswer
 

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
 

n°1733824
scaryfan
Apple Inside
Posté le 19-05-2008 à 16:29:38  profilanswer
 

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
n°1733829
Xxxaaavvv
Posté le 19-05-2008 à 16:36:00  profilanswer
 

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)

n°1733833
scaryfan
Apple Inside
Posté le 19-05-2008 à 16:41:02  profilanswer
 

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
n°1733857
scaryfan
Apple Inside
Posté le 19-05-2008 à 16:51:22  profilanswer
 

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
n°1733875
Xxxaaavvv
Posté le 19-05-2008 à 17:00:18  profilanswer
 

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...

n°1733899
scaryfan
Apple Inside
Posté le 19-05-2008 à 17:19:43  profilanswer
 

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
n°1734555
scaryfan
Apple Inside
Posté le 20-05-2008 à 14:54:23  profilanswer
 

: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
n°1734593
Xxxaaavvv
Posté le 20-05-2008 à 15:38:48  profilanswer
 

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
mood
Publicité
Posté le 20-05-2008 à 15:38:48  profilanswer
 

n°1734599
scaryfan
Apple Inside
Posté le 20-05-2008 à 15:45:24  profilanswer
 

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
n°1734604
Xxxaaavvv
Posté le 20-05-2008 à 15:47:15  profilanswer
 

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 ?)

n°1734608
Xxxaaavvv
Posté le 20-05-2008 à 15:49:44  profilanswer
 

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

n°1734615
scaryfan
Apple Inside
Posté le 20-05-2008 à 15:51:51  profilanswer
 

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
n°1734623
scaryfan
Apple Inside
Posté le 20-05-2008 à 15:56:43  profilanswer
 

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    

n°1734636
Xxxaaavvv
Posté le 20-05-2008 à 16:04:33  profilanswer
 

ok alors essaye plutot un truc du genre :
 

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

n°1734640
scaryfan
Apple Inside
Posté le 20-05-2008 à 16:09:32  profilanswer
 

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 ?

n°1734641
Xxxaaavvv
Posté le 20-05-2008 à 16:10:04  profilanswer
 

non :p

n°1734643
Xxxaaavvv
Posté le 20-05-2008 à 16:10:55  profilanswer
 

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
n°1734644
scaryfan
Apple Inside
Posté le 20-05-2008 à 16:13:27  profilanswer
 

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
n°1734646
Xxxaaavvv
Posté le 20-05-2008 à 16:18:26  profilanswer
 

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
n°1734651
scaryfan
Apple Inside
Posté le 20-05-2008 à 16:20:10  profilanswer
 

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
n°1734982
scaryfan
Apple Inside
Posté le 21-05-2008 à 07:06:31  profilanswer
 

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
n°1735023
Xxxaaavvv
Posté le 21-05-2008 à 09:38:58  profilanswer
 

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
n°1735026
scaryfan
Apple Inside
Posté le 21-05-2008 à 09:42:15  profilanswer
 

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
n°1735028
Xxxaaavvv
Posté le 21-05-2008 à 09:46:35  profilanswer
 

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
n°1735033
scaryfan
Apple Inside
Posté le 21-05-2008 à 10:00:14  profilanswer
 

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.

n°1735036
scaryfan
Apple Inside
Posté le 21-05-2008 à 10:04:29  profilanswer
 

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
n°1735064
Xxxaaavvv
Posté le 21-05-2008 à 10:28:46  profilanswer
 

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
n°1735075
scaryfan
Apple Inside
Posté le 21-05-2008 à 10:51:09  profilanswer
 

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
n°1735082
Xxxaaavvv
Posté le 21-05-2008 à 10:57:39  profilanswer
 

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

n°1735087
scaryfan
Apple Inside
Posté le 21-05-2008 à 11:03:18  profilanswer
 

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
n°1735090
Xxxaaavvv
Posté le 21-05-2008 à 11:05:35  profilanswer
 

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(...)


n°1735098
scaryfan
Apple Inside
Posté le 21-05-2008 à 11:21:49  profilanswer
 

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
n°1735103
scaryfan
Apple Inside
Posté le 21-05-2008 à 11:25:35  profilanswer
 

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
n°1735111
Xxxaaavvv
Posté le 21-05-2008 à 11:38:36  profilanswer
 

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" )


n°1735120
scaryfan
Apple Inside
Posté le 21-05-2008 à 11:51:55  profilanswer
 

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
mood
Publicité
Posté le   profilanswer
 


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

  Trouver une variable dans une plage de cellules

 

Sujets relatifs
Trouver mot de passeBatch Linux, trouver un fichier, se déplacer dans le répertoire et exe
C# probleme pour trouver mon System.IO.Filecherche a decodé MD5 sachant le nombre de caractere a trouver ?
[Shell/Bash] variable dans la commande sed[Shell] test avec une variable
Positionnement et hauteur variable en CSSProbleme tableau et cellules html
declaration d'une variable et newPerl :comment forcer une variable sur un certain nombre de caractères?
Plus de sujets relatifs à : Trouver une variable dans une plage de cellules


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