Clever-Excel-Forum

Normale Version: Ermittlung der Tabellenlänge
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Guten Abend zusammen,

ich würde gerne auf Betätigung einer Schaltfläche die Größe einer Dynamischen Tabelle ermitteln und dann drei spalten davon auf Inhalt überprüfen.

Leider ist Vba für mich ziemliches neuland, ich würde mich über Hilfestellungen freuen.

Vielen Dank
Hallo,

kennst du den Taxifahrer Witz, wenn ein Gast einsteigt und sagt:  "fahre mich bitte ganz schnell irgendwo hin" 
und auf seine Rückfrage "wohin bitte" die Antwort:  "das ist völlig egal, einfach irgendwo hin, aber schnell bitte!"

Man kann ein Makro programmieren, aber dazu brauchen wir konkrete Angaben welche Tabelle (den Namen), welche Spalten, wie viel Zeilen können es ca. sein. Ohne jede Angaben ist das nicht machbar, reines Ratspiel.

Ebenso brauchen wir konkrete Angaben welche Inhalte geprüft werden sollen, ob ganzer Text/Zahl, oder Teilstring?
Müssen in mehreren Spalten Werte geprüft werden die zusammen gehören oder verknüpft werden müssen??
Ohne konkrete Angaben wird kein Ratgeber an den Thread heran gehen. 

mfg  Gast 123
Hallöchen,

die Größe der Tabelle --> Adresse kannst Du so ermitteln
MsgBox ActiveSheet.ListObjects("Tabelle1").Range.Address
und den Inhalte einer Spalte --Anzahl (Anzahl2) Einträge so:
MsgBox Application.Evaluate("SUBTOTAL(3,Tabelle1[Berta])")
Hallo und danke für die Antworten,

die anzahl der Zeilen kann Variieren, die anzahl der Spalten beträgt momentan 5.

Es geht ganz grob darum das über die Excel Tabelle eine Steuerung Konfiguriert werden soll.

Es wird später bei Druck auf einen Button eine Datei erstellt in der die Einträge in einem gewissen Format gespeichert werden soll, aber das tut hier nichts zur Sache, 
das worum es mir hier geht ist das ich vor der Umwandlung überprüfen muss wie viele Einträge in der Tabelle stehen und ich muss sicher sein das in jeder Zeile bestimmte Spalten einen Inhalt haben.  

Die Tabelle heißt "Daten", und die Spalten 1, 4 und 5 dürfen nicht leer sein.

Edit:
Achso, die Spalten die nicht leer sein dürfen enthalten immer Zeichenketten.

Grüße 

Xan553
Sorry, aber was Du schreibst, ist "Laber-Rhabarber".
Einen genutzten Bereich erkennt Excel mittels .Cells(1).CurrentRegion
Bei Leerzeilen oder -Spalten auch mit .UsedRange

Zeige mal die Datei und konkretisiere Deine Wünsche.

Gruß Ralf
Was soll ich denn noch konkretisieren?

es ist eine Tabelle mit 5 Spalten, die anzahl der Zeilen ist variabel, kann von 10 bis 500 alles sein.
Die Spalten 1, 4 und 5 dürfen nicht leer sein, das Format der Strings muss nicht überprüft werden.

Das Script das ich bräuchte soll die Anzahl der Zeilen ausgeben (da hat mir aber schauan schon den entscheidenden Tipp gegeben) und in jeder Zeile die Spalten 1,4 und 5 auf "nicht leer" prüfen.

Edit:

Auf dem Bild sieht man die Tabelle, die Zeilen 4, 5 und 6 sind Fehlerhaft.
Hallöchen,

dann dürfte mein Ansatz ja funktionieren. Musst eben nur bei Bedarf die Tabelle1 und die Berta auswechseln Smile
Ja Bestens sogar, gibt es noch eine Funktion die aus dem Ergebnis von 

MsgBox ActiveSheet.ListObjects("Tabelle1").Range.Address

die anzahl der Zeilen ausgibt oder kann ich das Ergebnis irgendwie zerlegen?
Hallöchen,

Wenn Deine Tabelle in Zeile 1 beginnt, reicht es, die letzte Zahl zu extrahieren. Das geht in etwa so:
'Adresse anhand $ splitten
Zeile = split(ActiveSheet.ListObjects("Tabelle1").Range.Address,"$")
'letzen Arrayeintrag (= Zeilenzahl) ausgeben
Msgbox Zeile(ubound(Zeile))
Hallo,

(19.05.2016, 21:24)Xan553 schrieb: [ -> ]Ja Bestens sogar, gibt es noch eine Funktion die aus dem Ergebnis von 

MsgBox ActiveSheet.ListObjects("Tabelle1").Range.Address

die anzahl der Zeilen ausgibt oder kann ich das Ergebnis irgendwie zerlegen?
MsgBox ActiveSheet.ListObjects("Tabelle1").Range.Rows.Count
Gruß Uwe
Seiten: 1 2