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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Pb valeur dans une cellule

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA] Pb valeur dans une cellule

n°1913358
scaryfan
Apple Inside
Posté le 10-08-2009 à 11:51:28  profilanswer
 

:hello:  
 
Salut à tous ceux qui ne sont pas à la plage !!!  :na:  
 
J'ai un souci car je n'arrive pas à comprendre un truc dans Excel.
 
Voilà mon problème :
 
J'ai une userform (BOITE) dans laquel j'ai un champs dans lequel je saisis un nombre (ex : 11,25).
Cette valeur doit alimenter la cellule A1 d'un classeur
Et la cellule A2 du classeur multiplie A1 par une valeur en A3...
 
Voici les codes que j'utilise :
P.S. : mon champs s'appelle R015

Code :
  1. Private Sub R015_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  2.     If KeyAscii = Asc(Point) Then
  3.         If InStr(R015, Virgule) = 0 Then
  4.             KeyAscii = Asc(Virgule)
  5.         Else
  6.             KeyAscii = 0
  7.         End If
  8.     ElseIf InStr(entrees_decimales_permises, Chr(KeyAscii)) = 0 Then
  9.         KeyAscii = 0
  10.     ElseIf InStr(R015, Virgule) > 0 And KeyAscii = Asc(Virgule) Then
  11.         KeyAscii = 0
  12.     End If
  13.    
  14.     If KeyAscii = 13 Then SendKeys "{TAB}": KeyAscii = 0
  15. End Sub


 

Code :
  1. Private Sub R015_AfterUpDate()
  2.     If Not IsNumeric(R015.Value) Then
  3.         R015.Value = 0
  4.         R015.Value = Format(R015.Value, "##,##0.00" )
  5.     End If
  6.        
  7.     With BOITE
  8.         .R015.Value = Format(R015.Value, "##,##0.00" )
  9.     End With
  10.        
  11.     If R015.Value < 0 Then
  12.         MsgBox "ATTENTION, vous avez saisi une valeur négative !!!", vbExclamation, "ALERTE !!!"
  13.     End If
  14.    
  15.     Sheets("RFN" ).Range("A1" ).Value = R015.Value
  16.      
  17. End Sub


 
Mon souci est que la valeur qui se met en A1 de ma feuille est bien repris dans le calcul en A2.
Si A1 = 100, si A3 = 0,5 alors A2 est égal à 50...
Par contre, si je sélectionne à la souris la cellules A1 et A2, normalement en bas à droite, je dois obtenir la somme des 2 cellules (soit 150,00)... or, je n'ai que la valeur calculée en A2 (soit 50,00)... la valeur en A1 n'est pas prise en compte...
Si je vais en A1, que je tape F2 et que je valide juste après... ça rectifie le problème...
 
Franchement, j'y comprends plus rien...  :pt1cable:  :cry:


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
mood
Publicité
Posté le 10-08-2009 à 11:51:28  profilanswer
 

n°1913360
scaryfan
Apple Inside
Posté le 10-08-2009 à 11:54:20  profilanswer
 

Par contre, si en A4, je tape la formule "=A1+A2" la somme est bonne... :(
Avec la souris, ça ne marche pas... !!!????


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
n°1913365
scaryfan
Apple Inside
Posté le 10-08-2009 à 11:59:49  profilanswer
 

J'ai l'impression que ma valeur est considérée comme du texte dans la cellule et comme une valeur pour le calcul des autres cellules... !?


---------------
iMac 4Ghz (fin 2015) RAM 16Go SSD 256Go SSD 2To
n°1913407
_xme_
Posté le 10-08-2009 à 12:36:07  profilanswer
 

Salut
Tout d'abord je code seulement en VBS, du coup je ne suis pas sur de la synthaxe  
perso je crois que pour défini un format c'est plutôt

Code :
  1. R015.NumberFormat = "0.0"


es-tu sur de la fonction format???
perso ca me fait plus penser à une fonction de chaîne de charactere et surtout je ne vois pas pourquoi il faudrait utiliser une affectation lors d'un changement de mise en forme. Perso ca me choque  ;)

n°1914170
_maxime_
Posté le 11-08-2009 à 22:22:11  profilanswer
 

Vérifie le format (Ctrl+Shift+1) de tes cellules A1, A2, A3 pour voir si elles ont le même le format.
 
Et si tu sélectionnes A1 et A3 ? Et A2 et A3 ? Ça donne quoi ?
 
Sinon peut-être un problème de mise à jour, de rafraîchissement d'où le F2 qui rectifie le problème ? Si c'est çà, je te parie que si tu saisis dans ton useform la première fois :
(avec en A3 = 0,5)
100 et que tu sélectionnes A1+A2 : tu auras 50 (ce que tu as fait) en bas à droite.
 
Puis successivement dans le Useform :
 
60 et que tu sélectionnes A1+A2 : tu auras 130 (100+30) en bas à droite.
40 et que tu sélectionnes A1+A2 : tu auras 80 (60+20) en bas à droite.
 
Il prend la valeur antérieure. Bien qu'il y ait 100 dans A1, quand tu sélectionnes à la souris A1+A2, "la souris calcule" Rien=0+50 = 50 car en A1, avant 100, y avait rien.
 
Un ActiveSheet.Update ou [nom de la feuille].update arragerait les choses pt'être ?


Message édité par _maxime_ le 11-08-2009 à 22:25:10

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

  [VBA] Pb valeur dans une cellule

 

Sujets relatifs
[VBA] Problème avec Workbooks.Open[VBA] problème dans une boucle
[VBA] Charger une DLL vbcrypt.dllPb de positionnement de div avec IE6-IE7
[Excel] Inverser l'ordre des mots dans une cellule[VBA]ouvrir un page internet et inscrire un code pour ouvrir undossier
VBA Graphiques[VBA] ouvrir un fichier dont le repertoire est choisi par lutilisateur
[VBA] Comment récupérer des propriétés avec BuiltinDocumentPropertiesAfficher lisiblement un code VBA sur un doc word
Plus de sujets relatifs à : [VBA] Pb valeur dans une cellule


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