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. 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
    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. 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,

          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. 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
          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,

            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
          4. 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 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,

                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. Salut,

                  Place en début de code cette ligne

                  TextBox1 = Format(TextBox1, "0.00 €")
                  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