Macro en boucle format textbox /xls 2003

abdouriabi Messages postés 17 Statut Membre -  
abdouriabi Messages postés 17 Statut Membre -
Bonjour tout le monde,

Je cherche une macro en boucle pour le format de 50 text box dans mon userform svp

voici ce que j'ai fais :

TextBox1.Value = Format(TextBox1.Value, "0.00%")
TextBox2.Value = Format(TextBox2.Value, "0.00%")
TextBox3.Value = Format(TextBox3.Value, "0.00%")
....et ainsi de suite mais ca prend du temps et ca alourdi le programme.

En vous remerciant d'avance

5 réponses

  1. Paf
     
    bonjour,

    La question aurait sans doute eu des réponses plus rapide dans le forum programmation!

    Dim MyControl As Control
    
    For Each MyControl In Controls
    
        If Left(MyControl.Name, 7) = "TextBox" Then
            MyControl.Value = Format(MyControl.Value, "0.00%") 
        End If
    
    Next
    

    Bonne journée
    1
  2. abdouriabi Messages postés 17 Statut Membre
     
    Bonjour PAF,

    vous avez raison concernant le forum, j'ai pas fais attention ;;;;;j'ai essayé de le déplacé dans le forum concerné mais je vois pas comment.

    Merci pour votre réponse et de votre aide , mais malheureusement ca fonctionne pas ou plutot j'ai mal programmé.....si vous pouvez m'aider SVP

    j'ai mis au début:

    private sub textbox_change ()

    Dim MyControl As Control

    For Each MyControl In Controls

    If Left(MyControl.Name, 7) = "TextBox" Then
    MyControl.Value = Format(MyControl.Value, "0.00%")
    End If

    Next

    end sub

    bonne journée
    a vous lire
    0
  3. Paf
     
    bonsoir,

    y a t-il un message d'erreur ?

    Qu'est censé faire ce code ? et qu'est ce qu'il fait?

    la boucle for each, dans l'évênement change, n'est peut-être pas judicieusement placée.

    A +
    0
  4. abdouriabi Messages postés 17 Statut Membre
     
    Bonjour,

    Non j'ai pas de message d'erreur.

    le code devrait mettre les valeurs des textbox en pourcentage avec 2 chiffres apres le virgule.

    quand je fais

    private sub textbox1_change ()
    TextBox1.Value = Format(TextBox1.Value, "0.00%")
    end sub

    private sub textbox2_change ()
    TextBox2.Value = Format(TextBox2.Value, "0.00%")
    end sub

    et ainsi de suite (jusqu'a 50 textbox) ca fonctionne tres bien.

    pour votre code j'ai rajouté seulement et il ne fonctionne pas :

    private sub textbox_change ()
    ..........votre code
    end sub

    sachant que les textbox je ne les remplis pas, ils sont récuperer d'une feuille excel.
    ci dessous le code de récupération des valeurs des textbox :
    Private Sub DTPicker1_Change()
    Dim LastLig As Long, Lig As Long
    Dim c As Range
    Dim i As Integer
    Dim Dte As Date

    Dte = Me.DTPicker1.Value
    For i = 2 To 75
    Me.Controls("TextBox" & i - 1).Value = ""
    Next i
    With Sheets("GPEE") 'à adapter
    LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
    If LastLig >= 6 Then
    Set c = .Range("A6:A" & LastLig).Find(Dte, LookIn:=xlValues, lookat:=xlWhole)
    If Not c Is Nothing Then
    Lig = c.Row
    Set c = Nothing
    For i = 2 To 75
    Me.Controls("TextBox" & i - 1).Value = .Cells(Lig, i)
    Next i
    End If
    Else
    MsgBox "Données manquantes"
    End If
    End With
    End Sub

    merci et bonne journée
    0
    1. Paf
       
      Que j'essaye votre méthode ou la mienne, j'obtiens le même résultat!

      A savoir si la cellule destinée à alimenter la textbox contient 12, la textbox formatée affiche 1200.00%

      par ailleurs dans Sub DTPicker1_Change(), les textbox étant initialisées , par la boucle:
      For i = 2 To 75
         Me.Controls("TextBox" & i - 1).Value = .Cells(Lig, i)
      Next i 

      le format pourrait être apporté en même temps (cela évite les manipulations ultérieurs) :
      For i = 2 To 75
         Me.Controls("TextBox" & i - 1).Value = Format(.Cells(Lig, i),"0.00%")
      Next i 


      mais, j'ai le même résultat que précédemment !

      Désolé je ne saisit pas le Problème.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. abdouriabi Messages postés 17 Statut Membre
     
    Bonjour PAF,

    Pour le moment je vais fais une par une , ce n'est pas grave, en tout cas merci beaucoup de votre votre aide.

    Bon Dimanche
    0