IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Parcours de TextBox pour calcul


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 428
    Par défaut Parcours de TextBox pour calcul
    maintenant j'aurais une autre demande si vous voulez bien?
    Je contrôle 64 TextBox afin de vérifier si elles sont vides de cette façon.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function calculordi1()
            If b.seul.Checked = True Then
                compteur = 0
                For i As Integer = 1 To 64
                    If DirectCast(Panel1.Controls("a" & i.ToString), TextBox).Text = "" Then compteur = compteur + 1
                Next
                a.erreur.Text = compteur
                a.erreur.Visible = True
    En fait j'ai créé comme un tableau de 8 colonnes par 8 lignes ce qui fait mes 64 textbox
    j'aimerais pouvoir contrôler une à une chaque textbox si elle sont vide (code ci-dessus) et en même temps contrôler le contenu des textbox à droite, à gauche, en haut et en bas et additionner le tout.
    je ne sais pas si mon explication est bien claire ? merci

    voila, j'ai essayé de tester la première textbox mais ca ne calcul pas. ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Function calculordi1()
            If b.seul.Checked = True Then
                compteur = 0
                For i As Integer = 1 To 64
                    If DirectCast(Panel1.Controls("a" & i.ToString), TextBox).Text = "" Then 'compteur = compteur + 1
                        If i = 1 Then
                            compteur = Val(a1.Text) + Val(a9.Text) + Val(a1.Text) + Val(a2.Text)
                        End If
                    End If
                Next
                a.erreur.Text = compteur
                a.erreur.Visible = True
    EDIT ____________________________

    j'y suis arrivé ainsi, mais comment tester toutes les textbox dans une boucle et retenir le calcul le plus fort ?
    voici le code que j'ai ébauché
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Function calculordi1()
            If b.seul.Checked = True Then
                compteur = 0
                For i As Integer = 1 To 64
                    'If DirectCast(Panel1.Controls("a" & i.ToString), TextBox).Text = "" Then 'compteur = compteur + 1
                    If i = 1 And a1.Text <> "" Then
                        If a9.Text = "" Then
                            compteur = Val(a1.Text) + Val(a2.Text)
                        ElseIf a2.Text = "" Then
                            compteur = Val(a1.Text) + Val(a9.Text)
                        Else
                            compteur = Val(a1.Text) + Val(a9.Text) + Val(a1.Text) + Val(a2.Text)
                        End If
                    End If
                Next

  2. #2
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    Pourquoi pas ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     Private Function CountEmptyTexbox(container As Control ) As Integer
            Dim count As Integer = 0
            For Each ctrl In container.Controls
                If TypeOf ctrl Is TextBox Then
                    If DirectCast(ctrl, TextBox).Text = String.Empty Then
                        count += 1
                    End If
                End If
            Next
            Return count
        End Function
    pour utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim count as integer
    count  =CountEmptyTexbox(panel1)

  3. #3
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Bonsoir,

    Franchement, j'ai suivi jusqu'au comptage des textbox vides mais après je ne comprends plus rien...
    pourquoi faire une boucle de 64 fois si c'est pour le faire quelque chose que sur occurrence 1 ?
    votre dernier code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Function calculordi1()
            If b.seul.Checked = True Then
                compteur = 0
                For i As Integer = 1 To 64
                    'If DirectCast(Panel1.Controls("a" & i.ToString), TextBox).Text = "" Then 'compteur = compteur + 1
                    If i = 1 And a1.Text <> "" Then
                        If a9.Text = "" Then
                            compteur = Val(a1.Text) + Val(a2.Text)
                        ElseIf a2.Text = "" Then
                            compteur = Val(a1.Text) + Val(a9.Text)
                        Else
                            compteur = Val(a1.Text) + Val(a9.Text) + Val(a1.Text) + Val(a2.Text)
                        End If
                    End If
                Next
    équivaut à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Function calculordi1()
            If b.seul.Checked = True Then
                compteur = 0
                    If  a1.Text <> "" Then
                        If a9.Text = "" Then
                            compteur = Val(a1.Text) + Val(a2.Text)
                        ElseIf a2.Text = "" Then
                            compteur = Val(a1.Text) + Val(a9.Text)
                        Else
                            compteur = Val(a1.Text) + Val(a9.Text) + Val(a1.Text) + Val(a2.Text)
                        End If
                    End If

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Bonjour

    @ shayw
    Citation Envoyé par shayw Voir le message
    Pourquoi pas ainsi
    Ce n'est plus le sujet de la question (dont les réponses ont été proposées dans ce post et qu'il a adapté à son besoin).

    La il veut faire le calcul avec les valeurs contenues dans une TextBox + celles adjacente (horizontalement et verticalement), passer à la TextBox suivante et refaire le calcul, garder la valeur la plus grande, puis continuer avec la textbox suivante, etc. Ses textBox représentant un tableau de 8 x 8.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  5. #5
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    Bonjour

    Je viens de voir

    Si tes textboxes sont

    a1 a8


    a57 a64

    avec a1
    tu veux additionner a1 + a2 + a9 ?

    et passer à la textbox suivante a2
    a2 + a1 + a10 ?

    pas clair

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 428
    Par défaut
    en fait rv26t a raison, il s'agit du tableau 8 x 8
    textbox de a1 à a8, après textbox de a9 à a16, ect.
    mais le problème c'est de savoir quel est le calcul le plus haut en additionant par exemple a1+a2+a1+a9 et pour a2+a1+a2+a3+a2+10 et pour par exemple une text box au centre a10+a9+a10+a11+a10+a2+a10+a18 calcul en croix
    voilà, c'est un peu compliqué mais...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] valeur textbox pour calcule
    Par patgravure35 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/01/2015, 18h34
  2. Problème pour calculer un % dans une TextBox
    Par Patrick-P dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/03/2013, 16h46
  3. Formule pour calculer un âge dans un TextBox
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 09/12/2008, 09h49
  4. update pour calcul pourcentage (SQL SERVER 2000)
    Par meufeu dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/09/2005, 09h04
  5. Réponses: 2
    Dernier message: 01/04/2003, 22h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo