Boucle pour sommer des textbox [Résolu]

- - Dernière réponse :  Utilisateur anonyme - 26 févr. 2013 à 20:45
Bonjour,

Je voudrais faire la somme de plusieurs textbox (nommé Cel avec un indice 1 à 100 ex : Cel001, Cel002 à Cel100).

J'ai essayé de faire des boucles types, mais j'ai un bug :
Dim somme As Decimal
Dim cellule As String


            For i = 1 To 100

                cellule = "Cel" & CStr(i)
                somme = somme + cellule.Text


            Next


je bloque...
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
3
Merci
Bonsoir ucfoutu,

Rien ne t'échappe
On doit donc tester la valeur texte contenue dans le textbox pour s'assurer qu'elle représente bien un décimal.
Dim somme As Decimal
For i As Integer = 1 To 10
    Dim testvaleur As String = Me.Controls("Cel" & i.ToString("000")).Text
    Dim resultat As Decimal
    If Decimal.TryParse(testvaleur, resultat) Then
        somme += resultat
    End If
Next

Merci Utilisateur anonyme 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 103 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
3
Merci
J'ai trouvé une autre solution en créant les textbox avec une boucle, ce qui me permet après de faire des sommes avec une boucle for ... next

Merci à ceux qui mon fournit des réponses...

ci-dessous mon code.

 Dim Cel(556) As TextBox

' création des textbox nommé CelXXX'
        For i = 1 To 5

            If i 1 Then deporte3 0
            If i > 1 Then deporte3 = (22 * 5 + 9) * (i - 1)

            For j = 1 To 5
                For k = 0 To 5

                    If k = 0 Then
                        deporte1 = 0
                        deporte2 = 0
                    End If

                    If k 1 Then deporte1 15
                    If k 2 Then deporte2 6

                    n = i & j & k
                    Cel(n) = New TextBox
                    TabPage2.Controls.Add(Cel(n))
                    Cel(n).Location = New Point(158 + deporte1 + deporte2 * (k - 1) + 70 * k, 62 + 22 * (j - 1) + deporte3)
                    Cel(n).Size = New Point(70, 22)
                    Cel(n).Font = New System.Drawing.Font("Calibri", 9, FontStyle.Bold)
                    Cel(n).TextAlign = HorizontalAlignment.Right
                    'Cel(n).Text = "Cel" & i & j & k 'affiche les coordonnées des cellules

                Next
            Next
        Next

Merci crocket51 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 103 internautes ce mois-ci

Commenter la réponse de crocket51
0
Merci
Bonsoir,

Tu peux retrouver le contenu de tes contrôles grâce à leur nom :
Me.controls("cel" & i.tostring).text
Commenter la réponse de Utilisateur anonyme
0
Merci
ex : Cel001, Cel002 à Cel100

Ton exemple m'avait échappé
Il faut donc formater ta variable i.
Me.controls("Cel" & i.tostring("000")).text
Commenter la réponse de Utilisateur anonyme
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Bonsoir,
ceci également nécessite une correction :
somme = somme + cellule.Text
Non ?

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
0
Merci
Oui, c'est une autre solution valable.
Juste une remarque : La police 'Calibri' n'existe pas sur ma machine. Ceci risque de poser problème si tu distribues ton appli. Essaye d'utiliser une police standard.
Commenter la réponse de Utilisateur anonyme
0
Merci
Bonjour,

Juste une remarque : La police 'Calibri' n'existe pas sur ma machine. Ceci risque de poser problème si tu distribues ton appli. Essaye d'utiliser une police standard.


Je pense que c'est une police qui vient avec Office, ou avec Windows 7. J'ai Windows 7, Office 2010 et une police Calibri; que je n'avais pas avec Windows XP et Office 2002. Mais, effectivement les vieilles polices comme Times New Roman, Tahoma ou Arial sont plus "universelles" dans le monde Windows.
Commenter la réponse de Utilisateur anonyme
0
Merci
Peut on la mettre en ressource ?
Commenter la réponse de crocket51
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Peut on la mettre en ressource


Tu peux distribuer et installer toute police de caractère, mais à condition qu'elle ne soit pas protégée par des droits d'auteur.
A toi de déterminer si cette police est ou non dans ce cas.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
0
Merci
Peut on la mettre en ressource ?

Inutile. Fais en sorte que ton setup installe cette police lors du déploiement.
Commenter la réponse de Utilisateur anonyme

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.