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

UsedRange zurücksetzen/löschen

Forumthread: UsedRange zurücksetzen/löschen

UsedRange zurücksetzen/löschen
09.12.2003 18:36:50
Christian
Hallo Exelprofis erbitte Hilfe.
Versuche immer wieder neue Werte in die "Schnittzelle" aus letzter Zeile und letzter Spalte zu schreibe (ist auch gut so), allerdings ist der usedrange manchmal kleiner als der vorherige, bedeutet januar hat 31 Tage, Februar nur 28 Tage, will ins gleiche Tabellenblatt schreiben (den januar durch februar überschreiben) allerdings bezieht sich der usedrange dan immer auf die letzte spalte und zeile aus Januar .... wer weiß abhilfe .... Tausend Dank !


Sub Stundensumme()
Dim rng As Range
Dim lngZ As Long
Dim wks1 As Worksheet
Set rng = ActiveSheet.UsedRange
Set wks1 = Worksheets("Kalender")
lngZ = rng.Cells.Count
s = wks1.Range("D372").Value 'liest Stundensumme Januar
rng(lngZ).Offset(2, -1) = "Summe Stunden"
rng(lngZ).Offset(2, 0) = s
rng(lngZ).Offset(2, 0).Activate
End Sub


Gruß
Christian
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
So geht's sicherer ...
09.12.2003 23:01:43
Volker Croll
Hallo Christian,

usedRange nimmt sich ganz woertlich als "benutzte Zelle", denn auch wenn der Inhalt wieder geloescht wurde, benutzt war die Zelle ja schon mal. Richtig wird's nur, wenn Du die schon einmal benutzten Zellen loeschst und die Datei speicherst.

Deshalb ist folgendes sicherer:

Die letzte ausgefuellte Zeile z.B. in der Spalte E (= 5) liefert Dir:
Cells(Rows.Count, 5).End(xlUp).Row

Auch gibt's einen Haken: Diese Art funktioniert nicht, wenn in Zeile 65536 etwas steht. Dann z.B.:

If WorksheetFunction.CountBlank(Rows(65536)) <> 256 Then
LetzteZeile = 65536
Else
LetzteZeile = Cells(Rows.Count, 5).End(xlUp).Row
End If

Gruss Volker

Anzeige
AW: So geht's sicherer ...
09.12.2003 23:11:19
PeterW
Hallo Volker,

ist ein vorsichtiger Einspruch erlaubt? :-)
If WorksheetFunction.CountBlank(Rows(65536)) <> 256 Then
besagt nicht zwangläufig, dass in E65536 etwas steht. Noch sicherer dürfte sein:

If Range("E65536") <> "" Then
LetzteZeile = 65536
Else
LetzteZeile = Cells(Rows.Count, 5).End(xlUp).Row
End If

Gruß
Peter
Anzeige
Richtig, aber es geht um UsedRange ...
10.12.2003 10:50:35
Volker Croll
Hallo Peter,

natuerlich ist fuer das von mir(!) angegebene Beispiel Deine Vorgehensweise korrekter.

Aber die Frage bezog sich auf "UsedRange", nicht auf eine bestimmte Spalte.

Und mit
If WorksheetFunction.CountBlank(Rows(65536)) <> 256 Then
klaert man halt, ob in irgendeiner Spalte in Zeile 65536 etwas steht.

Gruss Volker
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

UsedRange in Excel zurücksetzen und löschen


Schritt-für-Schritt-Anleitung

Um den UsedRange in Excel zurückzusetzen oder zu löschen, folge diesen Schritten:

  1. Zellen leeren: Stelle sicher, dass alle Zellen im Bereich, den du nicht mehr nutzen möchtest, wirklich leer sind. Dazu kannst du die Zellen markieren und die Entfernen-Taste drücken.

  2. Datei speichern: Speichere die Excel-Datei, um die Änderungen am UsedRange zu aktualisieren. Dies ist entscheidend, da Excel den UsedRange beim Speichern neu berechnet.

  3. VBA zur Rücksetzung nutzen: Du kannst auch ein einfaches VBA-Skript verwenden, um den UsedRange zurückzusetzen. Hier ein Beispiel:

    Sub ResetUsedRange()
       Dim ws As Worksheet
       Set ws = ActiveSheet
       ws.UsedRange.Clear
       ws.Cells(1, 1).Select
    End Sub
  4. Wiederholen: Wiederhole diesen Vorgang, wenn du die Daten in einem bestimmten Bereich regelmäßig änderst.


Häufige Fehler und Lösungen

  • Fehler: UsedRange bleibt unverändert
    Lösung: Überprüfe, ob tatsächlich alle Zellen im Bereich gelöscht wurden. Excel betrachtet auch leere Zellen, die einmal verwendet wurden, als Teil des UsedRange.

  • Fehler: Zugriff auf die falsche Zeile oder Spalte
    Lösung: Stelle sicher, dass du die richtige Spalte oder Zeile angibst, wenn du mit Formeln oder VBA arbeitest. Verwende Cells(Rows.Count, Spaltennummer).End(xlUp).Row, um die letzte verwendete Zeile genau zu ermitteln.


Alternative Methoden

  1. Manuelles Löschen: Du kannst den Bereich manuell löschen und die Datei speichern, um den UsedRange zurückzusetzen.

  2. Verwendung von Formeln: Anstelle von VBA kannst du auch Excel-Formeln verwenden, um auf die letzte Zeile oder Spalte zuzugreifen, z.B. mit =MAX(WENN(A:A<>"",ZEILE(A:A))).

  3. Excel-Optionen anpassen: In einigen Excel-Versionen kannst du die Option "Zellenformatierung zurücksetzen" verwenden, um den UsedRange zu bereinigen.


Praktische Beispiele

  • Beispiel 1: Wenn du einen Monatskalender pflegst, kannst du den UsedRange für den Februar zurücksetzen, indem du die Zellen des Januars leer machst, die Datei speicherst und dann neue Werte einfügst.

  • Beispiel 2: Verwende das folgende VBA-Skript, um die letzte ausgefüllte Zeile in einer bestimmten Spalte zu finden:

    Sub LetzteZeile()
       Dim LetzteZeile As Long
       LetzteZeile = Cells(Rows.Count, 5).End(xlUp).Row
       MsgBox "Die letzte Zeile in Spalte E ist: " & LetzteZeile
    End Sub

Tipps für Profis

  • Regelmäßiges Speichern: Speichere deine Datei regelmäßig, um den UsedRange zu aktualisieren, besonders nach größeren Datenänderungen.

  • VBA optimieren: Nutze VBA, um den UsedRange effizient zurückzusetzen. Dies kann besonders nützlich sein, wenn du häufig mit dynamischen Daten arbeitest.

  • Überprüfung der Daten: Bevor du den UsedRange zurücksetzt, überprüfe stets die Datenintegrität, um versehentliches Löschen wertvoller Informationen zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich den UsedRange in Excel zurücksetzen?
Du kannst den UsedRange zurücksetzen, indem du die Zellen, die du nicht mehr benötigst, leerst und die Datei speicherst oder ein VBA-Skript verwendest, um den Bereich zu bereinigen.

2. Warum bleibt der UsedRange manchmal unverändert?
Der UsedRange bleibt unverändert, wenn Excel Zellen als verwendet betrachtet, auch wenn sie leer sind. Stelle sicher, dass alle relevanten Zellen gelöscht sind und speichere die Datei.

3. Gibt es eine Möglichkeit, den UsedRange nur für bestimmte Spalten zurückzusetzen?
Ja, du kannst VBA verwenden, um nur die gewünschten Spalten zu beeinflussen, indem du spezifische Zellbereiche angibst.

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