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 :

effacer la propriété controlsource [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut effacer la propriété controlsource
    Bonsoir la Forum,

    Je cherche à effacer la propriété controlsource des controles texbox et combobox d'un formulaire, autrement dit mettre à blanc cette propriété (et non la cellule en référence)

    J'ai essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    For Each ctrl In monformulaire.Controls
        If (TypeName(ctrl) = "TextBox" Or TypeName(ctrl) = "ComboBox") Then
            Debug.Print ctrl.Name
            Debug.Print ctrl.ControlSource
     
            ctrl.ControlSource = Nothing
    'ou
            ctrl.ControlSource.Delete
     
            Debug.Print ctrl.ControlSource
        End If
    Next
    J'ai cherché, peut-être mal, dans les tutoriels de Sylkiroad et dans l'aide en ligne, sans succès.

    Merci.

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut effacer propriété controlsource
    Re-bonsoir,

    Je pense avoir trouvé.

    Il faut balayer les contrôles sous une autre forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    For Each ctrl In ThisWorkbook.VBProject.VBComponents("monformulaire").Designer.Controls
        If (TypeName(ctrl) = "TextBox" Or TypeName(ctrl) = "ComboBox") Then
            Debug.Print ctrl.Name
            Debug.Print ctrl.ControlSource
     
            ctrl.ControlSource = ""
            Debug.Print ctrl.ControlSource
        End If
    Next
    Merci aalex.

  3. #3
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    Pas si vite papillon!
    Tu t'ai compliqué la vie et pourtant en mélangeant tes 2 poste tu as la solution la plus élégante!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    For Each ctrl In monformulaire.Controls
        If (TypeName(ctrl) = "TextBox" Or TypeName(ctrl) = "ComboBox") Then
            Debug.Print ctrl.Name
            Debug.Print ctrl.ControlSource
     
            ctrl.ControlSource = Nothing
    'ou
            ctrl.ControlSource.Delete
     
            Debug.Print ctrl.ControlSource
        End If
    Next
    Ceci était très bien, le seul soucis c'est au niveau de controlSource, cette propriété est de type string, donc tu ne peux ni lui attribuer nothing, ni utiliser une méthode Delete qu'elle ne contient pas.
    Ce que tu as résolu ici dans ton 2eme code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            ctrl.ControlSource = ""
    Voila ce qui fait que ton 2eme code marche et pas ton premier. Il est donc inutile de surcharger ta structure de For ....

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut controlsource
    Bonjour le Forum, Bonjour Qwaz,

    Merci pour ta réponse.

    Je me référais à une disscussion

    acion sur les contrôles

    alex, que je remercie, m'a fourni une explication qui se révèle exacte.

    Je viens d'effectuer un nouvel essai.

    Si je code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each ctrl In monformulaire.Controls
    ,

    alors l'userform se charge et l'action qui suit est inefficace.

    Si je code comme indiqué par aalex,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each ctrl In ThisWorkbook.VBProject.VBComponents("monformulaire").Designer.Controls
    ,

    alors l'instruction se réalise.

    Merci.

    Signé : papillon.

  5. #5
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    D'accord je n'avais pas compris que tu voulais réaliser des modification "en dur" sur ton UserForm, je pensais que tu voulais faire un affichage dynamique, qui se modifié en fonctions de variables.
    Alors désolé pour l'intrusion
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  6. #6
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut CONTROLSOURCE
    Bonsoir Qwaz,

    Aucun problème.

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

Discussions similaires

  1. [ActiveX] Visibilité d'une propriété
    Par paradise dans le forum Composants VCL
    Réponses: 2
    Dernier message: 14/11/2002, 18h33
  2. Comment effacer des Items d'un TListView ?
    Par boyerf dans le forum Composants VCL
    Réponses: 4
    Dernier message: 11/11/2002, 10h19
  3. [VBA Excel] Effacer rapidement une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2002, 13h12
  4. [controle] propriété read only
    Par Fizgig dans le forum Composants VCL
    Réponses: 6
    Dernier message: 28/08/2002, 10h30
  5. [propriétés]Option Checked
    Par psl dans le forum Composants VCL
    Réponses: 6
    Dernier message: 22/08/2002, 08h07

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