Format monétaireTextbox

Fermé
dudulleray - 13 juin 2012 à 08:19
 dudulleray - 14 juin 2012 à 15:32
Bonjour a toutes et tous, Forum bonjour

<config>Windows 7 / Excel 2007</config>

J'ai une feuil1(Compte) baptisée Ws et une cellule C20 au format monétaire devant recevoir le copier coller du TextBox1

je souhaiterai svp que le copier-coller arrive en C20 au format monétaire (Euro)

PS: le copier coller vient de mon site bancaire (Solde) et bizzarement ce solde est afficher
aléatoirement

EX: 1 500,55 € ou 1 500,55

Je souhaiterai donc que ce format >> 1 500,55 € arrive en C20

Merci de votre temps et de votre aide et malgré le temps une bonne journée

Cordialement Ray

'*** Pour infos *** Set Ws = Sheets("Compte"): Euro = "##,##0.00 €"

Private Sub TextBox1_Change()

On Error Resume Next                                 ' Début Test si numérique
TextBox1 = Replace(TextBox1, ".", ",")        ' Remplace point par virgule clavier numérique

If Not IsNumeric(TextBox1.Value) And TextBox1.Value <> "" And TextBox1.Value <> "-" And TextBox1.Value <> "-" Then
   TextBox1.Text = Left(TextBox1, Len(TextBox1) - 1)
End If                                                             ' Fin Test numérique

Dim Couleur As Long
   Couleur = vbGreen
   
    Ws.Range("C20") = TextBox1.Value          ' Copier coller vers cellule C20
    If Ws.Range("C20") < 0 Then
      Couleur = vbRed
    End If
  Me.Label425.Caption = Format(Ws.Range("C20"), Euro)   ' Affiche en euros via Label425
  Me.Label425.ForeColor = Couleur
End Sub
A voir également:

13 réponses

Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 076
13 juin 2012 à 11:31
Salut,

Place en début de code cette ligne

TextBox1 = Format(TextBox1, "0.00 €")
1
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 076
13 juin 2012 à 11:35
Re,

tout dépend de la structure de ton Userform et dans l'ordre de création de tes contrôles.

Lorsque tu es dans ton Visual, clic droit sur l'userform/Ordre de tabulation, place ton Textbox2 juste après le Textbox1
1
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 076
Modifié par Mike-31 le 13/06/2012 à 15:06
Re,

Tes Textbox1 et 2 sont dans la frame9, dans le Visual, tu vas sur ton Userform et clic droit sur le bord de ta Frame9/ordre de tabulation tu remarqueras que ton Textbox2 est avant le 1 soit tu fais remonter le 1 ou descendre le 2, dans tous les cas place dans l'ordre de priorité l'activation de tes contrôles dans chaque Frame.
exemple Textbox1 puis combobox1 puis Textbox2 ou passe directement du Textbox1 au Textbox2 si tu le souhaites
et tu fais la même chose avec les Frames à partir d'un clic droit sur l'userform/ordre de tabulation pour donner une priorité dans tes groupes
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
1
Re,Mike

D'abord désolé j'ai dit une connerie c'était le Frame 9 et non le 7 autant pour moi
et le placement des textbox était bon, mais comme j'ai toucher a (tab index)

Donc la j'ai fait les modifications que tu m'a dit et c'est bon, ca passe de 1 a 2 ou 3
ca ne va plus dans les combos 1 ou 2 sauf par clic souris mais la c'est ok

je te remercie déja beaucoup pour ces infos et pour les modifications

Une dernière pour la route comme on dit et si tu veux bien svp

Comment je fais si je souhaite rester dans un TextBox avec le curseur clignotant
après validation

Pour éventuellement faire de nouvelle modifcation

au moins pour le Textbox 2 et 3
si j'ai besoin de changer de textbox je changerai avec clic de la souris

Merci et bonne après midi a toi

Raymond
0
Salut Mike

Merci pour ta réponse ça fonctionne j'ai essayer un code dans le mème style
mais ça ne marchais pas, mal placer danss le code sans doute.

Un petit truc svp et si tu veux bien après la validation par "Enter" du TextBox1 comment obliger le curseur clignotant a sauter dans mon TextBox2

et après avoir valider également dans le TextBox2 comment garder le focus ou rester dans le TextBox2, pour éventuellemnt modifier la saisie

Merci a toi bonne journée

A plus tard Raymond
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
RE Mike

J'ai controler mon Userform en suivant tes conseils car je n'avais pas utiliser encore cette possibilité (ordre de tabulation) et donc tous mes controles sont bien placés
dans l'ordre

j'ai 3 TextBoxs 1-2-3
et 2 ComboBoxs 1-2

Quand je suis dans le TextBox1 après validation
le curseur saute dans le Combo1 puis encore enter
le curseur saute dans le Combo2 puis enter TexTbox2
et enfin TextBox3

j'ai inverser l'ordre de TXt 3-2-1 et des Com 2-1 et toujours le mème soucis

voila merci a toi j'ai appris quelque chose par rapport a l'ordre de tabulation

Vu l'heure je souhaite un app et a plus tard

Ray
0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 076
13 juin 2012 à 13:12
Re,

Tu n'as pas de frame pour regrouper tes contrôles

poste ton fichier sans notes confidentielles (ou masque les) pour voir ton userform

avec ton ce lien
https://www.cjoint.com/
0
RE,

Effectivement j'ai une grande Userform et plusieurs Frames pour regrouper et organiser les divers controls

les 3 textboxs et les deux combos ainsi que quelques labels sont réunis dans un frame7

sinon pour le fichier a envoyer ça me fait faire beaucoup de manips pour cacher
je vais voir ce que je peux faire

Sinon les frames aurai une incidence sur mon soucis ???

A plus tard
0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 076
13 juin 2012 à 13:54
Re,

Comment cela te fait faire beaucoup de manip, il suffit simplement d'enregistrer sous ton fichier pour le dupliquer, puis effacer le contenu de tes feuilles le tout en quelques clics
0
http://cjoint.com/?3FnoIzuRfjs

Voila l'adresse pour le fichier

Le fichier est avec un module de classe et se sauvegarde avec la date du jour automatiquement

un copier coller se fait uniquement dans le textbox1 via C20

les 3 textboxs ne fonctionne pas vraiment correctement désolé, j'y bosse

j'ai essayer de mettre les tabindex dans l'ordre, pas gagné

merci a toi de t'interresser a mon soucis

Ray
0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 076
13 juin 2012 à 18:31
Re,

Il est possible de jouer avec le Focus mais le résultat est discutable, je pense qu'il vaut mieux resélectionner le Textbox
0
Re Mike

J'ai trouver cette après midi un moyen de rester sur le TextBox mais on ne peux plus en sortir mème avec un clic de souris pour changer de TextBox
alors mème pas drole

voila ou j'en suis, je cogite encore un peu la dessus et on verra bien

Merci de ton aide j'ai avancer un peu

je te souhaite une bonne soirée et encore beaucoup de merci

Cordialement Raymond
0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 076
13 juin 2012 à 22:29
Re,

ce qui est possible, c'est faire un blocage sur un textbox tant qu'il n'est pas renseigné

l'astuce, on copie la valeur du textbox dans une cellule ici A1 et dans le code si le textbox ="" on neutralise Annuler (la sortie)
et on boucle pour revenir sur le textbox

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
[A1] = TextBox2
If TextBox2 = "" Then
Cancel = True
UserForm1.TextBox2.Text = [A1]
Me.TextBox2.SetFocus
End If
End Sub
0
Bonjour Mike, forum

Merci pour ta réponse et pour le code, ton code tout seul dans mon programme
fonctionne mais si je mets les deux codes pour gérer la TextBox2
la ça se gâte un peu

d'autant plus qu'il y a 3 TextBoxs a faire

plusieurs soucis apparaissent, bath voyons LOL

En fait il faudrait pourvoir concilier les deux bouts de code ci-dessous car des limitations de saisie sont autorisés et d'autres pas,

Trop fort pour moi, pour ne faire qu'un de ces deux codes

comme tu a le programme, essais juste pour voir enfin si tu a le temps

Merci de ton aide j'ai encore appris.

je te souhaite une exellente journée

A plus tard Ray

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
[B17] = TextBox2
   If TextBox2 = "" Then
Cancel = True
  UserForm1.TextBox2.Text = [B17]
Me.TextBox2.SetFocus
End If
End Sub

'*** ON ENTRE UNE VALEUR DESTINATION DANS LA ZONE (E21 à P21)
Private Sub TextBox2_Change()
   
If Encours = True Then Exit Sub
   Encours = True
 
On Error Resume Next                                      ' Début Test si numérique
   TextBox2 = Replace(TextBox2, ".", ",")           ' Remplace point par virgule sur clavier numérique
If Not IsNumeric(TextBox2.Value) And TextBox2.Value <> "" And TextBox2.Value <> "-" And TextBox2.Value <> "-" Then
   TextBox2.Text = Left(TextBox2, Len(TextBox2) - 1)
End If                                                    ' Fin Test numérique
   
 If Me.ComboBox2.ListIndex = -1 Then
    TextBox2.Value = ""
    TextBox2.BackColor = vbRed                     ' Place en rouge fond TextBox si erreur
    MsgBox "Sélectionner un mois"
Else
    Ws.Cells(21, 5 + Me.ComboBox2.ListIndex) = TextBox2.Value
    Me.Controls("Label" & 229 + Me.ComboBox2.ListIndex) = Format(Ws.Cells(21, 5 + Me.ComboBox2.ListIndex), Euro)
End If
    TextBox2.BackColor = vbGreen                       ' Replace en vert fond TextBox2
    Encours = False
End Sub
0
Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 076
14 juin 2012 à 10:46
Re,

J'ai testé les deux codes sans problème, à condition de mettre le combobox 2 avant le textbox 2

de ton coté, que recontres tu comme problème
0
Re Salut Mike

Non rien de spécial j'ai remis de l'ordre dans mon fichier et effectivement faut pas oublier de faire le choix du combo avant
j'étais en train de chercher pour pouvoir faire en sorte de ne pas oublier mais bon
aujourd'hui les neurones pas trop actives LOL
Et toi aurai tu svp une chtite idée a me proposer

je te dit a plus tard et encore merci a toi

Ray
0