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 :

Désigner des Labels avec une boucle


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut Désigner des Labels avec une boucle
    Bonjour à tous!

    Dans une fiche Infos, j'ai une liste de postes, qui peuvent être changés selon l'utilisateur.

    Les valeurs de cette liste vont permettre dans la fiche Menu, de faire apparaître un Label. La somme des Labels me permettent sur appui d'un boutton de mettre en place un filtre.

    Sur ouverture du fichier excel, voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    For i = 1 To 16 'Car 16 labels disponibles qui de base sont en Visible = False
    If Sheets("Infos").Cells(i + 1, 1) <> "" Then 'Si valeur dans la fiche info, colone Postes
        Me.Controls("Label" & i).Visible = True 'Alors mon label s'affiche...
        Me.Controls("Label" & i).Caption = Sheets("Infos").Cells(i, 1).Value 'Et prends la valeur de ma cellule
    Else
        Sheets("Menu").Me.Controls("Label" & i).Visible = False 'Sinon elle reste cachée
    End If
    Next i
    J'ai déjà utilisé Me.Controls("CommandButton" & i) dans un autre fichier, cela marchait...
    Mais l'utilisation de Controls ici apparemment n'est pas gérée... (Excel le surligne en débogage avec message d'erreur)
    -Faut-il être dans un userform?
    -Ca ne marche pas pour les labels?
    -Y a-t-il une erreur de syntaxe?
    -Y a-t-il une autre méthode?

    En espèrant avoir été clair, bonne journée, PierrotMfff

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour,

    faudrait donc faire appel à une cartomancienne pour deviner le message d'erreur ‼

    Sinon un début de piste : curseur dans le code sur Me puis appuyer sur la touche !

    Donc après la lecture de son aide, cette instruction est-elle judicieuse ?

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  3. #3
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut
    Merci pour cette réponse rapide et ludique,

    je ne savais pas ce que voulais dire Me... mais ça ne sert à rien ici...

    Si je mets juste Controls("Label" & i) ça ne fonctionne pas non plus

    J'essaie toutes les syntaxes qu'il m'ait été donné de rencontrer, ça passe pas...

    peut être parceque la procédure est sur l'événement Worksheet_Activate?

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Non au contraire si le contrôle est bien sur cette feuille de calculs
    car l'instruction Me représente bien la feuille de calculs liée au module.

    Astuce : grâce au Générateur de macros en sélectionnant le contrôle vérifier le code ainsi généré …

  5. #5
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut
    J'ai ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Shapes.Range(Array("Label" & i)).Select
    je l'incorpore dans mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Shapes.Range(Array("Label" & i)) = Sheets("Infos").Cells(i , 1).Value
    pareil méthode non gérée par cet objet

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut


    Normal car avant le signe = il n'y a pas de propriété indiquée dans l'objet ! …


    Sinon effectuer donc une manipulation complète avec le Générateur de macros livrera la solution …

  7. #7
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut
    Même avec le .Caption (qui est la propriété par défault) ça ne fonctionne pas...

    Le générateur de Macro? En enregistrant une macro?

Discussions similaires

  1. trié des date avec une boucle for each
    Par alex santus dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 03/09/2009, 11h00
  2. initialisation des variable avec une boucle
    Par grospatapouf dans le forum Langage
    Réponses: 10
    Dernier message: 10/01/2009, 12h17
  3. Générer des variables avec une boucle
    Par Anamelech dans le forum Delphi
    Réponses: 15
    Dernier message: 03/11/2006, 12h33
  4. changer la couleur des label avec une seul clique
    Par aliwassem dans le forum Delphi
    Réponses: 4
    Dernier message: 18/10/2006, 22h27
  5. Reproduire des controles avec une boucle
    Par paradeofphp dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 19/06/2006, 11h46

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