Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1512to1516
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
Inhaltsverzeichnis

Spaltenanzahl variabel

Spaltenanzahl variabel
21.09.2016 10:14:23
Thomas
Hall excelfreunde,
ich benutze das untenstehende Makro um meine Listbox zu füllen.
nun verändert sich jedoch die einzulesende Spaltenanzahl.
kann mir jemand helfen ich möchte gern diesen teil
aBereich = .Range("A1:Q" & lLetzte)
des Makros so zu verändern das es variabel ist. Mal natürlich dumm von mir gezeigt
aBereich = .Range("A1:Columns.Count" & lLetzte)
habt schon mal recht vielen dank für euer interesse an meinem Problem.
liebe grüsse thomas
Sub sechster_versuch()
Dim lLetzte As Long ' Listbox füllen mit mehr wie 10 Spalten
'Dim rBereich As Range
Dim aBereich As Variant
Dim lZeile As Long
Dim vTemp As Variant
Application.ScreenUpdating = False
ListBox1.Clear
'TextBox17.Value = Date
With Tabelle1
lLetzte = .Cells.SpecialCells(xlCellTypeLastCell).Row
aBereich = .Range("A1:Q" & lLetzte)
For lZeile = 1 To UBound(aBereich, 1)
aBereich(lZeile, 2) = Format(aBereich(lZeile, 2), "hh:mm:ss")
aBereich(lZeile, 5) = Format(aBereich(lZeile, 5), "hh:mm:ss")
Next
End With
With ListBox1 ' Abstände der Spalten zueinander
.ColumnCount = UBound(aBereich, 2)
.List() = aBereich
'.ColumnHeads = True
End With
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spaltenanzahl variabel
21.09.2016 10:29:52
Daniel
Hi
wenn du dich auf die LastCell als Eckzelle beziehst dann einfach:
aBereich = .Range(.Cells(1, 1), .Cells.SpecicalCells(xlcelltypelastcell))
oder noch einfacher
aBereich = .UsedRange
Gruß Daniel
AW: Spaltenanzahl variabel
21.09.2016 10:32:36
Fennek
Hallo,
die letzte Spalte kann man analog zurletzten Zeile ermitteln:

sub LS()
ls = cells(1, columns.count).end(xltoleft).column
end sub
Die Voraussetzung ist aber, dass rechts von den relevanten Daten keine weiteren sind.
Es ist auch möglich über ls = split(cells(1).usedrange.address, "$")(1) die Spalte auszulesen.
mfg
Anzeige
AW: Spaltenanzahl variabel
21.09.2016 11:14:01
Thomas
Hallo Daniel und Fennek,
habt rechtvielen dank für die schnelle hilfe.
Diese Zeile aBereich = .UsedRange funktioniert.
Die anderen beiden bringen den Fehler "Objekt unterstützt diese Eigenschaft nicht"
Dies mit usedRange funktioniert zwar gut nur für die Zukunft könnt ihr mal schauen ob ihr eine der beiden anderen Zeilen noch hinbekommt? ich werde dies in meinem Projekt bestimmt noch benötigen .
Wenn ich mal nicht in zelle a1 anfangen muss die Daten einzulesen wäre es super.
liebe grüsse thomas
AW: Spaltenanzahl variabel
21.09.2016 16:53:35
ChrisL
Hi Thomas
Problem 1: Variable und Prozedur sollten nicht den gleichen Namen haben
Problem 2: Specical
Sub La()
Dim LS As Long
LS = Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox LS
End Sub

Sub t()
Dim aBereich As Range
With Tabelle1
Set aBereich = .Range(.Cells(1, 1), .Cells.SpecialCells(xlCellTypeLastCell))
End With
MsgBox aBereich.Columns.Count
End Sub

Sub tt()
Dim aBereich As Range
With Tabelle1
Set aBereich = .UsedRange
End With
MsgBox aBereich.Columns.Count
End Sub

cu
Chris
Anzeige
AW: Spaltenanzahl variabel
21.09.2016 21:50:21
Thomas
Hallo Chris,
besten dank für deine unterstützung.
aber ich versuch schon seid Stunden herauszubekommen was Du mir sagen möchtest.
Alle drei Versionen bringen das selbe Ergebnis. Jedoch wenn ich dies in mein Macro einbaue. Bekomme ich
an dieser stelle For lZeile = 1 To UBound(aBereich, 1) diese Fehlermeldung "typenunverträglichkeit".
Hast du hier ein rat?
https://www.herber.de/bbs/user/108332.xlsm
mfg thomas
AW: Spaltenanzahl variabel
22.09.2016 08:33:46
ChrisL
Hi Thomas
Wie wärs hiermit...
Private Sub UserForm_Initialize()
Dim wksBlatt As Worksheet, aBereich As Range
Set wksBlatt = Worksheets("Tabelle1")
With wksBlatt
Set aBereich = .Range(.Cells(2, 1), .Cells.SpecialCells(xlCellTypeLastCell))
End With
With ListBox1
.ColumnCount = aBereich.Columns.Count
.RowSource = aBereich.Address(0, 0)
.ColumnHeads = True
End With
End Sub
cu
Chris
Anzeige
perfekt besten dank an ChrisL
22.09.2016 21:21:16
Thomas
Hallo Chris,
ist echt super das du dir dies nochmal angeschaut hast.
Damit hast du alle Probleme auf einmal gelöst.
Ich freu mich riesig über deine Lösung.
Und sorry das ich mich erst jetzt melde ich habe erst jetzt wieder Internet.
hab recht vielen dank für die Hilfe.
liebe grüsse thomas

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige