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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA-EXCEL 2003] argument non facultatif pour textbox

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA-EXCEL 2003] argument non facultatif pour textbox

n°1250569
sakuraba
Posté le 22-11-2005 à 10:55:39  profilanswer
 

bonjour,
 
je voudrais additionner les nombres contenus ds les textbox pour les afficher ds une derniere nommée TextBoxMontantTotal
 

Code :
  1. TotalAcompte = 0
  2. TotalAcompte = (TextBoxMontant1.Value + TextBoxMontant2.Value + TextBoxMontant3.Value + TextBoxMontant4.Value + TextBoxMontant5.Value + TextBoxMontant6.Value + TextBoxMontant7.Value)
  3. TextBoxMontantTotal.Value = TotalAcompte

 
 
merci d'avance


Message édité par sakuraba le 22-11-2005 à 16:36:06
mood
Publicité
Posté le 22-11-2005 à 10:55:39  profilanswer
 

n°1250595
watashi
La démotivation : JAMAIS !
Posté le 22-11-2005 à 11:28:08  profilanswer
 

Et qu'est-ce qui ne marche pas dans ta formule ?
 


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1250616
sakuraba
Posté le 22-11-2005 à 11:53:37  profilanswer
 

il additionne pas il concatene :)

n°1250659
watashi
La démotivation : JAMAIS !
Posté le 22-11-2005 à 12:33:02  profilanswer
 

Oki il faut que tu utilise val(expression) :
 
TotalAcompte = val(TextboxMontant1)+Val(TextBoxMontant2)....
 
@+


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1250703
sakuraba
Posté le 22-11-2005 à 14:05:27  profilanswer
 

et comment je pourrais faire une boucle pour que ça soit moins long  
genre :

Code :
  1. Sub MontatTotal()
  2. Dim i
  3. TotalAcompte = 0
  4. For i = 1 To 7
  5. TotalAcompte = TotalAcompte + Val(TextBoxMontant(i).Value)
  6. next i
  7. TextBoxMontantTotal.Value = TotalAcompte
  8. End Sub


Message édité par sakuraba le 22-11-2005 à 14:18:27
n°1250753
watashi
La démotivation : JAMAIS !
Posté le 22-11-2005 à 15:11:04  profilanswer
 

Oui tu peux faire une macro comme celle-ci :

Code :
  1. Sub MonTotal()
  2. With UserForm1
  3.      Dim i As Integer
  4.      MontantTotal = 0
  5.      For i = 1 To 7
  6.           MontantTotal = MontantTotal + Val(.Controls("TextBoxMontant" & i).Value)
  7.      Next i
  8.      .TextBoxMontantTotal.Value = MontantTotal
  9. End With
  10. End Sub


Et l'appeler quand tu la souhaites pour mettre à jour ton total (dans les procèdures textbox_change ou textbox_afterupdate par exemple).
 
@+


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1250831
sakuraba
Posté le 22-11-2005 à 16:31:45  profilanswer
 

pourquoi ça marche pas  
 
 

Code :
  1. Private Sub CommandButton1_Click()
  2. With UserForm1
  3. Dim i As interger
  4.     For i = 1 To 7
  5.         If IsNumeric(Val.Controls("TextBoxMontant" & i).Value) = true Then
  6.             Range("A4" & i).Value = Val.Controls("TextBoxMontant" & i).Value
  7.         Else
  8.             Msg = MsgBox("l'acompte N° " & i & " n'est pas un nombre" )
  9.         End If
  10.     Next i
  11. End With
  12. End Sub


 
le message d'erreur  :heink:  
 
argument non facultatif => Val

Message cité 1 fois
Message édité par sakuraba le 22-11-2005 à 16:35:18
n°1250848
watashi
La démotivation : JAMAIS !
Posté le 22-11-2005 à 16:46:36  profilanswer
 

sakuraba a écrit :

pourquoi ça marche pas

Parce que tu as enlevé les parenthèses là :
Range("A4" & i).Value = Val(.Controls("TextBoxMontant" & i).Value).
 
 
Edit : et également là :If IsNumeric(Val(.Controls("TextBoxMontant" & i).Value)) = true Then  
et ici : Range("A4" & i).Value = Val(.Controls("TextBoxMontant" & i).Value)
@+


Message édité par watashi le 22-11-2005 à 16:54:04

---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1250851
sakuraba
Posté le 22-11-2005 à 16:50:59  profilanswer
 

nan c est pas celui là  
 
http://img396.imageshack.us/img396/5642/sanstitre26gn.th.jpg

n°1250858
watashi
La démotivation : JAMAIS !
Posté le 22-11-2005 à 16:55:24  profilanswer
 

sakuraba a écrit :

nan c est pas celui là


Ben et avec les 3 ?


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
mood
Publicité
Posté le 22-11-2005 à 16:55:24  profilanswer
 

n°1250877
sakuraba
Posté le 22-11-2005 à 17:10:47  profilanswer
 

ça marche mais il ne fait toujours pas la difference entre un nombre et un caractere :)
 
le else ne  sert à rien

n°1250897
watashi
La démotivation : JAMAIS !
Posté le 22-11-2005 à 17:29:33  profilanswer
 

sakuraba a écrit :

ça marche mais il ne fait toujours pas la difference entre un nombre et un caractere :)
 
le else ne  sert à rien


C'est parce que val() sur des lettres renvois toujours 0. il faut enlever le val de ton isnumeric :)

n°1250903
sakuraba
Posté le 22-11-2005 à 17:39:09  profilanswer
 

OK j essaye demain bonne soirée

n°1251241
sakuraba
Posté le 23-11-2005 à 09:08:37  profilanswer
 

merci watashi  
au faite ça veut dire quoi watashi ?

n°1251309
watashi
La démotivation : JAMAIS !
Posté le 23-11-2005 à 11:11:21  profilanswer
 

Ca veut dire moi ou je en japonnais, mon pseudo remonte à une certaine crise d'identité ;)
Et sakuraba ?

n°1251355
sakuraba
Posté le 23-11-2005 à 11:48:14  profilanswer
 

heu etant fan et pratiquant de sport de combat  
je me suis approprié le prenom d'un combattant Kazushi Sakuraba japonais aussi ;)

n°1251358
watashi
La démotivation : JAMAIS !
Posté le 23-11-2005 à 11:49:55  profilanswer
 

sakuraba a écrit :

heu etant fan et pratiquant de sport de combat  
je me suis approprié le prenom d'un combattant Kazushi Sakuraba japonais aussi ;)


C'est po bien de voler  :o  :non:  
 
 
 
lollll :lol:  :D  :whistle:

n°1251488
sakuraba
Posté le 23-11-2005 à 14:04:37  profilanswer
 

lol  
 
sinon j'ai changé isnumeric par isnumber car les nombres à virgule ne marchaient pas  
 
http://img505.imageshack.us/img505/1122/sanstitre24di.th.jpg

n°1251529
watashi
La démotivation : JAMAIS !
Posté le 23-11-2005 à 14:43:19  profilanswer
 

Je connaissais pas isnumber merci pour l'info :D


Message édité par watashi le 23-11-2005 à 14:43:55

---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1251546
sakuraba
Posté le 23-11-2005 à 14:53:03  profilanswer
 

et ça marche toujours pa s

n°1251562
watashi
La démotivation : JAMAIS !
Posté le 23-11-2005 à 15:12:52  profilanswer
 

Redonnes ton code tel que tu l'as modifier et cequi marche pas exacteemnt. C'est toujours le else qui se fait pas ?


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1251660
sakuraba
Posté le 23-11-2005 à 17:07:08  profilanswer
 

Code :
  1. Sub TotalAcompte()
  2. With UserForm1
  3.      Dim i As Integer
  4.      MontantTotal = 0
  5.      For i = 1 To 7
  6.           MontantTotal = MontantTotal + .Controls("TextBoxMontant" & i).Value
  7.      Next i
  8.      .TextBoxMontantTotal.Value = MontantTotal
  9. End With
  10. End Sub
  11. --------------------------------------------------
  12. Sub VerifAcompte()
  13. Sheets("Feuil1" ).Unprotect
  14. With UserForm1
  15. Dim i As Integer
  16.     For i = 1 To 7
  17.         If .Controls("TextBoxDate" & i).Value = "" And .Controls("TextBoxMontant" & i).Value = "0" Then
  18.        
  19.         Else
  20.             If IsDate(.Controls("TextBoxDate" & i).Value) And .Controls("TextBoxMontant" & i).Value <> "0" And IsNumeric(.Controls("TextBoxMontant" & i).Value) Then
  21.                         Sheets("Feuil1" ).Range("D4" & i + 1).Value = .Controls("TextBoxDate" & i).Value
  22.             Else
  23.                         Msg = MsgBox("La ligne d'acompte N° " & i & " n'est pas valide", vbCritical)
  24.             End If
  25.         End If
  26.     Next i
  27. End With
  28. End Sub


 
donc je voudrais faire
 
si j'ai pas eut de msgbox ouverte ds VerifAcompte j execute TotalAcompte


Message édité par sakuraba le 23-11-2005 à 17:07:51
n°1251676
sakuraba
Posté le 23-11-2005 à 17:14:15  profilanswer
 

à la fin de Msg = MsgBox("La ligne d'acompte N° " & i & " n'est pas valide", vbCritical) j'ai mit exit sub
 
comme ça je vais pas à la fonction TotalAcompte

n°1251677
watashi
La démotivation : JAMAIS !
Posté le 23-11-2005 à 17:15:01  profilanswer
 

Ok je vois ce que tu veux faire.
 
Bon voilà ta fonction corrigée :

Code :
  1. Sub TotalAcompte()
  2. With UserForm1
  3.      Dim i As Integer
  4.      MontantTotal = 0
  5.      For i = 1 To 7
  6.           MontantTotal = MontantTotal + .Controls("TextBoxMontant" & i).Value
  7.      Next i
  8.      .TextBoxMontantTotal.Value = CCur(MontantTotal)
  9. End With
  10. End Sub


Mais elle marche seulement si tu mets en place pour tous tes textbox sauf montanttotal ceci :

Code :
  1. Private Sub TextBoxMontant1_afterupdate()
  2.      If Not IsNumeric(CCur(Val(TextBoxMontant1.Value))) Then
  3.           MsgBox ("Cette valeur doit être numérique" )
  4.           TextBoxMontant2.Value = 0
  5.      Else
  6.      TextBoxMontant1.Value = CCur(Val(TextBoxMontant1.Value))
  7.      End If
  8.      Call TotalAcompte
  9. End Sub


Celà te fait : le contrôle de saisie numérique (isnumber désolée n'existe pas chez moi...) , le remplacement du "." saisi par la "," qui rend compréhensible, Ton montant total est mis à jour à chaque fin de saise dans un textbox.
 
bon courage  


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1251688
watashi
La démotivation : JAMAIS !
Posté le 23-11-2005 à 17:18:27  profilanswer
 

oups j'ai lu et répondu sans lire ton edit faut que je regarde ton histoire de verif accompte.
 
demain par contre ;)
 
Edit : il te manque pleins de bout sur ta sub verif accmpte ... je comprends pas bien... tu lances quand chacune des macros ?


Message édité par watashi le 23-11-2005 à 17:23:02

---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1251702
sakuraba
Posté le 23-11-2005 à 17:22:27  profilanswer
 

merci trop sympa de m aider à finir cette bombe de prog lol

n°1251709
watashi
La démotivation : JAMAIS !
Posté le 23-11-2005 à 17:24:28  profilanswer
 

sakuraba a écrit :

merci trop sympa de m aider à finir cette bombe de prog lol


 
Je t'aide pas à faire des explosifs aumoins :o  ni a enregistrer le paiement de leur accompte  :o  
 
lol  :lol:  :whistle:


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1251729
sakuraba
Posté le 23-11-2005 à 17:46:49  profilanswer
 

lol

n°1252070
sakuraba
Posté le 24-11-2005 à 10:18:13  profilanswer
 

Code :
  1. Private Sub verifier_Click()
  2. ' enleve la protection de la feuille pour rentrer les infos
  3. Sheets("Feuil1" ).Unprotect
  4. 'verification de societe à ref
  5. Call SupprCell
  6. Call VerifInfo
  7. Call VerifAcompte
  8. Call FabricationEnTete
  9. 'protege la feuille
  10. Sheets("Feuil1" ).Protect
  11. End Sub


Code :
  1. Sub VerifAcompte()
  2. Sheets("Feuil1" ).Unprotect
  3. With UserForm1
  4. Dim i As Integer
  5.     For i = 1 To 7
  6.         If .Controls("TextBoxDate" & i).Value = "" And .Controls("TextBoxMontant" & i).Value = "0" Then
  7.        
  8.         Else
  9.             If IsDate(.Controls("TextBoxDate" & i).Value) And .Controls("TextBoxMontant" & i).Value <> "0" And IsNumeric(.Controls("TextBoxMontant" & i).Value) Then
  10.                         Sheets("Feuil1" ).Range("A4" & i + 1).Value = CCur(.Controls("TextBoxMontant" & i).Value)
  11.                         Sheets("Feuil1" ).Range("D4" & i + 1).Value = .Controls("TextBoxDate" & i).Value
  12.                         Call TotalAcompte
  13.             Else
  14.                        Msg = MsgBox("La ligne d'acompte N° " & i & " n'est pas valide", vbCritical): Exit Sub
  15.                    
  16.             End If
  17.         End If
  18.     Next i
  19. End With
  20. End Sub


 
