Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
748to752
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
748to752
748to752
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

RowSource

RowSource
31.03.2006 18:34:41
Pia
Letzte Frage beantwortet, da taucht schon die nächste auf:
Ich setze RowSource für eine Liste einer UF mit:
comb_einnahmen.RowSource = "Daten!C2:C" & quelle.Cells(quelle.Rows.Count, 3).End(xlUp).Row
Nun sind aber die Werte in der Spalte nur in jeder zweiten Zelle vertreten. So werden auch die leeren angezeigt. Kann das erweitert werden, dass die leeren gar nicht als RowSource ausgegeben werden?
Danke!

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: RowSource
31.03.2006 18:57:09
Cold
Hallo Pia
hier mal ein vorschlag von mir
Sub zeigen_einnahmen()
Dim letztezelle As Long
Set mappe = Workbooks("deine Datei.xls").Sheets("Daten")
mappe.Activate
letztezelle = mappe.Range("C65536").End(xlUp).Row
For i = 2 To letztezelle
If ActiveWorkbook.ActiveSheet.Cells(i, 3).Value "" Then
With UF.comb_einnahmen
.AddItem (mappe.Cells(i, 3).Value)
i = i + 1
End With
End If
Next
Ens Sub
Rückmeldung wär schön!
Gruß TCold
AW: RowSource
31.03.2006 21:11:10
P@ulchen
Hallo TCold,
die Zeile: letztezelle = mappe.Range("C65536").End(xlUp).Row
bringt eine Fehlermeldung, wenn die letzte nichtleere Zelle C65536 ist...
Gruß aus Leipzig
P@ulchen
www.excel-werkstatt.de

Anzeige
AW: RowSource
31.03.2006 21:14:58
Cold
ah jap paulchen daran hab ich net gedacht aber leuchtet ein.
ich ging davon aus das die spalte net bis zur letzten zelle gefüllt ist.
hast du einen lösungsansatz?
so gut bin ich noch nicht mit VBA aber man(n) ;-) kann ja dazu lernen
Gruß TCold
AW: RowSource
31.03.2006 21:20:24
P@ulchen
Hallo TCold,
im Prinzip eine einfache Wenn-Abfrage.
Wenn C65536 = leer, dann such mal los, ansonsten CLetzte = 65536
Das obligatorische If Then Else wurde durch IIf ersetzt:
CLetzte = IIf(IsEmpty(Range("C65536")), Range("C65536").End(xlUp).Row, 65536)
Gruß aus Leipzig
P@ulchen
www.excel-werkstatt.de

Anzeige
AW: RowSource
31.03.2006 21:24:28
Cold
ja einfach und funktional sollte ich mal lieber in meinen programmen abändern.
Danke für den tipp!!!
Mal ne Frage der Rest müsste doch nach Anpassung funktionieren?
TCold
AW: RowSource
31.03.2006 21:40:55
P@ulchen
Hallo TCold,
da sind tatsächlich noch ein paar "Eier" drin:
Wenn Du Variablen deklarierst, dann nach Möglichkeit auch alle..
Wenn Du schreibst: mappe.Activate, dann kannst Du Dir die restlichen "mappe..." sparen,
ebenso das ActiveWorkbook.ActiveSheet...
For i = 2 To letztezelle und Next erhöht i bei jedem Schleifendurchlauf um 1.
Dein i=i+1 kannst Du komplett weglassen, da Du ja eine Abfrage drin hast, die den Zellinhalt auf Leere prüft.
Möchtest Du dennoch direkt nur jede 2. Zelle anspringen, dann besser so:
For i = 2 To letztezelle Step 2
Ungetestet sollte es so gehen:


Sub zeigen_einnahmen()
Dim letztezelle, i As Long
Dim mappe As Worksheets
Set mappe = Workbooks("deine Datei.xls").Sheets("Daten")
mappe.Activate
letztezelle = IIf(IsEmpty(Range("C65536")), Range("C65536").End(xlUp).Row, 65536)
For i = 2 To letztezelle
If Cells(i, 3).Value <> "" Then comb_einnahmen.AddItem Cells(i, 3).Value
Next i
End Sub


Gruß aus Leipzig
P@ulchen
www.excel-werkstatt.de

Anzeige
AW: RowSource
31.03.2006 22:36:59
Hans
Hey Paulus und wiegeht weiter
AW: RowSource
31.03.2006 22:43:08
Gerd
Hi,
ultimativ, zukunftssicher und unabhängig von Verweisen:
'von k.rola
Dim lz As Long, rc As Long
rc = Rows.Count
lz = IIf(Cells(rc, 1) "", rc, Cells(rc, 1).End(-4162).Row)
mfg Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige