Liste Box

Bonjour,

Dans le Excel j'ai 1 Feuille avec une Base de Donnée et une feuille avec le tableau où je dois travailler dedans.

Si j'ouvre maintenant la liste box (Printscreen2) quelle prend les données de la base de donnée (Printscreen1) je fais la sélection et après les données sont dans mon tableau (Printscreen3).

Mais

1. Il me reporte les cellules dans les mauvaises colonnes quelqu’un peut m'éditer la macro s.v.p.?

2. Je veux qu'il me s'affiche seulement les lignes dans la liste box ou les cases de la colonne B à la base de donnée sont vides. (Printscreen4)

3. C'est possible que la liste box prend les données d'un Fichier Excel externe comment je peux réaliser sa?

Voici le code:

Option Explicit

Private Sub cmdAdd_Click()
    'dimension the variable
    Dim addme As Range, cNum As Integer
    Dim x As Integer, y As Integer, Ck As Integer
    'set variables
    Set addme = Tabelle1.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0)
    cNum = 3
    Ck = 0
    'run the for loop
    For x = 0 To Me.lstMulti.ListCount - 1
        'add condition statement
        If Me.lstMulti.Selected(x) Then
            Ck = 1
            'second loop
            For y = 0 To cNum
                addme.Offset(0, y) = Me.lstMulti.List(x, y)
            Next y
            Set addme = addme.Offset(1, 0)
        End If
        'clear the selected values
        lstMulti.Selected(x) = False
    Next x
    'send a message if nothing is selected
    If Ck = 0 Then
        MsgBox "There is nothing selected"
    End If
End Sub

Private Sub cmdAdd2_Click()
    'dimension the variable
    Dim addme As Range
    Dim x As Integer, Ck As Integer
    'set variables
    Set addme = Tabelle1.Cells(Rows.Count, 14).End(xlUp).Offset(1, 0)
    Ck = 0
    'run the for loop
    For x = 0 To lstMulti.ListCount - 1
        'add condition statement
        If Me.lstMulti.Selected(x) Then
            Ck = 1
            addme = Me.lstMulti.List(x)
            addme.Offset(0, 1) = Me.lstMulti.List(x, 1)
            addme.Offset(0, 2) = Me.lstMulti.List(x, 6)
            addme.Offset(0, 3) = Me.lstMulti.List(x, 7)

            Set addme = addme.Offset(1, 0)
            'clear the selected row
            lstMulti.Selected(x) = False
        End If
    Next x
    'send a message if nothing is selected
    If Ck = 0 Then
        MsgBox "There is nothing selected"
    End If
End Sub

Private Sub cmdClose_Click()
    Unload Me
End Sub

Private Sub cmdRefresh_Click()
    Dim x
    For x = 0 To Me.lstMulti.ListCount - 1
        If Me.lstMulti.Selected(x) Then Me.lstMulti.Selected(x) = False
    Next x
End Sub

Private Sub Label1_Click()

End Sub

Private Sub lstMulti_Click()

End Sub

Merci d'avance de m'aider je suis aussi prêt de payer!

printscreen1 printscreen2 printscreen3 printscreen4

Rebonjour,

J'ai trouver maintenant un Code qui ouvre et ferme le fichier excel externe pour avoir les données pour la listbox mais quelqu'un me peux dire comment je fais qu'il me prend plusieurs colonnes (A;E;F;I;J;M;L;O) de la bas de donnée dans la listbox et seulement les colonnes où les cases de la colonne B dans la base de donnée sont vides.

Function XlsSearch(sPfad As String, sFile As String) As Variant
    Dim strWorkbook As String
    Dim appExcel As Object
    Dim sWorkbook As Object
    Dim i As Long
    Dim lZeile As Long
    Dim sArr() As Variant

    'Startzeile
    lZeile = 1

    strWorkbook = sPfad & "\" & sFile

    'ExcelObject erstellen
    Set appExcel = CreateObject("Excel.Application")

    'datei öffnen
    appExcel.Workbooks.Open strWorkbook

    Set sWorkbook = appExcel.Workbooks(sFile)

    'Datei durchsuchen

    For i = lZeile To sWorkbook.ActiveSheet.UsedRange.Rows.Count
        ReDim Preserve sArr(1 To i)
        'Namen aus Spalte A lesen
        sArr(i) = sWorkbook.ActiveSheet.Cells(i, 1)

    Next i

   'Datei schliessen
    sWorkbook.Close

    'ExcelObject löschen
    Set appExcel = Nothing

    XlsSearch = sArr()

End Function
Rechercher des sujets similaires à "liste box"