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 :

Problème avec Boucle FOR [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2019
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2019
    Messages : 88
    Par défaut Problème avec Boucle FOR
    Bonjour le Forum,

    J'ai un souci avec une boucle FOR
    Dans un formulaire, j'ai 21 TxtBox nommées T_01 à T_21)
    J'ai dans l'initialisation de mon formulaire la formule suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    dim i as string
     
    For i= 01 to 21
    T_i=(Format(T_i, "0.00 €")
    Next i

    Et cela ne marche pas . Je ne comprends pas le pourquoi

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je vous conseille la lecture du chapitre I-B. Boucler sur les contrôles contenus dans la Forme du tutoriel de Michel Tanguy (Silkyroad) Utiliser les contrôles dans un UserForm, en VBA Excel
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2019
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2019
    Messages : 88
    Par défaut
    Bonsoir Philippe

    OK je plonge directement dans cette lecture et Merci

  4. #4
    barpasc
    Invité(e)
    Par défaut
    j'ai pas testé, regarde si ca marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub UserForm_Activate()
        Dim c As Control
        For Each c In Me.Controls
            If TypeName(c) = "TextBox" Then
                y = Left(c.Name, 2)
                If y = "T_" Then
                    'methode format
                End If
            End If
        Next c
    End Sub



    Citation Envoyé par Zeltron59 Voir le message
    Bonjour le Forum,

    J'ai un souci avec une boucle FOR
    Dans un formulaire, j'ai 21 TxtBox nommées T_01 à T_21)
    J'ai dans l'initialisation de mon formulaire la formule suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    dim i as string
     
    For i= 01 to 21
    T_i=(Format(T_i, "0.00 €")
    Next i

    Et cela ne marche pas . Je ne comprends pas le pourquoi

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour barpasc,
    j'ai pas testé, regarde si ca marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub UserForm_Activate()
        Dim c As Control
        For Each c In Me.Controls
            If TypeName(c) = "TextBox" Then
                y = Left(c.Name, 2)
                If y = "T_" Then
                    'methode format
                End If
            End If
        Next c
    End Sub
    La procédure fonctionne parfaitement si tous les TextBox cherchés sont préfixés par "T_".

    Cependant d'après la demande, il me semble que le préfixe est de T_01 à T_21.

    Une solution avec la clause LIKE non sensible à la casse et non limité à 21 (à adapter éventuellement)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub t()
      Dim c As Control
      For Each c In Me.Controls
        If TypeName(c) = "TextBox" And LCase(c.Name) Like "t_##*" Then
           ' Code à écrire
        End If
      Next
      Set c = Nothing
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    barpasc
    Invité(e)
    Par défaut
    j'ai omis 2 choses dans la réponse précedente, le formulaire s'initialise et le nombre de texte box peut ne pas être égale à 21

    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
    17
    18
    19
     
    Private Sub UserForm_Initialize()
    Dim c As Control
     
    Dim str(20) As String
    For i = 0 To 20
      str(i) = "T_" & Format(CStr(i), "0#")
    Next i
     
    For Each c In Me.Controls
        If TypeName(c) = "TextBox" Then
            y = Filter(str, c.Name)
            If UBound(y) > -1 Then
                'methode format
                Debug.Print c.Name
            End If
        End If
    Next c
    End Sub

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

Discussions similaires

  1. Problème avec boucle for
    Par GLDRX dans le forum LabVIEW
    Réponses: 1
    Dernier message: 14/06/2010, 21h43
  2. Problème avec boucle for
    Par kayenne77 dans le forum Débuter
    Réponses: 1
    Dernier message: 10/03/2009, 08h09
  3. [batch] problème avec boucle for
    Par TanEk dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 22/04/2008, 14h41
  4. Problème avec boucle for() et action POST
    Par Oli_Ifre dans le forum Langage
    Réponses: 4
    Dernier message: 26/04/2007, 09h52
  5. [ActionScript] Problème avec boucle 'FOR'
    Par BnA dans le forum Flash
    Réponses: 7
    Dernier message: 02/11/2006, 09h26

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