Copie val texbox en format numerique excel

Résolu
Bonjour,
j'ai une user form qui contien 18 textbox est un botton command qui permet de copie les valeur de ces text box sur une feuille excel ,

1- comment avoir la somme de ces textbox dans un label ?
2- comment avoir les valeur transsmise sur la feuille en format numero ? puisque lorsque elles sont copiers il ya a un triangle vert sur la cellule excel qui indique que les donnée sont en format text

merci pour tout initiative
Configuration: Windows XP
Internet Explorer 6.0

8 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    bonjour

    1- comment avoir la somme de ces textbox dans un label ?

    soit tu fais une boucle sur tes contrôles textbox, soit tu fais 18 additions : à toi de voir.
    puis tu mets label1.value = label1.value + val(textbox.value)

    2- comment avoir les valeur transmise sur la feuille en format numérique ?

    cells(ligne,colonne).value = val(textbox.value)

    Si tu as des décimales recherche les formules adaptées cdbl et autres associées à val.

    --

    Le savoir est la seule matière qui s'accroît quand on la partage. (Socrate)
    1. bonjour est merci gbinforme pour les precieux information
      et j'ai besoin si ce n'est pas trop demandé la facon de fair une boucle pour ces 18 textbox ? , pour ne pas alourdire trop le programme
      merci encore pour tout.
      1. Contributeur
        bonjour

        La matière grise ne s'abîme pas lorsque on l'utilise...

        Dim k As Integer
        With monformulaire
        For k = 1 To .Controls.Count ' controles
             label1.value = label1.value + val(.Controls(k).Value)
        Next k
        End With

        Avec cela tu devrais pouvoir faire une boucle ?

        à toi de vérifier que tes contrôles sont bien les textbox que tu veux cumuler car ainsi tu récupères tout : regardes la propriété "name"
        1. bonjour
          merci et desolé pour le derangement que je cause mais

          je n'arrive pas a fair cette boucle ; je essayer de detaillé plus :

          - j'ai une user form devlopé dans un classeur excel "vba editor"
          - j'ai un boutton qui donne l'ordre de calculé
          - j'ai (18) text box appelé succesivment : textbox 18, textbox 19, ..., textbox 34

          * j'ai un labell appelé "label24" qui doit recevoir le resultat de la somme des 18 textbox

          en finale j'ajoute le code que j'ai ecrit :

          Private Sub CommandButton4_Click()
          Dim label24 As Double
          Dim k As Integer
          With userform1
          For k = 18 To 34
          label24.Value = label24.Value + Val(TextBox(k).Value)
          Next k
          End With
          End Sub
          encore une fois merci
          1. Contributeur
            bonjour

            tu peux remplacer :
            Dim label24 As Double qui ne sert à rien
            par .label24.Value = 0 après la ligne with

            pour l'addition, comme ceci, cela devrait être mieux :
            .label24.Value = .label24.Value + Val(.Controls("TextBox" & k).Value)
            1. salut voici ce que j'ai pour l'instant et ca ne marche pas il dit "erreur de compilation , membre de methode ou donné introuvable " ??

              Private Sub CommandButton4_Click()
              Dim k As Integer
              With userform1
              .label24.Value = "0"
              For k = 18 To 34
              .label24.Value = .label24.Value + Val(.Controls("TextBox" & k).Value)
              Next k
              End With
              End Sub

              je sais que c'est trop mais je ne sait pas c'est mon premier programme et je conte sur l'aide des gentille programmeur
              merci pour tous.
              1. Contributeur
                bonjour

                Essaie comme ceci car le label n'a pas de "value" et n'est pas tellement fait pour totaliser.
                Tu aurais mieux fait d'utiliser une textbox non saisissable
                Private Sub CommandButton4_Click()
                Dim k As Integer
                With userform1
                .label24.caption= 0
                For k = 18 To 34
                .label24.caption= .label24.caption+ Val(.Controls("TextBox" & k).Value)
                Next k
                End With
                End Sub
                
                1. bonjour

                  merci merci merci ; je tu remercie ca a marché

                  mais j'aurai besoins de l'aide plus tard sur d'autres astuces