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 :

Transfert valeurs listbox vers cellule, sous conditions [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Femme Profil pro
    Assistante
    Inscrit en
    Février 2016
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Février 2016
    Messages : 166
    Par défaut Transfert valeurs listbox vers cellule, sous conditions
    Bonjour Le Forum,

    J'utilise cette macro pour transférer les lignes sélectionnées de ma ListBox MultiSelect (LbPersonnel) vers ma feuille :
    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
    Dim element_select As Boolean
    Dim nb_element, i As Integer
    Dim DEST As Range
     
        element_select = False
        nb_element = LbPersonnel.ListCount
            With Worksheets("Formations")
                For i = 0 To nb_element - 1
                    If LbPersonnel.Selected(i) = True Then
                        'MsgBox "Bien selectionné"
                        element_select = True
                        Set DEST = IIf(.Range("A1").Value = "", .Range("A2000"), .Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0))
                        DEST.Offset(0, 0) = "Planifier"
                        DEST.Offset(0, 1) = LbPersonnel.List(i, 0)
                        DEST.Offset(0, 2) = LbPersonnel.List(i, 1)
                        DEST.Offset(0, 3) = LbPersonnel.List(i, 2)
                        DEST.Offset(0, 4) = CbFormation.Value
                        DEST.Offset(0, 5) = TbFormationNTS.Value
                        DEST.Offset(0, 6) = CDate(CbDébut.Value)
                        DEST.Offset(0, 7) = CDate(CbFin.Value)
                        DEST.Offset(0, 8) = TbSemaine.Value
                        DEST.Offset(0, 9) = TbJours.Value
                        DEST.Offset(0, 10) = TbHeures.Value
                        DEST.Offset(0, 11) = CbType.Value
                        DEST.Offset(0, 12) = TbInEx.Value
                        DEST.Offset(0, 13) = CbOrganisme.Value
                        DEST.Offset(0, 14) = CbLieu.Value
                        DEST.Offset(0, 17) = TbCoutF°.Value        
                     End If
                Next
             End With
    Donc si j'ai sélectionné 3 lignes dans ma LB par exemple, 3 lignes de ma feuille vont se remplir.

    Ce que je souhaiterais, c'est que ça : DEST.Offset(0, 17) = TbCoutF°.Value ne soit inscrit que sur la première ligne de ma feuille et pas les 2 autres.
    Est-ce que c'est possible ?

    Merci beaucoup d'avance pour votre aide et de vous penchez sur mon cas

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Essayez ceci (pas testé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        'Recherche de la première ligne vide dans la colonne A
        NwLig = Range("A" & Rows.Count).End(xlUp).Row + 1
        With Worksheets("Formations")
            Cells(NwLig, 17) = TbCoutF°.Value
            For i = 0 To nb_element - 1
                If LbPersonnel.Selected(i) = True Then
                    'MsgBox "Bien selectionné"
                    element_select = True
                    Range(Cells(NwLig, 1), Cells(NwLig, 15)) = Array("Planifier", LbPersonnel.List(i, 0), LbPersonnel.List(i, 1), LbPersonnel.List(i, 2), CbFormation.Value, _
                    TbFormationNTS.Value, CDate(CbDébut.Value), CDate(CbFin.Value), TbSemaine.Value, TbJours.Value, TbHeures.Value, CbType.Value, TbInEx.Value, CbOrganisme.Value, CbLieu.Value)
                    NwLig = NwLig + 1
                 End If
            Next
         End With
    Cdlt

  3. #3
    Membre très actif
    Femme Profil pro
    Assistante
    Inscrit en
    Février 2016
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Février 2016
    Messages : 166
    Par défaut
    Bonjour,

    C'est parfait merci beaucoup

    Ça fonctionne !

    A bientôt, et encore merci de m'avoir accordé votre temps.

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

Discussions similaires

  1. [Débutant] Copie de valeur sélectionnée ListBox vers cellule +1
    Par UneMinute22 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/01/2018, 14h44
  2. Réponses: 7
    Dernier message: 29/01/2016, 13h58
  3. [XL-2013] Déplacer valeurs cellules sous conditions
    Par rivaol2689 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/12/2013, 14h04
  4. [XL-MAC 2011] Transfert d'une listbox vers cellules excel en ligne
    Par Sylvie BASTIEN dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/09/2013, 19h57
  5. [XL-2007] listbox vers feuille sous condition
    Par grisan29 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/11/2011, 21h56

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