Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

zeilen/spalten-anzahl

Forumthread: zeilen/spalten-anzahl

zeilen/spalten-anzahl
25.05.2002 04:53:24
boblgum
hi
bin ein ziemlicher anfänger in vba und habe folgende frage:
mit

zeilenCount = Range("A65536:Z65536").End(xlUp).Row

kann ich die anzahl aller zeilen ermitteln. wie kann ich nun die spaltenanzahl rauskriegen?
ich möchte halt die zelleninhalte der überschrifen-zeile in eine combobox einlesen, was auch klappt. ich mache das mit einer for-schleife mit einem festen end-index:

For i = 0 To 4 Step 1
cbxSpalte.AddItem ActiveSheet.Cells(1, i + 1).Value
Next i

gibt es auch ne möglichkeit an die bezeichnungen "A1", "B1" usw. "ranzukommen"?

schon mal riesen dank!

mfg boblgum

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: zeilen/spalten-anzahl
25.05.2002 07:06:58
WernerB.
Hallo ???,

Zeilennummer der letzten Zelle mit Inhalt in der Spalte A:
Cells(Rows.Count, 1).End(xlUp).Row

Spaltennummer der letzten Zelle mit Inhalt in der Zeile 1:
Cells(1, Columns.Count).End(xlToLeft).Column

Deine Frage: Gibt es auch ne Möglichkeit an die Bezeichnungen "A1", "B1" usw. "ranzukommen"? verstehe ich nicht.
Kannst Du die auch anders (etwas ausführlicher) formulieren (evtl. mit Beispiel)?

Gestatte mir abschließend bitte noch einen Hinweis:
In diesem Forum bitte mit Realnamen auftreten (Vorname genügt); lies dazu bitte auch die "FAQ" in der Kopfleiste dieses Forums.
Vielen Dank für Dein Verständnis!

Viel Erfolg wünscht
WernerB.

Anzeige
Re: zeilen/spalten-anzahl
25.05.2002 11:52:26
boblgum
hi und danke für die promte antwort!

mit "rankommen an "A1" usw." meinte ich, daß ich doch in einer schleife die werte in denn zellen erster zeile auslese. da ich wohl schlecht buchstaben als laufindex benutzen kann und die ja bei XL irgendwann auch noch doppelt anlaufen wie z.b "AA1", würde mich halt interessieren ob sowas wie Cells(1, i).Spaltenkopft zur verfügung steht.

zum realname :)
sorry, aber dieser nick ist schon fast in meinen pass eingetragen. bin schon seit etwa 3Jahren damit "unterwegs" und bin auch in der Flasher-community darunter bekannt (www.flashworker.de)
nichts desto trotzt, mein name ist Vitali :)

Anzeige
Re: zeilen/spalten-anzahl
25.05.2002 12:17:23
WernerB.
Hallo Vitali,

Spalten lassen sich nicht nur mit dem/den Spaltenbuchstaben ansprechen, sondern auch mit der Spaltennummer (A=1, B=2, ... IV=256), was sich für die Schleifenbearbeitung mit der Cells-Methode besonders gut eignet.

Cells(Zeilennummer, Spaltennummer).Value = "tralala"

So kannst Du beispielsweise eine Spaltennummer ermitteln:
acC = ActiveCell.Column
acC = Range("AA5").Column

Die Variable acC (die natürlich auch anders benannt werden darf) kann dann z.B. so eingesetzt werden:
Cells(5, acC + 1).Value = "tralala"

Ich hoffe, dass Dir diese kurzen Ausführungen genügend Anregungen zur Lösung anstehender Probleme bieten.

MfG
WernerB.

Anzeige
Re: zeilen/spalten-anzahl
25.05.2002 12:36:58
boblgum
hi
daß man bei Cells(x,y) die spalten auch mit nummer ansprechen kann ist mir schon klar :) die frage wäre:
ich möchte daß bei der auswahl eines combobox-eintrags die tabelle nach der spalte sortiert wird mit
...Key1:=Range("B2")...
kann ich z.b. die tabelle nach den werten der zweiten spalte sortieren.
wie kann ich nun den wert in der klammer (im beispiel wäre das "B2") ermitteln, wenn ich weiß, daß in der combobox der eintrag mit dem ListIndex=2 gewählt wurde. d.h
ListIndex=0 --> "A2" --> Key1:=Range("A2")...
ListIndex=1 --> "B2" --> Key1:=Range("B2")...
ListIndex=3 --> "C2" --> Key1:=Range("C2")...
...

ne mögliche lösung wäre ein array, aber das wäre nicht besonders elegant.

mfg boblgum

Anzeige
Re: zeilen/spalten-anzahl
25.05.2002 13:15:27
WernerB.
Hallo Vitali,

wenn Du die "2" (=Spalte B) in einer Variablen (z.B. SpN) eingefangen hast, kannst Du so vorgehen:

Auszug aus den "FAQ" von Hans W. Herber:

"Im Forum gilt ausschliesslich das Du.

NickNames sind nicht erwünscht. Diese Frager werden bei der Beantwortung nicht gerade bevorzugt behandelt. Nenne zumindest Deinen Vornamen, damit man Dich ansprechen kann."

Bitte beachte diese Forumsregel. Vielen Dank!

MfG
WernerB.

Anzeige
;
Anzeige

Infobox / Tutorial

Spaltenanzahl in Excel ermitteln und nutzen


Schritt-für-Schritt-Anleitung

Um die Spaltenanzahl in Excel zu ermitteln, kannst du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke auf Einfügen > Modul.
  3. Gib den folgenden Code ein:

    Sub SpaltenanzahlErmitteln()
       Dim spaltenCount As Long
       spaltenCount = Cells(1, Columns.Count).End(xlToLeft).Column
       MsgBox "Die Anzahl der Spalten beträgt: " & spaltenCount
    End Sub
  4. Führe das Makro aus:

    • Drücke F5 oder wähle Ausführen.

Dieser Code ermittelt die Anzahl der Spalten in der ersten Zeile und zeigt sie in einer Nachricht an.


Häufige Fehler und Lösungen

  • Fehler: "Typ nicht definiert"
    Lösung: Stelle sicher, dass du die Variablen korrekt deklariert hast, z.B. Dim spaltenCount As Long.

  • Fehler: Falsche Zeile verwendet
    Lösung: Vergewissere dich, dass du die richtige Zeile angibst (in diesem Fall 1 für die erste Zeile).

  • Problem mit der ComboBox
    Wenn du Schwierigkeiten hast, die Werte der ComboBox zu sortieren, überprüfe, ob die Spaltennummer korrekt ermittelt wird, bevor du sie in der Key1-Anweisung verwendest.


Alternative Methoden

Eine alternative Methode zur Ermittlung der Spaltenanzahl ist die Verwendung der Excel-Funktion COUNTA. Diese Funktion zählt die nicht-leeren Zellen in einem Bereich und kann so angepasst werden, um die Spaltenanzahl zu ermitteln:

=COUNTA(A1:Z1)

Diese Formel zählt die nicht-leeren Zellen in der ersten Zeile von A bis Z.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die ermittelte Spaltenanzahl nutzen kannst:

  1. Werte in eine ComboBox einlesen:

    Dim i As Long
    For i = 1 To spaltenCount
       cbxSpalte.AddItem Cells(1, i).Value
    Next i
  2. Tabelle nach einer Spalte sortieren: Angenommen, du möchtest die Tabelle nach der zweiten Spalte sortieren, kannst du den folgenden Code verwenden:

    Dim spn As Long
    spn = 2 ' Beispiel für Spalte B
    ActiveSheet.Sort.SortFields.Clear
    ActiveSheet.Sort.SortFields.Add Key:=Range(Cells(2, spn), Cells(Rows.Count, spn)), _
       SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

Tipps für Profis

  • Verwende dynamische Bereiche: Wenn du mit großen Datenmengen arbeitest, kannst du dynamische Bereiche in VBA definieren, um die Leistung zu optimieren.

  • Nutze Error-Handling: Implementiere Error-Handling in deinem VBA-Code, um unerwartete Fehler zu vermeiden. Zum Beispiel:

    On Error Resume Next
  • Verwende Named Ranges: Um den Code lesbarer zu machen, kannst du benannte Bereiche in Excel verwenden, anstatt Zellen direkt anzusprechen.


FAQ: Häufige Fragen

1. Wie kann ich die Spaltenanzahl in Excel ohne VBA ermitteln?
Du kannst die Funktion COUNTA verwenden, um die Anzahl der nicht-leeren Zellen in einer bestimmten Zeile zu zählen.

2. Was mache ich, wenn ich die Spaltenanzahl in einer anderen Zeile ermitteln möchte?
Ändere einfach die Zeilennummer in deinem VBA-Code oder in der Excel-Formel, um die gewünschte Zeile anzugeben.

3. Gibt es eine Möglichkeit, die Spaltenbezeichnungen wie "A1", "B1" in VBA zu erhalten?
Ja, du kannst die Funktion Cells nutzen, um auf die Zellen zuzugreifen, und dann die Address-Methode verwenden:

Dim spaltenName As String
spaltenName = Cells(1, 2).Address(False, False) ' Gibt "B1" zurück

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige