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

Makrofrage zur letzten benutzten Zeile

Makrofrage zur letzten benutzten Zeile
WalterK
Hallo,
mit dem folgenden Code werden im Blatt Auswertung die Formeln von "A2:F2" im selben Blatt in den Bereich "A3:bis zur letzten benutzten Zelle der Tabelle1" kopiert und dann in Werte umgewandelt. Im Code steht für die "letzte benutzte Zelle der Tabelle1" der Begriff "LzT1".
Jetzt hätte ich aber gern, dass aus den 4 Blättern Tabelle1, Tabelle2, Tabelle3 und Tabelle4 die maximale Zeilenzahl der letzten benutzten Zeile ermittelt wird und dafür der Begriff "LzTMax" festgelegt wird.
Im Blatt Auswertung könnte ich dann zum kopieren und Werte einfügen anstatt "LzT1" den Begriff "LzTMax" verwenden.
Hier ist mein Code:
Option Explicit
Sub Auswertung()
Dim LzA1 As Long
Dim LzT1 As Long
Dim LzT2 As Long
Dim LzT3 As Long
Dim LzT4 As Long
With Sheets("Auswertung")
'      .Unprotect
LzA1 = Application.Max(3, .Cells(.Rows.Count, 1).End(xlUp).Row)
LzT1 = Sheets("Tabelle1").Cells.SpecialCells(xlCellTypeLastCell).Row
LzT2 = Sheets("Tabelle2").Cells.SpecialCells(xlCellTypeLastCell).Row
LzT3 = Sheets("Tabelle3").Cells.SpecialCells(xlCellTypeLastCell).Row
LzT4 = Sheets("Tabelle4").Cells.SpecialCells(xlCellTypeLastCell).Row
Application.ScreenUpdating = False
.Range(.Cells(3, 1), .Cells(LzA1, 6)).ClearContents
.Range(.Cells(2, 1), Cells(2, 6)).Copy .Range(.Cells(3, 1), Cells(LzT1, 6))
.Range(.Cells(3, 1), Cells(LzT1, 6)).Formula = .Range(.Cells(3, 1), Cells(LzT1, 6)).Value
Range("A1").Select
Application.ScreenUpdating = True
'      .Protect
End With
End Sub
Besten Dank für die Hilfe, Servus Walter
AW: Makrofrage zur letzten benutzten Zeile
15.04.2011 21:09:21
windalf
Suchst du nach der Eigenschaft UsedRange?
Gruß Windi
AW: Makrofrage zur letzten benutzten Zeile
15.04.2011 21:19:04
WalterK
Hallo Windi,
ich weiß nicht nach was ich suchen muss. Ich habe keinen Schimmer von VBA und habe den Code aus mehreren Codes zusammen gebastelt.
Wenn es eine Lösung für mein Anliegen gibt, bitte ich darum, diese in meinen Code einzubauen damit ich den Code wieder 1:1 übernehmen kann.
Danke und Servus, Walter
AW: Makrofrage zur letzten benutzten Zeile
15.04.2011 22:34:14
Rudi
Hallo,
lztmax=application.max(lzt1,lzt2,lzt3,lzt3,lzt4)
Gruß
Rudi
AW: Makrofrage zur letzten benutzten Zeile
15.04.2011 22:50:05
WalterK
Hallo Rudi,
so habe ich die Codezeile eingefügt, es kommt aber der Fehler: Variable nicht definiert
Was mache ich falsch bzw. muss ich noch berücksichtigen?
Option Explicit
Sub Auswertung()
Dim LzA1 As Long
Dim LzT1 As Long
Dim LzT2 As Long
Dim LzT3 As Long
Dim LzT4 As Long
With Sheets("Auswertung")
'      .Unprotect
LzA1 = Application.Max(3, .Cells(.Rows.Count, 1).End(xlUp).Row)
LzT1 = Sheets("Tabelle1").Cells.SpecialCells(xlCellTypeLastCell).Row
LzT2 = Sheets("Tabelle2").Cells.SpecialCells(xlCellTypeLastCell).Row
LzT3 = Sheets("Tabelle3").Cells.SpecialCells(xlCellTypeLastCell).Row
LzT4 = Sheets("Tabelle4").Cells.SpecialCells(xlCellTypeLastCell).Row
LzTMax = Application.Max(LzT1, LzT2, LzT3, LzT4)
Application.ScreenUpdating = False
.Range(.Cells(3, 1), .Cells(LzA1, 6)).ClearContents
.Range(.Cells(2, 1), Cells(2, 6)).Copy .Range(.Cells(3, 1), Cells(LzTMax, 6))
.Range(.Cells(3, 1), Cells(LzTMax, 6)).Formula = .Range(.Cells(3, 1), Cells(LzTMax, 6)). _
Value
Range("A1").Select
Application.ScreenUpdating = True
'      .Protect
End With
End Sub
Danke und Servus, Walter
Anzeige
AW: Makrofrage zur letzten benutzten Zeile
15.04.2011 22:54:42
Hubert
Hallo
Dim Lztmax As Long
Gruß
Hubert
Danke an alle Helfer, es läuft! Servus, Walter
15.04.2011 23:08:22
WalterK
.
Noch ein Ergänzungsfrage ...
16.04.2011 13:28:15
WalterK
Hallo,
ich habe bemerkt, dass bei den Codezeilen zur Feststellung der letzten benutzten Zeile einmal befüllte und dann wieder geleerte Zellen als "benutzte Zellen" interpretiert werden. Das kann ich aber für meine Zwecke nicht gebrauchen.
Gibt es für die Zeile
"LzT1 = Sheets("Tabelle1").Cells.SpecialCells(xlCellTypeLastCell).Row"
eine Alternative, die die letzte benutzte Zeile ermittelt und allfällige einmal befüllte dann aber geleerte Zellen außer acht lässt?
Danke und Servus, Walter
nicht Cells sondern UsedRange
16.04.2011 17:46:04
Matthias
Hallo Walter
Dim MyRow&
MyRow = UsedRange.SpecialCells(xlCellTypeLastCell).Row
MsgBox MyRow
Gruß Matthias
Anzeige
Danke Matthias, jetzt geht's. Servus, Walter
16.04.2011 17:53:24
WalterK
.

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige