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 :

test cellules vide


Sujet :

VB.NET

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 428
    Points : 86
    Points
    86
    Par défaut test cellules vide
    Bonjour,
    j'ai 64 textbox nomées de a1 a a64
    j'aimerais tester dans une boucle les textbox vides
    merci

  2. #2
    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
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Quel language ?

    Ex : en vb
    Pour traiter proprement si tous les TextBox (et seulement ceux-ci) sont dans un conteneur (panel, groupbox (, form)).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Sub TestTextBox(ByVal conteneur As Control)
            For Each txt As TextBox In conteneur.Controls.OfType(Of TextBox)()
                If txt.Text = "" Then  MessageBox.Show("vide") Else MessageBox.Show("renseigné")
            Next
        End Sub
    Appel TestTextBox(Panel1).


    Si d'autres Textbox ne sont pas à traiter (noms autres) dans le conteneur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Sub TestTextBox2(ByVal conteneur As Control)
            For i As Integer = 1 To 64
                If DirectCast(conteneur.Controls("a" & i.ToString), TextBox).Text = "" Then MessageBox.Show("vide") Else MessageBox.Show("renseigné")
            Next
        End Sub
    Appel TestTextBox2(Me) (ou Me représente le form par exemple, mais ce pourrait être un panel ou groupbox)
    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.

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 428
    Points : 86
    Points
    86
    Par défaut
    j'ai créé une fonction pour mes calculs j'ai donc mis le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function calculordi1()
            If b.seul.Checked = True Then
                Dim conteneur As Control
                For i As Integer = 1 To 64
                    If DirectCast(conteneur.Controls("a" & i.ToString), TextBox).Text = "" Then MessageBox.Show("vide") Else MessageBox.Show("renseigné")
                Next
    et j'ai l'erreur suivante:
    la variable conteneur est utilisée avant qu'une valeur ne lui est été assignée.
    voila, ca plante? merci pour votre aide

  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
    Points : 5 100
    Points
    5 100
    Par défaut
    Citation Envoyé par pascb423 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                Dim conteneur As Control
                For i As Integer = 1 To 64
                    If DirectCast(conteneur.Controls("a" & i.ToString), TextBox).Text = "" Then MessageBox.Show("vide") Else MessageBox.Show("renseigné")
                Next
    et j'ai l'erreur suivante:
    la variable conteneur est utilisée avant qu'une valeur ne lui est été assignée.
    voila, ca plante? merci pour votre aide
    Normal aucun contrôle n'est associé à conteneur.
    Regardez l'utilisation de mon code dans les appels
    Panel1 étant un contrôle existant sur la form.
    La fonction TestTextBox reçoit le contrôle Panel1 et travaille avec celui-ci. (elle l'assigne à conteneur)

    Dans votre déclaration Dim conteneur As Control conteneur vaut nothing, aucune valeur ne lui est assigné.
    - Soit vous l'utilisez comme paramètre comme dans mon exemple,
    - soit vous utilisez directement le contrôle (présent sur votre form ou la form) qui contient vos TextBox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                    If DirectCast(MonPanel.Controls("a" & i.ToString), TextBox).Text = "" Then MessageBox.Show("vide") Else MessageBox.Show("renseigné")
    Mais s'ils sont tous dans un conteneur (panel ou groupbox) et seulement eux, il est préférable d'utiliser la 1 ère méthode, c'est plus propre.

    Le Cours VB.NET de Philippe Lasserre est une mine d'information, très bien pour apprendre.
    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 régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 428
    Points : 86
    Points
    86
    Par défaut
    C'est bon, ça marche, j'avais déclaré 2 fois la variable!!!

    voici mon code
    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

  6. #6
    Membre chevronné
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Points : 2 209
    Points
    2 209
    Par défaut
    C'est légèrement accessoire, mais le DirectCast ne sert à rien ; la propriété Text est définie au niveau de la classe Control, ce qui est le résultat de l'indéxeur sur Controls donc pas besoin de passer par TextBox
    Nous sommes tous plus ou moins geek : ce qui est inutile nous est parfaitement indispensable ( © Celira )
    À quelle heure dormez-vous ?
    Censément, quelqu'un de sensé est censé s'exprimer sensément.

  7. #7
    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
    Points : 5 100
    Points
    5 100
    Par défaut
    Exact, directCast pourra servir pour accéder aux propriétés spécifiques d'un contrôle.
    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.

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

    Informations forums :
    Inscription : Novembre 2008
    Messages : 428
    Points : 86
    Points
    86
    Par défaut
    je ne vois toujours pas la solution?

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

Discussions similaires

  1. Test colonne et ajout 1 à la dernière cellule vide
    Par timtof2011 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 03/10/2011, 22h44
  2. [XL-2002] Test de cellules vides et enregistrement automatique
    Par magninde dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/05/2009, 08h31
  3. Test si cellule vide et décalage à gauche
    Par Lechette dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/03/2008, 10h40
  4. [VBA]Test cellule vide base access
    Par ALAMARQU dans le forum VBA Access
    Réponses: 4
    Dernier message: 17/03/2006, 16h14
  5. [XSL-FO] Table avec cellule vide
    Par JustAGphy dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 12/05/2004, 14h11

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