Witajcie mam takie pytanko, siedzę nad tym i siedzę wydaję mi się że to nic strasznego ale nie mam pojęcia już jak to zrobić mianowicie, kolory tej flagi mają być w Proporcji 13 coś takiego:
title
tylko problem jest w tym że moje makro działa tylko i wyłacznie w wypadku gdy liczba wierszy ma określony rozmiar np. 6 (gdy jest mniejszy zaczyna się psuć) również w przypadku gdy dam większy rozmiar ostatni kolor (niebieski) robi się za duży a powinien (z tego co rozumiem) mieć rozmiar błękitnego + zielonego, tak więc nie wiem za bardzo jakie ograniczenie mu dać.

Dim zakres As Range
Dim lw As Integer, lk As Integer
Set zakres = Application.InputBox("Zaznacz obszar", "Flaga", Type:=8)
zakres.Select

lw = zakres.Rows.Count
lk = zakres.Columns.Count

Range(zakres(1, 1), zakres(lw, lk)).Interior.Color = vbCyan
Range(zakres(lw / 6 + 1, 1), zakres(lw / 2, lk)).Interior.Color = vbGreen
Range(zakres(lw / 2 + 1, 1), zakres(lw, lk)).Interior.Color = vbBlue

@Edit
title
nie wiem tez dlaczego taki odstęp się robi ;/
Dokładnie o co chodzi to żeby rysował tylko wielokrotność liczby 6 tzn. jeżeli zaznaczyłem 14 wierszy to ma kolorować tylko 12 (o to chyba chodzi)
Potrzebował bym też makra do usunięcia tej flagi po jej narysowaniu.

Private Sub CommandButton1_Click()
Dim zakres As Range
Dim lw As Integer, lk As Integer
Dim kolor1 As Long, kolor2 As Long, kolor3 As Long
If Application.Dialogs(xlDialogEditColor).Show(40) = True Then


kolor1 = ActiveWorkbook.Colors(40)

End If
If Application.Dialogs(xlDialogEditColor).Show(40) = True Then


kolor2 = ActiveWorkbook.Colors(40)

End If
If Application.Dialogs(xlDialogEditColor).Show(40) = True Then


kolor3 = ActiveWorkbook.Colors(40)

End If
Set zakres = Application.InputBox("Zaznacz obszar", "Flaga", Type:=8)
zakres.Select

lw = zakres.Rows.Count
lk = zakres.Columns.Count
If lw Mod lw <> 6 = 1 Then
For i = 0 To 5 Step 1
Next
lw = lw - i
End If
Range(zakres(1, 1), zakres(lw / 6, lk)).Interior.Color = kolor1
Range(zakres(lw / 6 + 1, 1), zakres(lw / 2, lk)).Interior.Color = kolor2
Range(zakres(lw / 2 + 1, 1), zakres(lw, lk)).Interior.Color = kolor3

End Sub

Private Sub CommandButton2_Click()
Dim kom As Range
Dim lw As Integer, lk As Integer
For Each kom In zakres
lw = zakres.Rows.Count
lk = zakres.Columns.Count
Range(zakres(1, 1), zakres(lw, lk)).Clear
Next
End Sub

@Edit 2

If lw Mod 6 = 1 Then
lw = lw - 1
ElseIf lw Mod 6 = 2 Then lw = lw - 2
ElseIf lw Mod 6 = 3 Then lw = lw - 3
ElseIf lw Mod 6 = 4 Then lw = lw - 4

Tak rozwiązałem problem zaokrąglenia do wielokrotnosci 6 :) nie wiem czy poprawnie ale działa ! (chyba)
Potrzebował bym jeszcze makra które przypisane było by do 2giego commandbuttona i usuwało by poprzednio zaznaczony zakres ( chodzi o usuniecie koloru z zakresu który przed chwilą zaznaczyliśmy)

Jeśli mógłby ktoś pomóc to byłbym wdzięczny !