tady to máš.
počet listů jsem bral všechny listy v sešitu.
upravil jsem trochu msgbox, aby byl videt i název listu.
co tohle:
v makru si uprav cestu pro sesit pokus_1
Jako v jiném souboru?
Vba:
Vložit příkaz do "ThisWorkbook"
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheets(1).Range("A1") = Now()
End Sub
kde příklad:
do listu "List1" v buňce "A1" se při ukládání vloží datum a čas.
samotný excel neposleš, musíš nejdřív zabalit (rar,zip,...)
Upravil jsem řádek s "r_max" (vba), aby poslední řádek hledal v celém listu a ne ve sloupci "B".
Tohle by snad melo stačit.
Pokud ne, tak bych navrhoval upravit makro tak, aby se při otevírání zamkly již vyplněné buňky(řádky).
Tím by se předešlo nechtěnému mazaní již uložených dat.
Cyklovat by to šlo taky, ale je otázka či v těch ostatních listech budou povinné sloupce stejné.
Mno jo no, to je tak když někomu vezmeš práci a vpíchneš tam něco svoje
Nevím jak jsem se dostal k tomu, že mám tahat datum z "B7".
Ale naštěstí jsou tady borci, kteří to napraví
mosquito791 napsal/a:
Já vyzkoušel všech 12 měsíců a bez chybyPříloha: 21864_lisdd.zip
Já vyzkoušel všech 12 měsíců a bez chyby
dovolil jsem si do makra od @cmuch1 vložit řadek pro eliminaci pátku . Snad to nebude vadit.
Sub CopyDayMonth()
Dim dtm As Variant
Dim Feb As Byte, Month As Byte, i As Byte
Application.ScreenUpdating = False
Month = Range("B2")
If (Format(Now, "yyyy") / 4) = (Format(Now, "yyyy") \ 4) Then
Feb = 29
Else
Feb = 28
End If
GetMonth = Choose(Month, 31, Feb, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
For i = 2 To GetMonth
dtm = Format(i, "00") & "." & Format(Month, "00") & "." & Format(Range("B7"), "yy")
If Not Weekday(CDate(dtm), vbMonday) = 5 Then '5 se rovná pátek alespon tady v ČR :-D
Sheets(Sheets.Count).Copy After:=Sheets(ThisWorkbook.Sheets.Count)
Sheets(Sheets.Count).Name = dtm
Range("B7").Formula = "=DATE(" & Format(Range("B7"), "yyyy") & ",B2," & i & ")"
Calculate
End If
Next i
Sheets(1).Select
Application.ScreenUpdating = True
End Sub
a co takhle
viz příloha
mno jo ted koukám, že tam není .enabled nebo .visible.
Tak teď nechápu proč je tam
textbox65 = true ,nebo
combobox4 = true
a nestačí jenom "If TextBox65 = "" Then MsgBox .... :Exit Sub"
atd...
asi mám dlouhé vedení
zrušit else
If TextBox65 = True And TextBox65 = "" Then MsgBox "Zadejte rozměr délky a šířky zdi...(Rozměr zdiva 2)", vbInformation: Exit Sub
If ComboBox4 = True And ComboBox4 = "" Then MsgBox "Vyberte rozměr bednění (cihly) pro výpočet spotřeby... (Rozměr zdiva 2)", vbInformation: Exit Sub
nebo v případe že tech sloupců bude víc může se to řešit i takhle
viz přílohu
soubor aktualizován
nevím jak moc seš zběhlý ve VBA takže až otevřeš sešit
kláv. zkratka "Alt + F11" co otevře okno s makrem
vlevo dvojklik na "List1" tam je celé makro, který danou proceduru provádí + přidal jsem jednoduché popisky.
Snad tě to nakopne
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.