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 :

Ajout via Userform [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 304
    Par défaut Ajout via Userform
    Bonjour,

    J'utilise une userform pour de la saisie, cette userform possède des listes en cascades. Lorsque je valides (avec le bouton ok), je récupère bien mes données sélectionnées dans ma feuille excel à un endroit bien défini.

    Ce que je souhaite faire, c'est d'avoir un bouton Ajout, qui pourrai me permettre de ne pas sortir de la Userform, et qui m'ajouterai mes sélections les une en dessous de autres.

    Par avance merci de votre aide.

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Avec deux listboxes dont les données se coopient en colonnes A et B :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub cbAjout_Click()
        Dim Ligne As Long
        With Sheets("Feuil1")
            Ligne = .Cells(.Rows.Count, 1).End(xlUp).Row
            .Cells(Ligne, 1) = Me.listbox1.Value
            .Cells(Ligne, 2) = Me.listbox2.Value
            'etc.
        End With
    End Sub

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Erratum; mercatog vient de me le faire remarquer; il faut mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ligne = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
    au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ligne = .Cells(.Rows.Count, 1).End(xlUp).Row

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 304
    Par défaut
    Merci.

    En fait, à la base, j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        Dim I As Integer
        With Me.BU
        For I = 0 To .ListCount - 1
        If .Selected(I) = True Then
            If Range("A12") > 0 Then
                Range("A11").End(xlDown).Offset(1, 0).Value = .List(I)
                Else
                Range("A11").Offset(1, 0).Value = .List(I)
     
            End If
        End If
        Next I
        End With
    Pour chacune de mes listebox

    Je n'arrive pas à adapter le code que vous m'avez indiquer.

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Je ne suis pas sûr de bien comprendre... Tu veux la même chose que ton code, mais pour toutes tes listboxes ?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 304
    Par défaut
    En fait, avec mon code, j'arrive à récupérer la sélection de ma listebox, tandis avec votre code, je n'y arrive pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub cbAjout_Click()
        Dim Ligne As Long
        With Sheets("Feuil1") ' j'ai mis le nom de la feuille sur laquelle je veux mon résultat
            Ligne = .Cells(.Rows.Count, 1).End(xlUp).Row
            .Cells(Ligne, 1) = Me.listbox1.Value  ' j'ai remplacé listbox1 par le nom de ma première listbox
            .Cells(Ligne, 2) = Me.listbox2.Value ' idem par le nom de ma deuxième listbox
            'etc.
        End With
    End Sub
    et le résultat est une feuille vide.

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

Discussions similaires

  1. [XL-2010] Modification ou ajouter via userform
    Par toctoc dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/09/2013, 12h01
  2. ouvrir et visualiser onglet via userform
    Par cimbra55 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/03/2009, 17h34
  3. Onkey : comment limiter accès au VBA via userform et password
    Par Godzestla dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/02/2009, 13h02
  4. Insertion d'une formule via userform
    Par kedas dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/09/2007, 18h18
  5. Réponses: 2
    Dernier message: 22/03/2007, 22h55

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