Zobrazení poslední
Napsal: 01 srp 2022 19:17
Povedlo se mi aby se mi vždy zobrazil čas provedené poslední změny ve sloupci 3 do pole G2. Potřeboval bych vyplnit ještě pole G3
Zapeklitá věc. Díky
Kód: Vybrat vše
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zmena As Range, Are As Range, Bunka As Range
Set Zmena = Intersect(Columns(3).Resize(Rows.Count - 1).Offset(1, 0), Target)
If Not Zmena Is Nothing Then
For Each Are In Zmena.Areas
For Each Bunka In Are.Cells
If Bunka.Value = 1 Then
Application.EnableEvents = False
Cells(2, 7).Resize(2).Value = Application.Transpose(Array(Format$(Now, "dd/mm/yyyy hh:nn:ss"), Bunka.Offset(0, -1).Value))
Application.EnableEvents = True
Exit Sub
End If
Next Bunka
Next Are
End If
End Sub
Kód: Vybrat vše
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zmena As Range, Are As Range, Bunka As Range, RNG1 As Range, RNG As Range, Cas As Date
Set Zmena = Intersect(Columns(3).Resize(Rows.Count - 1).Offset(1, 0), Target)
If Not Zmena Is Nothing Then
Cas = Now()
For Each Are In Zmena.Areas
For Each Bunka In Are.Cells
If Bunka.Value = 1 Then
If RNG1 Is Nothing Then Set RNG1 = Bunka.Offset(0, 1) Else Set RNG1 = Union(RNG1, Bunka.Offset(0, 1))
Else
If RNG Is Nothing Then Set RNG = Bunka.Offset(0, 1) Else Set RNG = Union(RNG, Bunka.Offset(0, 1))
End If
Next Bunka
Next Are
Application.EnableEvents = False
If Not RNG1 Is Nothing Then RNG1.Value = Cas
If Not RNG Is Nothing Then RNG.ClearContents
Application.EnableEvents = True
End If
End Sub
Kód: Vybrat vše
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zmena As Range, Are As Range, Cas As Date, Vyplnuji(), CasZmeny(), Pocet As Long, i As Long
Set Zmena = Intersect(Columns(3).Resize(Rows.Count - 1).Offset(1, 0), Target)
If Not Zmena Is Nothing Then
Cas = Now()
For Each Are In Zmena.Areas
Pocet = Are.Cells.Count
If Pocet = 1 Then
ReDim Vyplnuji(1 To 1, 1 To 1): Vyplnuji(1, 1) = Are.Value
ReDim CasZmeny(1 To 1, 1 To 1): CasZmeny(1, 1) = Are.Offset(0, 1).Value
Else
Vyplnuji = Are.Value
CasZmeny = Are.Offset(0, 1).Value
End If
For i = 1 To Pocet
CasZmeny(i, 1) = IIf(Vyplnuji(i, 1) = 1, Cas, Empty)
Next i
Application.EnableEvents = False
Are.Offset(0, 1).Value = CasZmeny
Application.EnableEvents = True
Next Are
End If
End Sub
Kód: Vybrat vše
=INDEX(Sestava!N2:N10005;MATCH(MAX(Sestava!R2:R10005);Sestava!R2:R10005;0))
=INDEX(Sestava!N2:N10005;POZVYHLEDAT(MAX(Sestava!R2:R10005);Sestava!R2:R10005;0))
Kód: Vybrat vše
Sub Oznam()
Dim Zaznam As String, Cas As Date
On Error Resume Next
With Worksheets("Sestava")
Cas = WorksheetFunction.Max(.Range("R2:R10005"))
Zaznam = CStr(.Cells(1 + WorksheetFunction.Match(CDbl(Cas), .Range("R2:R10005").Value2, 0), "N").Value)
End With
MsgBox IIf(Err.Number = 0, "Poslední záznam :" & vbNewLine & vbNewLine & "Čas" & vbTab & Format(Cas, "d.m.yyyy hh:nn:ss") & vbNewLine & "Záznam" & vbTab & Zaznam, "Žádný záznam")
On Error GoTo 0
End Sub