# VBA Daten aus ListBox in die Excel Tabelle übertragen



## Wolke7777777 (4. Dezember 2013)

Hallo

Ich habe ListBox mit 2 Spalten und mehreren Zeilen. Mit Betätigung des CommandButtens1 sollten alle Daten gleichzeitig in Excel Tabelle 1 Bereich ab A3:B3 übernommen werden. Ich weiß aber nicht wie das geht.

Ich recherchiere schon seit gestern im Internet aber kann nichts finden.
Ich hoffe jemand könnte mir helfen


----------



## Zvoni (4. Dezember 2013)

Im Click-Event des Commandbuttons


```
For i=0 to Listbox.ListCount-1

Tabelle1.Cells(i+3,1)=ListBox.List(i,0)
Tabelle1.Cells(i+3,2)=ListBox.List(i,1)

Next
```

Ungetestet. Ist Aircode.


----------



## Wolke7777777 (4. Dezember 2013)

Zvoni hat gesagt.:


> Im Click-Event des Commandbuttons
> 
> 
> ```
> ...



Schade, aber es hat nicht funktioniert. Schreibt ein Fehler. Hier ist meine Code für ein besseres Verständnis :

Private Sub cmdSuchen_Click()
    Dim rngCell As Range
    Dim strFirstAddress As String
    Dim i As Integer

        With Worksheets("Bestellungen_Access").Range("A:A")
            Me.ListBox1.Clear
            Set rngCell = .Find(Me.ComboBox1.Value, LookIn:=xlValues, lookat:=xlWhole)
            If Not rngCell Is Nothing Then
            strFirstAddress = rngCell.Address
        Do
        With Me.ListBox1
        .ColumnCount = 2

          .AddItem


          .List(.ListCount - 1, 0) = rngCell.Offset(0, 1).Value
          .List(.ListCount - 1, 1) = rngCell.Offset(0, 2).Value
          .ColumnWidths = "3cm;3cm"    
        End With

        Set rngCell = .FindNext(rngCell)
        Loop While Not rngCell Is Nothing And rngCell.Address <> strFirstAddress
      Else
       MsgBox "Name nicht gefunden", 48
    End If
End With
End Sub



Private Sub UserForm_Initialize()

Dim intZeile As Integer
Dim i As Integer

With Sheets("Bestellungen_Access")
For intZeile = 2 To .UsedRange.Rows.Count
  If WorksheetFunction.CountIf(Range("A2:A" & intZeile), Cells(intZeile, "A")) = 1 Then
    ComboBox1.AddItem .Cells(intZeile, 1).Value

  End If
Next intZeile
End With

End Sub


----------



## tombe (4. Dezember 2013)

Unformatierten Code zu lesen macht a) keinen Spaß und b) erkennt man auch nicht so richtig was da geschrieben steht.

Ob es jetzt daran liegt oder ob ich es nur nicht finde, aber wo bitte ist das was Zvoni dir geschrieben hat?

Es funktioniert nämlich!

Außerdem wenn du einfach nur schreibst "...Schreibt ein Fehler...", dann kann man noch nicht einmal raten was die Ursache ist.


----------



## Zvoni (4. Dezember 2013)

Ich habe ihn so verstanden, dass der inhalt der listbox auf der userform per buttonclick in das worksheet übertragen werden soll.
Was ich in seinem code erkennen/vermuten kann, ist anscheinend genau anderstherum: werte aus einer range auf dem worksheet per buttonclick in die listbox auf der userform reinschreiben.

Who knows....

Sorry wegen kleinschreibung. Bin auf dem ipad.

Edit: die schnellste/einfachste variante in vba einer mehrspaltigen listbox/combobox werte zuzuweisen, ist ein array der daten zu erstellen, und dann dieses array der list-eigenschaft zuzuweisen.

```
Listbox.list=myarray
```


----------



## tombe (4. Dezember 2013)

Genau das ist es was mich daran auch so verwirrt hat. So wie du habe ich es nämlich auch verstanden.

Könnte natürlich auch der Grund sein warum es bei ihm nicht klappt.


----------



## Zvoni (4. Dezember 2013)

Wobei die thread-überschrift eigentlich eindeutig ist und keinen raum für spekulationen offen lässt....


----------



## Wolke7777777 (9. Dezember 2013)

Ich entschuldige mich, für meine undeutliche Erklärung. Ich bin im VBA ein Anfänger.
Also, diese Code ermöglicht es mir nach bestimten Daten zu suchen. Und zwar, die Daten werden aus einer Excel-Tabelle "Bestellungen_Access"  rausgesucht und in die ListBox1 übernommen. Und jetzt möchte ich alle Spalten aus ListBox1 in eine andere Excel-Tabelle mit betätigung der CommandButten1 zu übernehmen


Private Sub cmdSuchen_Click()
Dim rngCell As Range
Dim strFirstAddress As String
Dim i As Integer

With Worksheets("Bestellungen_Access").Range("A:A")
Me.ListBox1.Clear
Set rngCell = .Find(Me.ComboBox1.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not rngCell Is Nothing Then
strFirstAddress = rngCell.Address
Do
With Me.ListBox1
.ColumnCount = 2

.AddItem


.List(.ListCount - 1, 0) = rngCell.Offset(0, 1).Value
.List(.ListCount - 1, 1) = rngCell.Offset(0, 2).Value
.ColumnWidths = "3cm;3cm"
End With

Set rngCell = .FindNext(rngCell)
Loop While Not rngCell Is Nothing And rngCell.Address <> strFirstAddress
   Else
       MsgBox "Name nicht gefunden", 48
   End If
 End With
End Sub


----------



## Wolke7777777 (9. Dezember 2013)

Zvoni hat gesagt.:


> Im Click-Event des Commandbuttons
> 
> 
> ```
> ...



Es hat geklappt, Danke Zvoni, ich glaube ich habe etwas falsch eingetippt, deswegen zeigte ein Fehler. War wohl ein langer Tag.
Aber jetzt funktioniert alles supper******


----------



## truckerking (3. März 2019)

wäre schon interesssant, ich suche eine ähnliche möglichkeit, nur das ich auf meiner userform Comboboxen, Textboxen und labels habe die alle was anzeigen, diese sollen auf Commandbutton_click diese daten in verschiedene zelle im Worksheet/Exceltabelle1 eingetragen werden. ist das so überhaupt möglich kann dazu überhaupt nix finden.
wer kann mir da weiterhelfen, bin neueinsteiger in VBA hatte das früher mal in der Ausbildung gehabt.


----------