dans les fonctions j'ai des msgbox qui s'affiche s'il y a des erreurs donc je voudrais que s'il n'y a aucune msgbox qui se lance ( donc pas d erreur ds mon formulaire ) que ça deverrouille le bouton creation  
 
http://img291.imageshack.us/img291/3518/sanstitre26qc.th.jpg
 


---------------
Newsletter RCZ : inscriptions compliquées ou réceptions tardives ? Mon blog la partage sans délai. C est ici que ça se passe : https://gravelparis.com/
n°1252092
ziold
L'original...
Posté le 24-11-2005 à 10:53:00  profilanswer
 

Salut
Le mieux pour ça est de créer une variable booléenne (vrai ou faux). Tu lui donne un état de base, tu exécutes ton code. En cas d'erreur (donc dans le else), tu changes l'état de ta variable. A la fin, il te suffit d'activer ou non le bouton si la valeur de ta variable est ou non identique à celui du début.
C 'est clair ??? Sinon j'écrirais ça vite fais...

n°1252098
ziold
L'original...
Posté le 24-11-2005 à 10:55:58  profilanswer
 

Au temps pour moi ça sert à rien vu le Exit SUb...  
t'as cas désactiver le bouton au début (comme ça si tu sort de ta boucle il sera désactivé), et de le réactiver à la fin (si le programmes arrive jusque là c'est que tout c'est bien passé...).
Voilà j'espère que ça t'iras.

n°1252147
sakuraba
Posté le 24-11-2005 à 11:42:00  profilanswer
 

j'ai utilisé comme tu me l'as conseillé UserForm1.Creation.Enabled = False


---------------
Newsletter RCZ : inscriptions compliquées ou réceptions tardives ? Mon blog la partage sans délai. C est ici que ça se passe : https://gravelparis.com/
n°1252194
ziold
L'original...
Posté le 24-11-2005 à 12:59:00  profilanswer
 

C ce que tu voulais ou bien ???

n°1252258
sakuraba
Posté le 24-11-2005 à 14:22:32  profilanswer
 

oui


---------------
Newsletter RCZ : inscriptions compliquées ou réceptions tardives ? Mon blog la partage sans délai. C est ici que ça se passe : https://gravelparis.com/
n°1252265
sakuraba
Posté le 24-11-2005 à 14:26:47  profilanswer
 

Code :
  1. With UserForm1
  2.      Dim i As Integer
  3.      MontantTotal = 0
  4.      For i = 1 To 7
  5.           MontantTotal = MontantTotal + .Controls("TextBoxMontant" & i).Value
  6.      Next i
  7.      .TextBoxMontantTotal.Value = MontantTotal
  8. End With


 
OBJET INTROUVABLE ??


Message édité par sakuraba le 24-11-2005 à 14:27:19

---------------
Newsletter RCZ : inscriptions compliquées ou réceptions tardives ? Mon blog la partage sans délai. C est ici que ça se passe : https://gravelparis.com/
n°1252267
sakuraba
Posté le 24-11-2005 à 14:28:23  profilanswer
 

trouvé j'avais supprimé une textbox ;)


---------------
Newsletter RCZ : inscriptions compliquées ou réceptions tardives ? Mon blog la partage sans délai. C est ici que ça se passe : https://gravelparis.com/
mood
Publicité
Posté le   profilanswer
 


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

  [VBA-EXCEL 2003] argument non facultatif pour textbox

 

Sujets relatifs
Recherche litterature afin de developper en VBA sous catia V5[VBA-EXCEL 2003] [DONE]Date aujourd'hui dans valeur par defaut textbox
VBA Excel Find indépendant des accents[LateX] Inclure un graphique provenant d'Excel
transfert de donnés VBAaffichage classeur excel dans la barre de tache
vba excel : probleme de textbox 
Plus de sujets relatifs à : [VBA-EXCEL 2003] argument non facultatif pour textbox


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