Hogyan kell ilyen excel makrót írni?
Mindig az aktuális időt írja be? Vagy például 15 percet mindig hozzáadjon az utolsóhóz?
Aktuális idő:
Dim UtolsoCella As Range
Set UtolsoCella = Worksheets("Munka1").Cells(Worksheets("Munka1").Rows.Count, "A").End(xlUp)
Cells(UtolsoCella.Row + 1, 1) = Format(Now, "hh.mm")
15 perc növelés:
Dim UtolsoCella As Range
Set UtolsoCella = Worksheets("Munka1").Cells(Worksheets("Munka1").Rows.Count, "A").End(xlUp)
Cells(UtolsoCella.Row + 1, 1) = Format(DateAdd("n", 15, Format(UtolsoCella.Value, "hh:mm")), "hh:mm")
Makrók rögzítése + if,for, do until/while egyveleggel sok minden megoldható, nulla hozzáértéssel, így csináltam én.
Gondolat menet:
Bekapcsoltam a makró rögzítést, leformáztam az első oszlopot, hogy megfelelő formátumban legyen majd, megnéztem melyik függvény adja vissza a mai dátumot, aztán lementettem a makrót. Kitöröltem ami nem kellett belőle és megvolt amihez már csak ciklusok kellettek.
Egy ciklussal megnéztem az A oszlopban hányadik sor üres, ehhez hozzáadtam egyet.
Egy másik ciklussal az első sorban kiírja a mostani időt, ha nem üres akkor pedig mindig az előzőhöz hozzáad 15 percet (szintén makró rögzítésből vettem ki).
Problémám csak annyi volt, hogy a most függvényt rakja vissza, akkor ha valamit ír az ember mindig frissíti az időt, ezért visszahívtam a cella értékét, hogy fix legyen azaz idő.
Sub Makró4()
i = 1
Do Until Cells(i, 1) = ""
i = i + 1
Loop
If Cells(1, 1) = "" Then
Range("A:A").NumberFormat = "h:mm;@"
Cells(1, 1) = "=NOW()"
Cells(1, 1) = Cells(1, 1)
Else: Cells(i, 1) = "=R[-1]C+TIME(0,15,0)"
End If
End Sub
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!