XL 2010 Copier valeur d'une listbox

netparty

XLDnaute Occasionnel
Bonjour à tous

Je cale pour trouver la solution à mon probléme.

voila je vous explique :

dans mon formulaire j'ai une listbox qui affiche les données de la feuille1 et je voudrai quand je double clic sur la ligne qui intéresse, pouvoir copier les valeurs de la colonne 1 et 3 de cette ligne vers une cellule active d'une nouvelle feuille dans les colonne 4 et colonne 6.

Merci d'avance pour votre aide


Bonne journée
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir @netparty, le Forum

Pas très clair sans fichier exemple...

Voilà mon interprétation :
VB:
Option Explicit


Private Sub UserForm_Initialize()
Dim Cell As Range
Dim x As Integer

    For Each Cell In Sheets("Feuil1").Range("A2:A10")
        With Me.ListBox1
        .ColumnCount = 3
        .AddItem Cell
        .Column(1, x) = Cell.Offset(0, 1)
        .Column(2, x) = Cell.Offset(0, 2)
        x = x + 1
        End With
    Next Cell

End Sub


Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim TheLine As Integer

Sheets("Feuil2").Activate
TheLine = ActiveCell.Row

    With Me.ListBox1
        Cells(TheLine, 4) = .Column(0, .ListIndex)
        Cells(TheLine, 6) = .Column(2, .ListIndex)
    End With

End Sub

Bonne soirée
@+Thierry
 

netparty

XLDnaute Occasionnel
Bonsoir @netparty, le Forum

Pas très clair sans fichier exemple...

Voilà mon interprétation :
VB:
Option Explicit


Private Sub UserForm_Initialize()
Dim Cell As Range
Dim x As Integer

    For Each Cell In Sheets("Feuil1").Range("A2:A10")
        With Me.ListBox1
        .ColumnCount = 3
        .AddItem Cell
        .Column(1, x) = Cell.Offset(0, 1)
        .Column(2, x) = Cell.Offset(0, 2)
        x = x + 1
        End With
    Next Cell

End Sub


Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim TheLine As Integer

Sheets("Feuil2").Activate
TheLine = ActiveCell.Row

    With Me.ListBox1
        Cells(TheLine, 4) = .Column(0, .ListIndex)
        Cells(TheLine, 6) = .Column(2, .ListIndex)
    End With

End Sub

Bonne soirée
@+Thierry


Bonjour _Thierry

Merci pour ton aide, j'ai testé ton code et c'est impeccable,
mais j'ai encore une petite question :

est-il possible quand on double clic pour coller les valeurs que celle-ci soit collée a la dernière ligne non vide ?
et après collage des données de passer a la ligne suivante.

Merci d'avance et bonne journée.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @netparty

est-il possible quand on double clic pour coller les valeurs que celle-ci soit collée a la dernière ligne non vide ?
et après collage des données de passer a la ligne suivante.

Oui c'est assez simple, il suffit de changer sur l'event Double-Click :

VB:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim TheLine As Integer

TheLine = Sheets("Feuil2").Range("D1000").End(xlUp).Row + 1

    With Me.ListBox1
        Cells(TheLine, 4) = .Column(0, .ListIndex)
        Cells(TheLine, 6) = .Column(2, .ListIndex)
    End With

End Sub

Bonne journée
@+Thierry
 

netparty

XLDnaute Occasionnel
Bonjour @netparty



Oui c'est assez simple, il suffit de changer sur l'event Double-Click :

VB:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim TheLine As Integer

TheLine = Sheets("Feuil2").Range("D1000").End(xlUp).Row + 1

    With Me.ListBox1
        Cells(TheLine, 4) = .Column(0, .ListIndex)
        Cells(TheLine, 6) = .Column(2, .ListIndex)
    End With

End Sub

Bonne journée
@+Thierry
Un tous grand merci a toi _Thierry c'est nickel

J’abuse encore un peu mais peut-on utiliser 2 listbox dans le même formulaire, faut-il aussi le déclarer dans le UserForm_Initialize.

Bonne journée
 
Dernière édition:

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Bonjour

Pour une seconde ListBox, en règle générale on l'alimente depuis le UserForm_Initialize... Mais il y a d'autres moyens (telle "RowSource" en mode Deisgn/Property)...

Et donc oui on peut avoir autant de ListBox que nécessaire dans un UserForm.

Bonne journée
@+Thierry
 

Discussions similaires

Réponses
18
Affichages
505
Réponses
25
Affichages
600