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 SubMerci d'avance de m'aider je suis aussi prêt de payer!
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