Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Probleme mit UsedRows.Count





Frage

Hallo, ich habe ein eigenartiges Problem, wo ich alleine nicht mehr weiterkomme. Ich mache in meinem XLS Prüfungen und die Ergebnisse schreibe ich in ein Tabellenblatt namens LOG. Jede neue "LogInfirmation" soll ganz einfach in eine neue Zeile geschrieben werden, die letze benutze Zeile des Sheets soll ja eigentlich über UsedRows.Count verfügbar sein. Dazu habe ich folgendes Sub: Private Sub LogInfo(wsLog As Worksheet, _ ByVal strComment As String, _ Optional ByVal strC1 As String = "", _ Optional ByVal strC2 As String = "", _ Optional ByVal strC3 As String = "") Dim i As Long i = wsLog.UsedRange.Rows.Count + 1 wsLog.Cells(i, 1).Value = strComment wsLog.Cells(i, 2).Value = "'" + strC1 wsLog.Cells(i, 3).Value = "'" + strC2 wsLog.Cells(i, 4).Value = "'" + strC3 end sub Nur verändert Excel nicht den wsLog.UsedRange.Count und daher übershreibe ich mir immer meine Daten. Wer kann mir helfen? Habe ich ein Verständnisproblem? Bin um jede Info froh! Danke, user3

Antwort 1 von coros

Hallo User3,

die Eigenschaft, die Du da benutzt, also UsedRange, ist für Dein Vorhaben wohl eher ungeeignet. Diese Eigenschaft gibt zurück, wieviele Zeilen/ Zellen verwendet werden. Wenn in Deinem Bereich nur eine Zelle/ Zeile leer ist, wird die Zahl sich um die Zahl 1 verringern. Nim lieber den Befehl

Range("A65536").End(xlUp).Offset(1, 0).Row


Der ermittelt Dir die erste freie Zeile in Spalte A. Du musst eventuell eine andere Spalte benutzen.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von user3

Hallo Oliver,

danke für die schnelle Antwort. Funktioniert toll!

Das von mir verwendete SUB habe ich auch so ähnlich in einem anderen XLS im Einsatz, wo von EXCEL der UsedRows.Count hochgezäht wird, sobald was in die Ziele reingeschrieben wird (sehe ich im Debugger).
Wie erklärt sich das, daß es dort funktioniert?

Antwort 3 von coros

Hallo User3,

es befinden sich keine freien Zellen/ Zeilen in Deiner Aufzählung in der von Dir beschriebenen Datei, bzw. in Zeile 1 steht etwas und in der anderen nicht.
Trage einfach mal in Zelle A3, A4 und A5 etwas ein. Führe dann mal nachfolgendes Makro aus.

Option Explicit

Sub Test()
MsgBox ActiveSheet.UsedRange.Rows.Count
End Sub


Du erhälst den Wert 3. Trägst Du nun in Zelle A1 etwas ein, wird Dir die letzte Zeile, also in diesem Beispiel der Wert 4 zurückgegeben. Ich hoffe, Du verstehst, was ich damit meine.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von user3

Hallo Oliver,

vielen Dank für die Antwort, jetzt ist es klarer.
Sorry, dass die Antwort verspätet kommt.

Danke, Angelika

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: