Wie kann ich mittels VBA in einem Spaltenbereich in der x-ten Zelle (zB in der 44. ) einen Wert, ZB 13.5, eintragen? Der Spaltenbereich kann "wandern", deshalb kann nicht eine fixe Zelle angesprochen werden.
Gruß, Peter
Sub Peter2()
Dim lngZ As Long
lngZ = 44
Sheets("Cockpit").Range("ZAbstime").Cells(1).Offset(lngZ - 1) = Now
' oder
With Sheets("Cockpit")
.Cells(.Range("ZAbstime").Row + lngZ - 1, .Range("ZAbstime").Column) = Now
End With
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von ErichOption Explicit
Sub Peter()
Dim lngZ$
lngZ = InputBox("Welche Zeile im Bereich soll benutzt werden", "Index", 48)
If StrPtr(lngZ) = 0 Or lngZ = "" Or Not IsNumeric(lngZ) Then Exit Sub
If Int(lngZ) = 0 Then
If Range("ZAbstime").Cells(lngZ) = "" Then
Range("ZAbstime").Cells(lngZ) = Now
Else
If MsgBox("Die Zielzelle ist NICHT leer!" & vbLf & "Daten überschreiben", vbYesNo, " A c _
h t u n g !") = vbYes Then
Range("ZAbstime").Cells(lngZ) = Now
Else
MsgBox "keine Aktion - Abbruch"
End If
End If
Else
MsgBox "Index ausserhalb des Bereiches" & vbLf & "max. Zeilen im Bereich = [ " & Range(" _
ZAbstime").Cells.Count & " ]", vbInformation, " Error: für Zeile " & lngZ
End If
End Sub
Sub auf.
Z.B. bei Schritt 44
If [ZDet_Time] = "JA" then Call Zeitstempel(44)
Sub Zeitstempel (lngPosition as Long)
Range("ZAbstime").Cells(1).Offset(lngPosition - 1) = Now
End Sub
Somit wird lngPosition immer eine Zahl übergeben
Die Länge des Spaltenbereiches könnte ich noch überprüfen, da unterhalb in der entsprechenden Zeile keine weiteren Einträge stehen, habe ich vorerst darauf verzichtet.
Gruss, Peter