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 :

plusieurs Controls pour différente liste de textbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Par défaut plusieurs Controls pour différente liste de textbox
    Bonjour,

    Sur mon userform, auparavant j'avais plusieurs textbox qui renvoyait les données a une seule colonne dans excel, même chose pour les combobox. Avec le code suivant, tout fonctionnait a merveille:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    With Sheets("Données")
     
    For iLogement = 1 To 29
    .Cells(iLogement + 1, 4) = Val(Me.Controls("TextBox" & iLogement))
    .Cells(iLogement + 1, 5) = Me.Controls("ComboBox" & iLogement)
    Maintenant, il y a une nouvelle rangée de textbox sur ma userform, qui renvoit des données dans une nouvelle rangée dans mon fichier excel.
    Comme le control prend tout mes text box et l'envoit seulment sur la 4 eme colonne, je me demande comment je pourrais avoir un control qui ferait la différence entre les deux rangées de textbox, et pouvant renvoyer dans deux colonnes différente les données...Jespere que je suis clair dans ce que j'écrit et que vous pourrez m'aider !

    Merci !

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut north_ et le forum
    Nommes les textbox de tes 2 rangées différemment : par exemple TB_1_01, TB_1_02, TB_1_03, etc. et TB_2_01, TB_2_02, TB_2_03, etc.
    ou dans ta boucle fait un test : si n° >20 colonne B else Colonne A
    A+

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 61
    Par défaut
    Bonjour North, Gorfael

    une autre solution, utiliser la propriété "tag" des "textbox", tu la renseignes pour la 1ère série par la lettre de la colonne sur laquelle tu veux ensuite renvoyer les données, idem pour la 2ème série. Tu peux ensuite t'inspirer du code ci-dessous pour valoriser tes cellules.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim c As Control
    For Each c In Me.Controls
        If TypeName(c) = "TextBox" Then
            Range(c.Tag & Range(c.Tag & Rows.Count).End(xlUp).Row + 1) = c.Value
        End If
    Next c
    bonne journée
    @+

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Par défaut
    Bonjour a vous,

    Pierrot, je ne suis pas certain de bien comprendre ton code...Peut-etre avec quelques notes ce serait plus facile car je bloque a comment VB va pouvoir reconnaitre mes séries de textbox comme étant indépendante.

    Je me demandais aussi du meme coup si cest possible de classer mes deux série de textbox par exemple TBSerie1 et TBSerie2 et utiliser ensuite le meme Control que celui dont jai mit le code dans mon premier message.

    Merci a vous tous !

  5. #5
    Membre éclairé
    Inscrit en
    Novembre 2007
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 61
    Par défaut
    Bonsoir North

    Dans l'éditeur vba, sur ton usf, tu sélectionnes ta 1ère série de "textbox", et tu renseignes ensuite dans la propriété "tag" (via la fenêtre propriété) de ces objets la lettre de la colonne que tu veux utiliser, A par exemple. Même chose pour la 2ème série...

    bonne soirée
    @+

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Par défaut
    Donc j'ai tenté d'ajusté mon fichier avec ton code, avec les Tag.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim Montant As Control
    Dim Locataire As Control
     
    For Each Montant In Me.Controls
        If TypeName("Montant") = "TextBox" Then
            Sheets("Données").Cells(Montant + 1, 4) = Montant.Value
                End If
    Next Montant
     
    For Each Locataire In Me.Controls
        If TypeName("Locataire") = "TextBox" Then
            Sheets("Données").Cells(Locataire + 1, 5) = Locataire.Value
        End If
    Next Locataire
    Mais avec cela, il me renvoit un message d'erreur...Donc les données dans les series de textbox sen vont dans une colonne de la Sheet "Données"...

    Quesqui cloche ici ?

Discussions similaires

  1. Plusieurs scripts pour différents groups par GPO
    Par spike93 dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 02/03/2010, 10h02
  2. Plusieurs Validator pour un même Textbox
    Par robri dans le forum ASP.NET
    Réponses: 5
    Dernier message: 28/05/2008, 15h19
  3. Méthode pour plusieurs controllers
    Par pjmorce dans le forum Ruby on Rails
    Réponses: 4
    Dernier message: 29/02/2008, 10h04
  4. Réponses: 5
    Dernier message: 14/08/2007, 14h35
  5. Evenement pour plusieurs controles creed dynamiquement
    Par sovo dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 23/10/2006, 17h14

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