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 :

Agir sur un contrôle créé dynamiquement


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
    Technicien maintenance
    Inscrit en
    Septembre 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2016
    Messages : 42
    Par défaut Agir sur un contrôle créé dynamiquement
    Bonjour,
    Encore et toujours, j'ai besoin de l'aide de la communauté pour un problème auquel je suis confronté.

    Sur un UF, j'ai réussi tant bien que mal à ajouter automatiquement des Textbox en fonction d'une valeur lambda.

    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
    Private Sub commandbutton1_Click()
    Dim NbTB As Integer
    Dim ctlNew As Control
     
    NbTB = Textbox1.value
     
        For i = 1 to NbTB
            Set ctlNew = Me.Controls.Add("Forms.TextBox.1", "Textbox" & 100 + i, True)
                    With ctlNew
                            .Width = 145
                            .Left = 11
                            .Height = 15
                            .Top = 159 + i * ctlNew.Height
                    End With
        Next
    End Sub
    Bon, pas de problème particulier pour ce code.

    Par contre, si NbTB = 5 par exemple, on est bien d'accord que je vais créer automatiquement les TextBox101, TextBox102, TextBox103, TextBox104, TextBox105.

    Pourtant, lorsque je veux utiliser ces nouvelles Textbox fraichement créées, de cette manière par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Sheets("Feuille1").Cells(500, 500).Value = textbox103.Value
    on me renvoi cette erreur :Nom : Sans titre.png
Affichages : 315
Taille : 3,1 Ko

    Comme si la textbox n'existait pas.

    Quelqu'un aurait une idée?

  2. #2
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2016
    Messages : 42
    Par défaut
    Un petit up'

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Ici on ce trouve face au problème des torchons et des serviettes qu'il ne faut pas mélanger!

    Texte + integer = "Texteinteger" => "TextBox" & 100 + 1 = "TextBox1001" => "TextBox" & (100 + 1) = "TextBox101"

  4. #4
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2016
    Messages : 42
    Par défaut
    heu..... Comment dire simplement que ton explication m'a plus embrouillé qu'autre chose
    looll

  5. #5
    Invité
    Invité(e)
    Par défaut
    Et ça c'est plus clair on additionne pas les carottes et le patates?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set ctlNew = Me.Controls.Add("Forms.TextBox.1", "Textbox" & (100 + i), True
    Dernière modification par Invité ; 18/06/2017 à 22h21.

  6. #6
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2016
    Messages : 42
    Par défaut
    J'avais bien compris ton premier post, mais je ne vois pas la différence entre :
    et .

    Par curiosité, j'ai tout de même écrit le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set ctlNew = Me.Controls.Add("Forms.TextBox.1", "Textbox" & (100 + i), True)
    mais lorsque je tape par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox Textbox105.Value
    rien ne se passe. Comme si elle n'existait pas.... comme avant

  7. #7
    Invité
    Invité(e)
    Par défaut
    Il ce passe quelque chose apparemment puisque tu ne parles plus de message d'erreur!

    L'erreur est toujousr présente?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Textbox105.Value="toto"
    msgbox Textbox105.Value

  8. #8
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2016
    Messages : 42
    Par défaut
    J'ai toujours le même message d'erreur :
    "Erreur d'execution 424"
    Objet requis
    avec cette ligne de soulignée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Textbox105.Value="toto"

  9. #9
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,
    tu as un message "objet requis" !!!
    çà peut être le nom mais çà peut être le lieu --> ou ce trouve l'objet ?
    Feuil1.objet
    Me.objet
    UserFormName.objet
    ...


    Set ctlNew = Me.Controls.Add("Forms.TextBox.1", "Textbox" & 100 + i, True)
    et
    Sheets("Feuille1").Cells(500, 500).Value = textbox103.Value
    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  10. #10
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2016
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2016
    Messages : 42
    Par défaut
    Bonjour,
    Tous mes controls sont sur un seul et même Userform.
    J'ai testé de mettre Me.textbox105.value = "Toto" mais ce coup ci, j'ai cette erreur :
    Nom : Sans titre.png
Affichages : 253
Taille : 4,9 Ko

    Rhhhhaaaa, je sais plus où donner de la tête!!!!!!!!

  11. #11
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,

    et le "t" et "T" de Texbox ?

    J'ai testé de mettre Me.textbox105.value = "Toto" mais ce coup ci, j'ai cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.Textbox105.value = "Toto"
    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/12/2014, 13h16
  2. Réponses: 9
    Dernier message: 15/02/2011, 08h24
  3. Réponses: 4
    Dernier message: 17/06/2010, 13h52
  4. Postback sur des contrôles dynamiques
    Par luimême dans le forum ASP.NET
    Réponses: 5
    Dernier message: 27/11/2007, 14h57
  5. VBNET : Agir sur une collection de contrôles ?
    Par VinZent dans le forum Windows Forms
    Réponses: 3
    Dernier message: 12/11/2006, 09h01

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