probleme données dans cellules

sonic730

XLDnaute Junior
Bonsoir à tous,

Je reviens encore vers vous afin de m'aider.
J'utilise un formulaire afin de remplir un tableau.
Mon problème est que certaine colonne sont des noms et d'autres des montants en euros.
Lorsque je rentre un montant à virgule en euros, il ne me mets pas le symbole €, d'où l'erreur. Par contre si c'est un chiffre rond, c'est ok
Je pense que c'est tout simple à régler pour des gens comme vous, mais pour moi je ne sais pas.
Je vous mets le code ou je pense qu'il y a le problème.
Si ce n'est pas ca faites le moi savoir.
Pour ma part je pense que le montant est géré comme un entier et pas comme un prix.

Private Sub cmdajouter_Click()
Dim NumLigneVide As Integer
'on active la Feuille "Journal"
Worksheets("journal").Activate
'On trouve la dernière ligne vide du tableau, et on enregistre le numéro de la ligne dans la variable NumLigneVide
NumLigneVide = Sheets("journal").Cells(65000, 1).End(xlUp).Row + 1
'On vérifie que les champs obligatoires sont rempli correctemment
If txtaction.Text = "" Then
MsgBox "veuillez indiquer ce que vous voulez faire", vbCritical, "Champs manquant"
txtaction.SetFocus
ElseIf txtappeln°.Text = "" Then
MsgBox "veuillez entrer le numéro de l'appel", vbCritical, "Champs manquant"
txtappeln°.SetFocus
ElseIf txtdateappel.Text = "" Then
MsgBox "veuillez indiquer la date d'emission de l'appel", vbCritical, "Champs manquant"
txtdateappel.SetFocus
ElseIf txtmembres.Text = "" Then
MsgBox "veuillez indiquer qui va payer l'appel", vbCritical, "Champs manquant"
txtmembres.SetFocus
ElseIf txtmontantappel.Text = "" Then
MsgBox "veuillez mettre un montant d'appel de charges", vbCritical, "Champs manquant"
txtmontantappel.SetFocus
ElseIf txtcomptecopro.Text = "" Then
MsgBox "veuillez indiquer le compte de la copropriété", vbCritical, "Champs manquant"
txtcomptecopro.SetFocus
ElseIf txtdébitcomptemembres.Text = "" Then
MsgBox "veuillez indiquer le montant demandé au copropriétaire", vbCritical, "Champs manquant"
txtdébitcomptemembres.SetFocus
ElseIf txtcréditcomptecopro.Text = "" Then
MsgBox "veuillez indiquer le montant avancé sur le compte de la copropriété", vbCritical, "Champs manquant"
txtcréditcomptecopro.SetFocus
Else
'On enregistre les données
ActiveSheet.Cells(NumLigneVide, 1) = (txtaction.Text)
ActiveSheet.Cells(NumLigneVide, 2) = (txtappeln°.Text)
ActiveSheet.Cells(NumLigneVide, 3) = UCase(txtdateappel.Text)
ActiveSheet.Cells(NumLigneVide, 5) = UCase(txtmembres.Text)
ActiveSheet.Cells(NumLigneVide, 7) = UCase(txtmontantappel.Text)
ActiveSheet.Cells(NumLigneVide, 8) = (txtcomptecopro.Text)
ActiveSheet.Cells(NumLigneVide, 10) = UCase(txtdébitcomptemembres.Text)
ActiveSheet.Cells(NumLigneVide, 11) = UCase(txtcréditcomptecopro.Text)
'On affecte une couleur
For n = 1 To 15
If ActiveSheet.Cells(NumLigneVide, n) <> 0 Then
ActiveSheet.Cells(NumLigneVide, n).Interior.Color = RGB(219, 229, 241)
Else
ActiveSheet.Cells(NumLigneVide, n).Interior.Color = xlNone
End If
Next
'On efface le formulaire et on replace le curseur sur le premier champs (Appel n°)
txtaction.Text = ""
txtappeln°.Text = ""
txtdateappel.Text = ""
txtmembres.Text = ""
txtmontantappel.Text = ""
txtcomptecopro.Text = ""
txtdébitcomptemembres.Text = ""
txtcréditcomptecopro.Text = ""
txtaction.SetFocus
End If
End Sub

Private Sub UserForm_Initialize()
Me.txtaction.RowSource = "liste!e2:e" & Sheets("liste").Cells(2, 5).End(xlDown).Row
Me.txtcomptecopro.RowSource = "liste!d2:d" & Sheets("liste").Cells(2, 4).End(xlDown).Row
Me.txtmembres.RowSource = "liste!a2:a" & Sheets("liste").Cells(2, 1).End(xlDown).Row
Me.txtappeln°.RowSource = "liste!f2:f" & Sheets("liste").Cells(2, 6).End(xlDown).Row
End Sub

Private Sub UserForm_Activate()
Me.txtmembres.ListIndex = -1
Me.txtappeln°.ListIndex = -1
Me.txtcomptecopro.ListIndex = -1
Me.txtaction.ListIndex = -1
End Sub

Private Sub CmdFermer_Click()
frmnouvelappel.Hide
End Sub

Les codes à modifier sont sur les colonnes "montantappels", "débitcomptemembres" et "créditcomptecopro".

J'espère avoir été suffisamment clair, et que j'ai tout mis ce qu'il fallait dans le message.

Merci
 

JNP

XLDnaute Barbatruc
Re : probleme données dans cellules

Bonsoir Sonic730 :),
Envoyer des chiffres en majuscules :p, pas bien :D.
Supprime déjà le UCase, ça fera déjà l'affaire.
Si ça ne suffit pas, c'est parce que tu mets une "," alors que VBA attends un ".", donc teste
Code:
ActiveSheet.Cells(NumLigneVide, 7) = Replace(txtmontantappel.Text, ",", ".")
Bonne soirée :cool:
 

Staple1600

XLDnaute Barbatruc
Re : probleme données dans cellules

bonsoir sonic730, JNP ;)


sonic730
une suggestion (pour rendre ton code vba plus agreable à lire)


Utilises les balises BB CODE:
1) Sélectionnes dans ton message ton code VBA
puis cliques sur cette icône:
code.gif


exemple sans baliseq
sub macro1()
msgbox "bonjour"
end sub

avec balise
Code:
sub macro1()
msgbox "bonjour"
end sub
 

sonic730

XLDnaute Junior
Re : probleme données dans cellules

J'ai trouvé ma connerie.
comme l'a dit JNP, je mettais une virgule au lieu d'un point.
Est-il possible d'accepter les 2 cas. Avec virgule ou avec le point ?, ou est-ce obligatoirement l'un ou l'autre ?
Merci
 

JNP

XLDnaute Barbatruc
Re : probleme données dans cellules

Re :),
Comme indiqué dans mon post #2, Replace te permet de changer la "," en ".".
Ça m'étonne que ça ne marche pas (attention, il ne faut pas non plus saisir l'€...).
Bon courage :cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin