< návrat zpět

MS Excel


Téma: odpoved cancel rss

Zaslal/a 2.8.2011 15:32

zdravim
potreboval bych poradit s upravou makra.
potrebuju aby po zadání odpovedi Cancel neproběhlo makro report...

Dim i As Long
Dim Vyplneni()

Vyplneni = Array("I8", "I10", "I12", "I14", "I16", "I18", "I20")

'Overeni vyplneni dat
For i = 0 To 7
If Range(Vyplneni(i)) = "" Then
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 ?", vbOKCancel, "Chyba"
If vbYes Then report
Exit Sub

End If
Next i

Zaslat odpověď >

icon #005666
Poki
Jen tak me napadlo, ze by bylo lepsi spis pouzit tlacitka Ano a Ne, kdyz uz se ptame klasickou otazkou (ale to jen tak na okraj 2 )

Je potreba ulozit vysledek msgboxu do promenne.

Zprava = MsgBox("text", vbYesNo, "title")
Select Case Zprava
Case vbNo
Exit Sub
Case vbYes
'nejaky kod
End Select
citovat
#005670
avatar
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 Subcitovat
icon #005671
Poki
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.citovat
#005674
avatar
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 :(citovat
icon #005675
Poki
priloz soubor, takhle se to opravdu neda opravit...citovat
#005677
avatar
posílááám
Příloha: zip5677_anketa-zakaznicky-servis.zip (44kB, staženo 15x)
citovat
#005679
avatar
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!citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse