
Tak jsem to poupravil ale ikdyž vyplním všechny políčka tak mi zzpráva naskočí a at zadám ANO či NE tak makro nenaběhne :(
Dim i As Long
Dim Vyplneni()
Dim zprava
Vyplneni = Array("I8", "I10", "I12", "I14", "I16", "I18", "I20")
zprava = MsgBox("Zapomněla jsi vyplnit oblast s názvem: " & vbNewLine & vbNewLine & _
Range(Vyplneni(i)).Offset(0, -7) & " (na řádku: " & Range(Vyplneni(i)).Row & ")" & vbNewLine & vbNewLine & _
"Chceš to i tak odeslat ?", vbYesNo, "chyba")
For i = 0 To 6
If Range(Vyplneni(i)) < 1 Then
Select Case zprava
Case vbNo
Exit Sub
Case vbYes
'nějaky kod
End Select
End If
Next i
End Sub

tezko rict, takhle bez zdrojovyho souboru - ale tam, jak jsem v kodu doplnil " 'nejaky kod" - tak tam ma byt ten kod, ktery se provede v pripade stiknuti talcitka ANO.

no ten tam mam a ten funguje dobre.zatim jsem zjistil že když tam dam podmínku
If Range(Vyplneni(i)) < 2 Then tak to funguje a když tam dam
If Range(Vyplneni(i)) < 20 Then tak to udělá makro hned 7x ( což je počet hlídaných buněk).
Já měl zato že když nebude žádna z buněk <1 tak se ta zpráva neobjeví ale ona vyskočí vždy :(

priloz soubor, takhle se to opravdu neda opravit...
Roman(3.8.2011 16:03)citovat#005679 
Zkus si vložit místo tvého toto makro:
Sub ODESLAT()
'
' ODESLAT Makro
'
'
Dim i As Integer
Dim Vyplneni()
Dim zprava
For i = 8 To 20 Step 2
If Len(Range("I" & i)) = 0 Then
zprava = MsgBox("Zapomněla jsi vyplnit oblast s názvem: " & vbNewLine & vbNewLine & _
Range("I" & i).Offset(0, -7) & " (na řádku: " & i & ")" & vbNewLine & vbNewLine & _
"Chceš to i tak odeslat ?", vbYesNo, "chyba")
If vbNo = zprava Then Exit Sub
End If
Next i
Sheets("reporty").Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Worksheets("reporty").Cells(3, 1) = Worksheets("Hodnocení").Range("B2")
Worksheets("reporty").Cells(3, 2) = Worksheets("Hodnocení").Range("E3")
Worksheets("reporty").Cells(3, 3) = Worksheets("Hodnocení").Range("E4")
Worksheets("reporty").Cells(3, 4) = Worksheets("Hodnocení").Range("I8")
Worksheets("reporty").Cells(3, 5) = Worksheets("Hodnocení").Range("I10")
Worksheets("reporty").Cells(3, 6) = Worksheets("Hodnocení").Range("I12")
Worksheets("reporty").Cells(3, 7) = Worksheets("Hodnocení").Range("I14")
Worksheets("reporty").Cells(3, 8) = Worksheets("Hodnocení").Range("I16")
Worksheets("reporty").Cells(3, 9) = Worksheets("Hodnocení").Range("I18")
Worksheets("reporty").Cells(3, 10) = Worksheets("Hodnocení").Range("I20")
Sheets("reporty").Range("A3").NumberFormat = "m/d/yyyy"
Sheets("reporty 2").Rows("3:3").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Worksheets("reporty 2").Cells(3, 1) = Worksheets("Hodnocení").Range("B2")
Worksheets("reporty 2").Cells(3, 2) = Worksheets("Hodnocení").Range("E3")
Worksheets("reporty 2").Cells(3, 3) = Worksheets("Hodnocení").Range("E3")
Worksheets("reporty 2").Cells(3, 4) = Worksheets("Hodnocení").Range("D9")
Worksheets("reporty 2").Cells(3, 5) = Worksheets("Hodnocení").Range("D11")
Worksheets("reporty 2").Cells(3, 6) = Worksheets("Hodnocení").Range("D13")
Worksheets("reporty 2").Cells(3, 7) = Worksheets("Hodnocení").Range("D15")
Worksheets("reporty 2").Cells(3, 8) = Worksheets("Hodnocení").Range("D17")
Worksheets("reporty 2").Cells(3, 9) = Worksheets("Hodnocení").Range("D19")
Worksheets("reporty 2").Cells(3, 10) = Worksheets("Hodnocení").Range("B22")
Worksheets("reporty 2").Cells(3, 11) = Worksheets("Hodnocení").Range("A25")
Worksheets("reporty 2").Cells(3, 12) = Worksheets("Hodnocení").Range("A30")
Sheets("reporty 2").Rows("3:3").AutoFit
Sheets("reporty 2").Range("A3").NumberFormat = "m/d/yyyy"
MsgBox "Report odeslán", vbInformation
End Sub
Já bych to ale řešil trochu jinak!