Hallo zusammen,
ich habe folgendes Problem:
mein unten aufgeführter Code funktioniert nach der Aktivierung des Makro lediglich für eine Zeile (hier die Zeile 20). Ich würde ihn allerdings auch gerne in der nächsten Zeile verwenden - ich will also den unten stehenden (und funktionsfähigen) Code "vorrollen" in die nächste Zeile. Ich habe es bereits mit einigen Loop Funktionen versucht, scheitere allerdings immer wieder. Habt ihr eine Idee, wie sich der Code am besten "vorrollen" lässt , sodass er dynamisch funktioniert und bei erneuter Ausführung des Makros in die nächste Zeile springt?
Vorab vielen Dank für Eure Antwort!
---
Sub Prüfe()
If ActiveSheet.Range("B20") = "" Then
MsgBox "Please Check Input Data.", vbOKOnly, "Mein Tool"
Else
Call Savepostings
End If
End Sub
Sub sperreZeile()
Dim rng As Range
Set rng = Range("A20:Y20")
'ab Punkt Value
'Hebt Blattschutz auf
ActiveSheet.Unprotect Password:="A"
'Setzt Zellfarbe auf grün (= Zelle gesperrt)
rng.Interior.Color = vbGreen
rng.Locked = True
ActiveSheet.Protect Password:="A", DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
userinterfaceonly:=True
'Aktiviert AutoFilter in Tabellenblatt
ActiveSheet.EnableAutoFilter = True
End Sub
Sub Savepostings()
If Cells(13, 2) = "ERROR" Then
MsgBox "Error - Eingabe Prüfen. Beträge sind lt. Checksumme ungleich", vbOKOnly, "Nachricht"
Else
MsgBox "File Status OK. Die Eingabe hat tatsächlich funktioniert.", vbOKOnly, "Nachricht"
Call uebertragenameundzeit
Call sperreZeile
End If
End Sub
Sub uebertragenameundzeit()
'Verweis auf Tab in Spalte "Y" --> Trägt Name und Uhrzeit ein
Cells(20, 24) = printUserName
Cells(20, 25) = printTimeStamp
End Sub
Function printUserName() As String
'Gibt bzw. "Druckt"den Application.UserName aus
printUserName = Application.UserName
End Function
Function printTimeStamp() As String
'Definiert Zeitstempel als aktuelle Uhrzeit
printTimeStamp = Now()
End Function
|