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

Macros et VBA Excel Discussion :

Novice - Boucle sur TextBox


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2008
    Messages : 59
    Points : 42
    Points
    42
    Par défaut Novice - Boucle sur TextBox
    Bonjour à tous.

    Je voudrais rechercher si une valeur est indiquée dans l'un des trois textbox.
    Mais quelque chose cloche avec ce code, il ne trouve pas si une valeur est indiquée sur le textbox2 ou le textbox3.
    Pouvez m'aider svp?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For i = 1 to 3
    If .Controls("TextBox" & i) = "" Then
      MsgBox " Pas de valeur"
      Else
        MsgBox "Valeur"
      End If
      Next i
    Merci à tous,
    fasedan

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu....
    bonjour

    quand tu utilise ".control" en general c'est que tu es dans une boucle "with et end with"ou alors metre le prefixe "me" ou le nom de l'userform devant ".controls"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    sub trucmachin()
    For i = 1 to 3
     If Me.Controls("TextBox" & i) = "" Then
      MsgBox " Pas de valeur"
     Else
        MsgBox "Valeur"
     End If
    Next i
    end sub
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2008
    Messages : 59
    Points : 42
    Points
    42
    Par défaut
    Merci patricktoulon.

    Effectivement le code se trouve bien dans une boucle:
    With et End With
    Voilà le pourquoi du : .Controls au lieu du Me.Controls
    J'aurais du le précisser.

    fasedan

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re

    Il y a un autre moyen de boucler sur les textboxs qu'avec une boucle avec "control & i" : ça serait d'utiliser une variable object.

    En effet, on nomme très souvent les controls à notre idée ou besoin, il deviens alors très difficile de boucler avec des nom assez différents.

    Pour ma part je préfère la méthode avec le type (object) ce qui évite de devoir connaître les noms.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    sub truc machin()
    dim ctrl as object
    for each ctrl in me.controls
    If TypeName(ctrl) = "TextBox" Then
    msgbox ctrl.text
    end if 
    next
    Au plaisir.
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2008
    Messages : 59
    Points : 42
    Points
    42
    Par défaut
    Merci patricktoulon,

    Je retiens ton code pour le coté pratique, car il ne tient pas compte du nom des contrôles.

    Mais comment ajouter à ce code :
    Si un des trois textbox est non vide afficher msgbox "Pas vide."
    et si les trois sont vides, afficher msgbox "Vide."

    Merci d'avance,
    fasedan

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    c'est tout simple

    et la il y a encore plusieurs variantes

    une tres facile serait de donner une valeur a une varaible de string on la nommerait texto
    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
    16
    sub truc machin()
    dim ctrl as object,texto as string
    for each ctrl in me.controls
    If TypeName(ctrl) = "TextBox" Then
    if  ctrl.text<>"" then texto=texto & ctrl.text
    end if 
     
    next
    'maintenant que l'on est sorti de la boucle notre variable a été instruite
    'si la variable texto est différente de rien on affiche le message
    if texto<>"" then 
    msgbox "pas vide!!!"
    else 
    msgbox "queudale dans le bastring"
    end if 
    end sub
    et il y a bien d'autre facons
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Bonjour,

    Ajoute une variable booléenne à ton code, initialise-la à False et positionne-la à True dès qu'un des contrôles est rempli.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    pour suivre l'idée de alaintech

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    sub truc machin()
    dim ctrl as object,textoplein as boolean,message as string
    for each ctrl in me.controls
    If TypeName(ctrl) = "TextBox" Then
    if  ctrl.text<>"" then textoplein=true
    end if 
     
    next
    'maintenant que l'on est sorti de la boucle notre variable a été instruite
    'si la variable textoplein  esta true on affiche le message
    message=iif (textoplein,"vide","pasvide") 
    msgbox message
    end sub
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2008
    Messages : 59
    Points : 42
    Points
    42
    Par défaut
    Merci à tous pour votre précieuse aide.

    Je pense que ces différents codes doivent faire l'affaire.
    Je teste touts ca dès que possible.

    Encore merci à vous.
    fasedan

Discussions similaires

  1. Utilisation New Form et boucle sur Textbox
    Par cedricle100 dans le forum VB.NET
    Réponses: 2
    Dernier message: 19/06/2014, 10h22
  2. Boucle sur TextBox pour les "Enabled" suivant une condition
    Par GoFio dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 06/03/2014, 18h38
  3. [AC-97] Boucle sur textBox
    Par docjo dans le forum VBA Access
    Réponses: 3
    Dernier message: 12/12/2011, 15h16
  4. Faire une boucle sur des labels ou textBox
    Par Actarusdu60 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/12/2008, 18h17
  5. [VBA E] boucle sur textbox d'une userform
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 03/07/2006, 20h37

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