Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ende einer Tabelle festlegen

Forumthread: Ende einer Tabelle festlegen

Ende einer Tabelle festlegen
07.07.2003 11:13:12
Michael
Guten Tag,
ich habe ein kleines Problem. Ich lösche eine Tabelle mit
Range("a2:c100").ClearContents. Danach wir die Tabelle per Code mit Daten aus einem anderen Blatt gefüllt, aber jedesmal mit einer anderen Anzahl von Zeilen.
Das Ende der Tabelle liegt aber dann immer bei Zeile 100 (STRG-Ende). Da die Daten von diesem Blatt aber in ein Datenbankprogramm importiert werden, werden immer zu viele Zeilen importiert (immer bis 100) obwohl nur 29 Datensätze Werte erhalten. Mit welchem Befehl kann ich das Ende auf die letzte ausgefüllte Zeile sezten (die Zeilennr ist ein hochgezählter Wert, also bekannt.
Danke schon mal für die Hilfe
Gruß
Michael
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Ende einer Tabelle festlegen
07.07.2003 13:07:28
Daniel P
Hallo Michael,
Excel merkt sich irgendwie, welche Zellen mal benutzt waren, und springt immer wieder nach unten. Versuche es mal mit CurrentRegion.
Range("A1").CurrentRegion gibt den zusammenhängenden Bereich um A1 herum zurück. Wenn Du mit Offset und Resize ein bisschen spielst, kommst Du auf die unterste, gefüllte Zelle:
set oRng=Range("A1")
set oRng=oRng.CurrenRegion
set oRng=oRng.Resize(,1)
set oRng=oRng.Offset(oRng.Rows.Count-1)
Daniel

Anzeige
AW: Ende einer Tabelle festlegen
07.07.2003 11:24:48
WernerB.
Hallo Michael,
so kannst Du die die Zeilennummer der letzten Zelle mit Inhalt in der Spalte "A" ermitteln:
MsgBox Cells(Rows.Count, 1).End(xlUp).Row
Viel Erfolg wünscht
WernerB.

AW: Ende einer Tabelle festlegen
07.07.2003 12:17:13
Michael
Das hilft nicht! Ich weiß wo das Ende ist, ich WILL es festlegen!!!!.
Mit "STRG-ENDE" springt Excel zu einer bestimmen Zelle. Aber ich weiß nicht wie diese Zeile zu stande kommt. Ich habe z.B. 26 Zeilen in der Tabelle aber mit "STRG-ENDE" springt er immer in zeile 29. Das muss irgendwas mit dem ClearContenst bzw. Clear zu tun haben. Kann ich denn mit "Cells(Rows.Count, 1).End(xlUp).Row"
auch das Ende der Tabelle festlegen. Das ist wichtig, weil die Datenbank immer bis zu dem mit "STRG-ENDE" angezeigten Ende die Daten improtiert. D. H. es werden viele leere Datensätze mit Importiert.


Anzeige
AW: Ende einer Tabelle festlegen
08.07.2003 20:29:45
WernerB.
Hallo Michael,
das nachstehende Makro ermittelt selbsttätig das Ende der Tabelle und kopiert die Werte in die "Tabelle2". Vielleicht gibt es Dir ja einen Denkanstoß.
Wenn Du aber unbedingt mit "STRG-ENDE" arbeiten willst, solltest Du nach dem Löschen der unteren Werte die Datei speichern; danach funktioniert "STRG-ENDE" wieder in Deinem Sinne.

Sub Michael()
Dim laR As Long
laR = Cells(Rows.Count, 1).End(xlUp).Row
Range("A2:C" & laR).Copy
Sheets("Tabelle2").Range("A2").PasteSpecial Paste:=xlValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End Sub

Viel Erfolg wünscht
WernerB.

Anzeige
AW: Ende einer Tabelle festlegen
07.07.2003 11:20:34
Thomas Scher
Hallo Michael,versuche es mal damit! MUst du nur auf deine Zelle wo der erste Wert drin steht ändern ..
Range("A2").Select 'markiert alle daten in den Zellen
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Dann nur noch den letzten Wert in der DB suchen und dahin kopieren..das sieht dann ungefähr so aus !
Sheets("??").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
gruss
Thomas

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Ende einer Tabelle festlegen in Excel


Schritt-für-Schritt-Anleitung

  1. Daten löschen: Wenn du eine Tabelle mit Range("A2:C100").ClearContents leerst, merkt sich Excel manchmal die letzten benutzten Zellen. Um das Ende der Tabelle korrekt festzulegen, kannst du den Bereich dynamisch anpassen.

  2. Letzte Zeile ermitteln: Verwende den folgenden Befehl, um die letzte Zeile mit Daten zu ermitteln:

    laR = Cells(Rows.Count, 1).End(xlUp).Row
  3. Ende der Tabelle anpassen: Um das Ende der Tabelle zu definieren, kannst du den ermittelten Wert nutzen, um deinen Bereich zu kopieren oder weitere Daten hinzuzufügen.

  4. Makro erstellen: Du kannst ein Makro wie folgt erstellen, um die letzten Werte in eine andere Tabelle zu kopieren:

    Sub TabelleKopieren()
       Dim laR As Long
       laR = Cells(Rows.Count, 1).End(xlUp).Row
       Range("A2:C" & laR).Copy
       Sheets("Tabelle2").Range("A2").PasteSpecial Paste:=xlValues
       Application.CutCopyMode = False
    End Sub

Häufige Fehler und Lösungen

  • STRG-ENDE springt zu weit: Wenn STRG-ENDE immer zu einer bestimmten Zeile springt, die nicht mit deinen Daten übereinstimmt, kann das an nicht sichtbaren Inhalten oder formatierten Zellen in deiner Tabelle liegen. Überprüfe, ob es leere Zellen oder Formatierungen gibt, die Excel als "genutzt" betrachtet.

  • Letzte Zeile nicht korrekt ermittelt: Stelle sicher, dass du die richtige Spalte angibst, wenn du die letzte Zeile ermittelst. Verwende Cells(Rows.Count, <Spalte>).End(xlUp).Row, wobei <Spalte> die entsprechende Spalte ist.


Alternative Methoden

  1. CurrentRegion verwenden: Mit Range("A1").CurrentRegion kannst du den zusammenhängenden Bereich um eine Zelle ermitteln. Damit kannst du schnell das Ende der Tabelle festlegen.

  2. Offset und Resize: Kombiniere Offset und Resize, um den Bereich der letzten Zeile und Spalte dynamisch zu definieren.

  3. Direktes Kopieren: Wenn du nur den Bereich kopieren möchtest, kannst du auch direkt mit:

    Range("A2").Select
    Range(Selection, Selection.End(xlDown)).Select

    arbeiten, um die Daten zu markieren, bevor du kopierst.


Praktische Beispiele

  • Wenn du Range("A1").CurrentRegion verwendest, um den Bereich zu ermitteln, kannst du nachfolgend den Bereich anpassen und kopieren:

    Set oRng = Range("A1").CurrentRegion
    oRng.Copy Destination:=Sheets("Tabelle2").Range("A1")
  • Bei Verwendung von Offset und Resize:

    Set oRng = Range("A1").CurrentRegion
    Set oRng = oRng.Resize(, 1).Offset(oRng.Rows.Count - 1)

Tipps für Profis

  • Regelmäßiges Speichern: Speichere deine Datei nach dem Löschen von Inhalten. Das hilft Excel, das STRG-ENDE Verhalten zu korrigieren.

  • Zellenformatierung überprüfen: Manchmal kann das Format einer Zelle dazu führen, dass Excel denkt, sie sei belegt. Überprüfe die Zellen auf unerwünschte Formatierungen oder Inhalte.

  • Makros optimieren: Stelle sicher, dass dein Makro effizient ist, indem du unnötige Berechnungen vermeidest und nur die benötigten Bereiche bearbeitest.


FAQ: Häufige Fragen

1. Wie kann ich das Ende meiner Tabelle dauerhaft festlegen?
Um das Ende der Tabelle festzulegen, nutze VBA, um die letzte Zeile zu ermitteln und den Bereich manuell zu definieren.

2. Warum springt STRG-ENDE nicht zur richtigen Zeile?
Das liegt häufig daran, dass Excel Zellen als "benutzt" merkt. Überprüfe den Bereich auf leere oder unsichtbare Inhalte, die das Verhalten beeinflussen.

3. Was ist der Unterschied zwischen ClearContents und Clear?
ClearContents löscht nur die Inhalte der Zellen, während Clear auch die Formatierungen entfernt. Dies kann das Verhalten von STRG-ENDE beeinflussen.

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