Format monétaireTextbox

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

13 réponses

  • Votes
  • Date
  • Date décroissante
  1. 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
    1. Salut,

      Place en début de code cette ligne

      TextBox1 = Format(TextBox1, "0.00 €")
      1. 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. 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
          1. 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
            1. 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
              1. 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
            2. 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
            3. 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
              1. 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
            4. 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
              1. 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
                
                1. 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
                  1. 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