Sub ConsCopy()
Riad = ActiveCell.Row
Den = Range("I" & Riad).Value
Dalsi:
If Range("A" & Riad) = "" Or Range("H" & Riad) <> "" Then
MsgBox "Nekorektný riadok", vbCritical
Exit Sub
End If
For i = 0 To 6
Range("A" & Riad).Offset(0, i).Copy
MsgBox "Obsah Clipboard-u : " & Range("A" & Riad).Offset(0, i), vbInformation
Next i
Application.CutCopyMode = False
MsgBox "Koniec riadka", vbExclamation
Range("H" & Riad) = "x"
Inkr:
Riad = Riad + 1
Range("A" & Riad).Select
If Range("I" & Riad) = "" Then
MsgBox "Dospel som na koniec databázy", vbInformation
Exit Sub
ElseIf Range("H" & Riad) = "x" Then
GoTo Inkr
ElseIf Range("i" & Riad) = Den Then
GoTo Dalsi
Else: MsgBox "Koniec bloku pre deň " & Den, vbExclamation
Den = Range("I" & Riad)
End If
End Sub
Program ukončí každý spracovávaný riadok oznamom "Koniec riadka" a označí ho "x"-om.
Pokiaľ za x-om ešte nasleduje ten istý deň, pokračuje ďalej v tento deň kopírovaním do Clipboardu, ak nie, oznámi koniec bloku, skočí na najbližší nižší bez-x-ový deň a čaká na opätovné spustenie.
Pokiaľ zostúpi až na koniec (t.j. v stĺpci I už nie je žiadny dátum), skončí činnosť a oznámi koniec databázy.
P.S.
1 Pokiaľ sa pokúsiš spustiť program v riadku s prázdnym obsahom v stĺpci A alebo v stĺpci už označenom "x", dostaneš hlášku o nekorektnom riadku.
2 Nastavil som to podľa toho, aký príklad si uviedol, t.j. v každom riadku sú naplnené stĺpce A až G, t.j. nezisťuje sa, či niektorý riadok nekončí skôr, než na stĺpci G