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

Excel Discussion :

Alimentation donnees avec Userform [XL-2010]


Sujet :

Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    controleur gestion
    Inscrit en
    Novembre 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Croatie

    Informations professionnelles :
    Activité : controleur gestion

    Informations forums :
    Inscription : Novembre 2014
    Messages : 53
    Points : 25
    Points
    25
    Par défaut Alimentation donnees avec Userform
    Bonjour,

    J ai un petit soucis avec un userform que j ai creer pour alimenter une feuille avec les donnees qui sont selectionnes dans le userform.

    Le code que j ai ecris transfere "0" dans chacune des colonnes que j ai defini alors que les combobox de mon userform sont toutes remplies.

    Je ne comprend pas ce que j ai mal defini dans le code

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    im vcountry As Integer
    Dim vcategory As Integer
    Dim vscenario As Integer
    Dim vsignature As Integer
    Dim vproduct As Integer
    Dim vcode As Integer
     
    Dim vmonth As Integer
    Dim vamount As Double
    Dim vtype As Integer
    Dim LR As Long
    Dim WS As Worksheet
     
     
     
     
    Option Explicit
    Dim TabTemp As Variant
     
    Private Sub CommandButton1_Click()
    vcountry = ComboBox1
    vcategory = ComboBox2
    vscenario = ComboBox3
    vsignature = ComboBox4
    vproduct = ComboBox1
    vcode = ComboBox9
     
    vmonth = ComboBox6.Value
    vamount = TextBox1.Value
    vtype = ComboBox5.Value
     
    Set WS = ActiveWorkbook.Sheets("COMPASS Extraction")
     
    LR = WS.Range("A950000").End(xlUp).Row
     
     
     
    WS.Cells(LR + 1, 1) = vcategory                                    'column A'
    WS.Cells(LR + 1, 5) = vscenario                                'column E'
    WS.Cells(LR + 1, 8) = vsignature
    WS.Cells(LR + 1, 10) = vproduct                                 'column J'
    WS.Cells(LR + 1, 7) = vcode                                 'column G'
    WS.Cells(LR + 1, 2) = vmonth                                    'column B'
    WS.Cells(LR + 1, 4) = vcountry                               'column D'
    WS.Cells(LR + 1, 11) = vamount                                  'column K'
    WS.Cells(LR + 1, 9) = vtype                                     'column I'
     
    UserForm1.Hide
     
    End Sub
    Merci pour votre petit coup de pouce

    Loupion

  2. #2
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour Loupion, bonjour le forum,

    Pourquoi tourtes ces variables ? Je te propose d'utiliser la propriété [Tag] des contrôles qui contiennent des données (textboxes et comboboxes).
    Dans VBE (Visual Basic Editor),
    • affiche ton UserFomr
    • clique sur les contrôles de données
    • dans la fenêtre de propriétés, attribue à la propriété [Tag] du contrôle, le numéro de la colonne dans lequel sa donnée doit être renvoyée.
    Par rapport à ton code : ComboBox2.Tag = 1,. etc...
    Ensuite, tu boucles simplement et sans toutes ces variables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CommandButton1_Click()
    Dim LR As Long
    Dim WS As Worksheet
    Dim CTRL As Control
     
    Set WS = ActiveWorkbook.Sheets("COMPASS Extraction")
    LR = WS.Range("A950000").End(xlUp).Row + 1
    For Each CTRL In Me.Controls
        If CTRL.Tag <> "" Then WS.Cells(LR, CByte(CTRL.Tag)).Value = CTRL.Value
    Next CTRL
    UserForm1.Hide
    End Sub

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    controleur gestion
    Inscrit en
    Novembre 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Croatie

    Informations professionnelles :
    Activité : controleur gestion

    Informations forums :
    Inscription : Novembre 2014
    Messages : 53
    Points : 25
    Points
    25
    Par défaut
    Bonjour Tautheme

    Je ne connaissais pas cette possibilite.

    Je viens de l essayer et elle fonctionne a merveille

    Merci beaucoup

    Loupion

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

Discussions similaires

  1. [XL-2010] Alimenter Combobox dans Userform avec noms définis variables
    Par aethangaia dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 27/06/2014, 14h24
  2. Importer des donnees avec fichier txt
    Par flOZ dans le forum Requêtes
    Réponses: 8
    Dernier message: 21/04/2006, 17h26
  3. Base de donnees avec extension DAT
    Par rachid202446 dans le forum Bases de données
    Réponses: 3
    Dernier message: 04/10/2005, 10h10
  4. [MFC]Ouverture d'une base de donnee avec DAO
    Par Wyatt dans le forum MFC
    Réponses: 7
    Dernier message: 24/01/2005, 10h06
  5. [VB6] [ODBC] Référencer une base de données avec vb
    Par af.balog dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 13/09/2002, 09h51

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