Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
348to352
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
348to352
348to352
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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
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

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige