von Listbox in Excell übertragen

  • VB6

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Unknown.

    von Listbox in Excell übertragen

    Hallo Leute.
    Ich würde gerne von einer Listbox alle darin vorkommenden Zeichen (also mithilfe eines ListIndexes warscheinlich) in eine Excell vorlage reinschreiben.
    Das ganze sollte ganz kurz und einfach gestaltet werden, da ich den rest selber ausprobieren will.

    Meine Form sollte dann ganz einfach so aussehen:

    1. 1x Button um das Excell zu öffnen und die Parameter zu übergeben.

    2. 1x Listbox in der, sagen wir 15 bis 20 Werte drinnen stehn (und wenn das nur die einfachsten Werte wie 1,2,3,4,5,6,7,8,9,10... ect. sind)

    3. 1x Quellcode, der mir solange ausliest und jedesmal eine neue Zeile in der Excell anspricht, solange es Werte in der Listbox gibt. Gibt es keinen Wert mehr zum auslesen, wird die Schleife (ich glaube dafür werde ich eine Schleife benötigen) abgebrochen.

    Bei Nr. 3 ist mein Problem. Wollte wissen wie ich das ganze auslese, wie ich eine Excelldatei öffne, von Visual Basic aus, ist mir ja bereits bekannt.

    Vielen Dank für eure Hilfe.

    Greez Professional Software @lias ProSoft
    Hi,

    Auslesen aus einer ListBox:

    <pre> ...
    Dim tmp as string
    Dim i as long

    For i=0 to ubound(Listbox.list)
    tmp = ListBox1.List(i)
    next i
    ... </pre>

    Das ist das Prinzip. Hier wird aus einer Listbox in eine Variable gelesen. Die Variable kannst du ja durch die
    entspr. Zelle in Excel ersetzen (Worksheets.cells(x,y+z))

    viel spass...

    LaMa5.
    Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
    (Autor: Earl Wilson, amerik. Schriftsteller)

    https://www.serviceteam-md.de
    Jo, danke. Das war schon ein guter Anfang. Aber kannst du mir erklären was das mit dem UBOUND auf sich hat?!?
    bei mir funzt das nämlich nicht ganz so wie ich es mir vorstelle X(

    Ich hab jetzt nämlich folgendes gemacht (das ADC hab ich mit der Nordwind von Microsoft angebunden und eine JET 4.0 Verbindung verwendet):

    1x Formular erstellt mit:
    1x Button (Name: Command1)
    1x Listbox (Name: List1)
    1x ADODC (Name: adc1)
    1x Label (Name: Label1)

    so und dazu hab ich jetzt folgenden quellcode geschrieben:

    <font size="1">
    Private Sub Command1_Click()
    adc1.Recordset.MoveFirst
    While Not adc1.Recordset.EOF
    eintrag = adc1.Recordset.Fields("Artikelname").Value
    List1.AddItem eintrag
    adc1.Recordset.MoveNext
    Wend

    Dim tmp As String
    Dim i As Long

    For i = 0 To UBound(List1.)
    tmp = List1.List(i)
    Label1.Caption = tmp
    Next i
    End Sub
    </font>

    Warum geht bei mir das UBound ned? Da bleibt er leider immer hängen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ProSoft“ ()

    UBound gibt den größten verfügbaren Index für eine
    angegebene Dimension eines Datenfeldes an.
    Um den kleinsten verfügbaren Index anzugeben, gibt
    es die Funktion LBound. Nur handelt es sich bei der
    List Eigenschaft der Listbox nicht um einen Array,
    deshalb funktioniert das mit UBound nicht. Dafür
    gibt es aber die ListCount Eigenschaft, die angibt,
    wieviele Elemente eine ListBox enthält. So könntest
    du dein Problem lösen:

    <pre>
    For i = 0 To List1.ListCount - 1
    Label1.Caption = List1.List(i)
    Next i
    </pre>

    Aber in diesem Label wirst du immer nur den letzten
    Eintrag sehen ...