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 :

Boucle Multi Caption Label/Tableau


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 26
    Par défaut Boucle Multi Caption Label/Tableau
    Bonjour a tous,

    J'ai une petite question pour optimiser mon code.
    Actuellement j'ai une userform avec plusieurs labels dedans. Ces labels reprennent le caption d'une cellule de mon tableur.
    Pour cela j'utilise le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub OptionButton1_Click()
                Configuration.Label1.Caption = Worksheets("1").Range("A2").Value
                Configuration.Label2.Caption = Worksheets("1").Range("B2").Value
                Configuration.Label3.Caption = Worksheets("1").Range("C2").Value
                Configuration.Label4.Caption = Worksheets("1").Range("D2").Value
     
              (EXT)......
     
    End Sub
    Ça marche mais par contre c'est pas du tout optimisé...

    Y aurait-il possibilité de faire une boucle, pour ne pas avoir à faire ça chaque fois ?


    Si vous avez une idée je suis preneur.

    Merci d'avance et bonne journée
    Images attachées Images attachées   

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub OptionButton1_Click()
    With Worksheets("1").Range("A2")
        For i = 0 To 3
            Me.Controls("Label" & i + 1).Caption = .Offset(0, i).Value
        Next
    End With
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 26
    Par défaut
    Ok super merci ca marche pour mon exemple !
    Cependant j'essaye de le mettre dans ma vraie application mais ca ne marche pas.
    Je crois que c'est a cause des label. En effet les labels commencent a partir de 61 et se terminent a 79
    j'ai essayé de changer le i mais ca ne marche pas...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Donc c'est 61+i

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 26
    Par défaut
    Super !!!!!
    Merci beaucoup

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 26
    Par défaut
    Bonjour bonjour,

    Bon j'ai de nouveau un petit soucis... Tout aller bien jusqu'à présent pourtant.

    Le code que vous m'aviez transmis répondait parfaitement a ce que je voulais faire.

    Cependant j'ai dupliqué ce code sur chaqu'une de mes multi pages de ma userform j'ai donc un code qui s'apparente à ca :

    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
    20
    21
    22
    23
     
     
    Private Sub UserForm_Initialize()
     
    Dim Cpt As Byte
     
        For Cpt = 141 To 164
                Me.Controls("Label" & Cpt).Visible = False
        Next Cpt
     
        For Cpt = 61 To 79
                Me.Controls("Label" & Cpt).Visible = False
        Next Cpt
     
        For Cpt = 221 To 241
                Me.Controls("Label" & Cpt).Visible = False
        Next Cpt
     
        For Cpt = 331 To 351
              Me.Controls("Label" & Cpt).Visible = False
        Next Cpt
     
    End sub
    Le problème c'est que dès que j'ajoute cette ligne la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        For Cpt = 331 To 351
             Me.Controls("Label" & Cpt).Visible = False
        Next Cpt
    La userform ne se lance plus et un message : error6 Overflow apparait....


    Avez vous une solution pour pouvoir palier à ce problème ?

    Bonne journee

  7. #7
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 181
    Par défaut
    Bonjour à tous,
    La variable Cpt est déclarée en Byte, elle ne peut donc pas aller au-delà de 255

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 26
    Par défaut
    C'est très malheureux ca...

    Il n'a pas moyen de pouvoir changer cela ?

Discussions similaires

  1. label, tableau et appel de fonction dans une boucle
    Par amine2208 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 29/04/2013, 15h02
  2. Réponses: 15
    Dernier message: 11/05/2007, 15h28
  3. [VBA-O]Valeurs caption label
    Par Elstak dans le forum VBA Outlook
    Réponses: 8
    Dernier message: 18/08/2006, 21h35
  4. [VB6]Tri multi-colonnes sur tableau de structure
    Par ELGUEVEL dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 17/02/2006, 08h02
  5. [Perl] Pb boucle ?! ou de reference tableau ?!
    Par needles94000 dans le forum Langage
    Réponses: 4
    Dernier message: 19/01/2006, 21h32

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