Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Ermittlung der Tabellenlänge
#1
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
Antworten Top
#2
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
Antworten Top
#3
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])")
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#4
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
Antworten Top
#5
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#6
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.


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#7
Hallöchen,

dann dürfte mein Ansatz ja funktionieren. Musst eben nur bei Bedarf die Tabelle1 und die Berta auswechseln Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#8
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?
Antworten Top
#9
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))
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#10
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste