Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1108to1112
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

Variable Rahmengestaltung und zählen

Variable Rahmengestaltung und zählen
Kälberer
Hallo zusammen,
mein erster Eintrag, deshalb hoffe ich, dass ich mein Problem so beschreiben kann, dass ihr auch was damit anfangen könnt.
Ich mache von einem Messgerät einen Datenimport auf einen Laptop und lasse eine .csv Datei erstellen. Diese Datei ehntählt sehr viele Spalten die ich nicht benötige. Hierfür habe ich ein Makro erstellt.
Mein Problem ist, dass die Anzahl der Zeilen die importiert werden von Messung zu Messung unterschiedlich ist. Wie bekomme ich es hin, dass in Spalte A fortlaufend gezählt wird, aber nur soweit, wie auch tatsächlich Werte in den anderen Spalten stehen? Also bei 90 Zeilen soll nur bis 90 gezählt werden, bei 50 nur bis 50, etc.
Gleichzeitig soll ein fetter Rahmen um die gesamte Tabelle (Anzahl Spalten ist immer 10) gezogen werden und Gitternetzlinien innerhalb der Tabelle entstehen.
Alles muss so variabel gestaltet sein, dasss Excel automatisch erkennt, wieviele Spalten vorhanden sind und dann entsprechend reagiert.
Ich hoffe die Problembeschreibung passt soweit und dass mir jemand helfen kann.
Vielen Dank schon im Voraus.
Michael

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Variable Rahmengestaltung und zählen
23.10.2009 10:41:02
Björn
Hallo,
zuerst mal willkommen im Forum :-)
Fragestellung ist für den Anfang gar nicht schlecht, da haben wir schon schlimmeres gesehen ;-)
Ne, im Ernst, die meisten Fragen sind so gestellt, dass nicht alles auf Anhieb beantwortet werden kann, ist aber auch nicht schlimm.
So, nun zu Deinem Problem. Du schreibst, das es immer 10 Spalten sind, aber Excel soll automatisch erkennen, wieviele Spalten vorhanden sind? Warum?
Das mit den Zeilen kannst Du auf 2 Arten lösen.
Du kannst Dir über den Befehl Cells(Rowindex,Columnindex) einen Bezug variabel erstellen.
Beispiel, beim Makrorekorder werden deine Bezüge fest übernommen, z. B. für B4 steht dann Range("B4"). Mit Cells kannst du über Zeilen- und Spaltennummer addressieren, würde dann für B4 so aussehen Cells(4,2).
Vorteil ist hierbei, dass du statt der Zahlen auch Variablen einsetzen kannst, die dann z.B. einfach hochgezählt werden.
1. Weg wäre die letzte befüllte Zeile ermitteln.
Dazu verwende mal wieder den Makrorekorder und Klicke auf irgendeine befüllte Zelle in Spalte a.
Rekorder starten, Strg+Richtungstaste (Pfeil) unten drücken. Rekorder beenden.
Durch Steuerung + Pfeiltaste springt Excel immer auf die letzte befüllte Zelle in der angegeben Richtung.
Nun ist die letzte Zeile markiert und Du kannst dir die Zeile in eine Variable auslesen.
Dim letzteZeile as integer
letzteZeile = Selection.Row
Nun kannst Du mit einer Schleife die Zellen in spalte A bis zur letzten durchgehen:
Dim i As Integer  'Variable für Zähler
For i = 1 To letzteZeile     'Evtl. Startzeile anpassen, wenn noch überschriften da sind
Cells(i, 1).Value = ...     'nur beispielhaft. Du hast ja Dein Makro schon...
Next
Zweite Lösung wäre etwas unschöner, ich sag es dir aber trotzdem.
Du kannst jede Zelle in A prüfen, ob was drin steht und nur dann was ausführen.
Entweder über for each oder einfach mit einer If-Schleife.
Bei dem Rahmen ist ja auch nur die Adresse das Problem gewesen (Code für Rahmen bekommst du wieder über Rekorder).
Die Adresse hast Du ja jetzt. erste Zeile und Spalte sind bekannt, ich gehe mal von A1 aus.
Letzte Spalte ist J (Spaltennummer 10), letzte Zeile haben wir oben ermittelt.
Deine Addressierung für die ganze Tabelle wäre dann:
Range(Cells(1,1),Cells(letzteZeile,10))

Hoffe, das hat Dir geholfen.
Gruß
Björn B.
Anzeige
AW: Variable Rahmengestaltung und zählen
24.10.2009 09:45:34
Kälberer
Hallo Bjorn,
sorry für die späte Antwort, aber dein Vorschlag hat super funnktioniert. Die Umsetzung war mit deiner Anleitung kein Problem mehr.
Vielen Dank!
Gruß
Michael
Tip @Björn : Zeilenvariable NIE INTEGER !
24.10.2009 10:06:44
NoNet
Hallo Björn,
schöne Erklärung von Dir, aber einen Korrekturvorschlag kann ich Dir nur dringend empfehlen :
Verwende für ZEILEN-Variablen NIE den Typ INTEGER, da dieser nur bis 32767 reicht, ein Tabellenblatt aber bereits in Excel 97 doppelt so viele Zeilen (65536) beinhaltet. Das kann dann auch mal schnell "in die Hose" gehen - siehe jüngstes Beispiel hier im Forum :
https://www.herber.de/forum/messages/1111724.html
Deklariere Zeilenvariablen daher besser von vornherein vom Typ LONG - damit ist man zumindest bis Excel 2010 auf der sicheren Seite.
Gruß, NoNet
Anzeige
Daran hab ich nicht gedacht....
24.10.2009 14:01:13
Björn
Hallo NoNet,
Danke für den Hinweis, Dein Korrekturvorschlag kann Gold wert sein.
In meinem Fall kommt sowas aber nie vor. Ich habe ein Kalkulationsprogramm geschrieben, dass auf 200 Zeilen begrenzt ist, auch sonst kommt so eine Menge an Daten bei uns nie in Excel an.
Dafür haben wir ein ERP-System.
Da bei Michael die Rede von 50 oder auch mal 90 Zeilen war, denke ich, dass dort mit Integer noch etwas Luft ist.
Wie gesagt, da es bei mir nie vorkommt, werde ich das weiterhin so machen, denke aber bei meinen Antworten meist nicht dran, dass es bei anderen durchaus mal vorkommen kann, so viele Datensätze zu haben.
Daher Danke für den Hinweis.
Gruß
Björn
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige