Format monétaireTextbox

dudulleray -  
 dudulleray -
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

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Salut,

    Place en début de code cette ligne

    TextBox1 = Format(TextBox1, "0.00 €")
    1
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. dudulleray
       
      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
  4. dudulleray
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dudulleray
     
    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
  7. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  8. dudulleray
     
    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
  9. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. dudulleray
       
      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
  10. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. dudulleray
       
      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
  11. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  12. dudulleray
     
    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
  13. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  14. dudulleray
     
    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