Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
224to228
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
224to228
224to228
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

variable Tabellenlänge

variable Tabellenlänge
27.02.2003 15:13:27
nic
Hallo zusammen,

folgendes Problem:

In einem Dialogfeld ("ProjectInfo") werden diverse Daten eingegeben, die durch Button-Click auf ein Excel-Sheet übertragen werden. Dieses Dialogfeld enthält u.a. eine ListBox ("lstRessourcesList"), die folgendermaßen aussieht:

Bsp.:
name1_____aaa_____20%_____120€
name2_____bbb_____10%_____120€
name3_____ccc_____30%_____120€

Die Länge dieser Liste variiert je nach Projekt.

Mein Problem ist das Generieren der dazugehörigen Excel-Tabelle. Ab Zelle C8 des Excel-Sheets sollen die Namen (also die Daten aus Spalte 1 der Liste) untereinander übertragen werden. Wegen der variablen Listenlänge kann ich aber weder genaue Zellen für jeden Namen zuweisen noch eine letzte Zelle festlegen.

Wer kann helfen?





6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: variable Tabellenlänge
27.02.2003 15:22:55
ChrisL

Hallo Nic

Option Explicit

Private Sub CommandButton1_Click()
Dim LetzteZeile As Long
LetzteZeile = Range("C65536").End(xlUp).Row + 1
If LetzteZeile <= 8 Then LetzteZeile = 8
Cells(LetzteZeile, 3) = ListBox1.Column(0)
End Sub


Gruss
Chris

Re: variable Tabellenlänge
27.02.2003 15:32:57
nic

Hi Chris,

bekomme Fehlermeldung das "Column" nicht aufgerufen werden konnte. Index des Eigenschaftsfelds ist ungültig.

nic

Re: variable Tabellenlänge
27.02.2003 15:37:49
ChrisL

Hallo nic

Versuch mal ohne Column(0) sollte eigentlich auch gehen, wenn sich der Name in der ersten Spalte der Listbox befindet.

Gehe davon aus, dass du eine mehrspaltige Listbox hast und diese als Array eingelesen hast. Hierbei ist Spalte 1 üblicherweise "Column(0)".

Gruss
Chris

Anzeige
Re: variable Tabellenlänge
27.02.2003 15:46:46
nic

Funktioniert auch nicht. Der Text wird folgendermaßen eingelesen:

Private Sub cmdAdd_Click()

'Transfer input from textboxes to appropriate column
Dim anz As Integer
Dim i As Integer
Dim doppelt As Boolean

doppelt = False

anz = lstRessourcesList.ListCount

i = 0
While (i < anz) And (doppelt = False)
If (txtRessource = lstRessourcesList.List(i, 0)) Or _
(txtRessourceShort = lstRessourcesList.List(i, 1)) Then doppelt = True
i = i + 1
Wend

If (doppelt = False) Then
lstRessourcesList.AddItem txtRessource
i = lstRessourcesList.ListCount - 1
lstRessourcesList.List(i, 1) = txtRessourceShort
lstRessourcesList.List(i, 1) = UCase(txtRessourceShort)
lstRessourcesList.List(i, 2) = txtRate & "%"
lstRessourcesList.List(i, 3) = txtHourlyRate & " €"
txtRessource = ""
txtRessourceShort = ""
txtRate = ""
txtHourlyRate = ""
Else
Beep
MsgBox "Name or short name are already listed.", vbOKOnly, "Error"
End If
End Sub


Die Excel-Tabelle wird durch einen "Generate"-Button generiert.

Anzeige
Re: variable Tabellenlänge
27.02.2003 16:07:46
ChrisL

Hallo nic

Habe jetzt alles nachgebaut und mit folgendem Code funktioniert es bei mir:

Private Sub CommandButton2_Click()
Dim LetzteZeile As Long
LetzteZeile = Range("C65536").End(xlUp).Row + 1
If LetzteZeile <= 8 Then LetzteZeile = 8
Cells(LetzteZeile, 3) = lstRessourcesList
End Sub


Heisst natürlich nicht Listbox1 sondern wie von dir benannt lstRessourcesList.

Gruss
Chris

Re: variable Tabellenlänge
27.02.2003 17:10:15
nic

Das hatte ich vorhin schon bedacht und auch ausgetauscht, aber wie gesagt, funktionierte es weder mit noch ohne "Column".
Habe es dann so probiert:

Dim i As Integer
Dim LetzteZeile As Long
Dim anz As Integer

anz = ProjectInfo.lstRessourcesList.ListCount
i = 0

While (i < anz)
LetzteZeile = Range("C65536").End(xlUp).Row + 1
If LetzteZeile <= 8 Then LetzteZeile = 8
Cells(LetzteZeile, 3) = ProjectInfo.lstRessourcesList.List(i, 0)
i = i + 1
Wend

So funktioniert's. Danke für deine Hilfe.

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige