Např.
If List1.Range("A1").Value = "NE" Then
MsgBox "Neplatná data", vbCritical, "CHYBA"
Exit Sub
End If
Hlášku a list si uprav podle sebe.
Promiň, nějak mi nedocvaklo, že tahle situace může nastat.
Upraveno.
Chtěl jsem si jen urychlit práci.
Tak zapsat do kódu .Unprotect (HESLO) a .Protect (HESLO) snad nebude zas takový problém né
Ale jo, chápu čeho chceš dosáhnout. Ale nechápu s čím je problém. Formuláři je jedno kolik buněk obsahuje tabulka. Jak si to "naprogramuješ" tak to budeš mít.
Výchozí stav: zamčený list
- Zobrazíš formulář > vyplníš data > (provedeš verifikaci?)
- Odemkneš list
- Zapíšeš data z formuláře do listu
- Zamkneš list
- Zavřeš formulář
List je zamknuty, nelze provádět úpravy, mazat vzorce.
Co? Vždyť píšeš, že používáš formulář?
Odemknout - vložit - zamknout.
Tak schválně ty dva řádky zakomentuj a sleduj co se stane. Jistě na to přijdeš.
Tak?
TextBox6.SetFocus
SOUČIN.SKALÁRNÍ
https://learn.microsoft.com/cs-cz/dotnet/visual-basic/language-reference/operators/like-operator
Umístit do standardního modulu
Private Sub HideLabel1()
List1.Label1.Visible = False
End Sub
Můžeš porovnat hodnotu zadanou do buňky s aktuálním jménem listu a zobrazit hlášku nebo kód ukončit:
JmenoMesice = Format(DateSerial([rok_vykaz], Target, 1), "mmmm")
If JmenoMesice = ThisWorkbook.ActiveSheet.Name Then Exit Sub
If ListExistuje(JmenoMesice) = True Then
'Přejmenování listu podle změny v buňce B6
Private Sub Worksheet_Change(ByVal Target As Range)
Dim JmenoMesice As String
If Not Intersect(Me.Range("B6"), Target) Is Nothing Then
If Target = "" Then
Exit Sub
Else
JmenoMesice = Format(DateSerial([rok_vykaz], Target, 1), "mmmm")
If ListExistuje(JmenoMesice) = True Then
MsgBox "List s názvem " & JmenoMesice & " již existuje, proto jej nebylo možné použít znovu v procesu automatizovaného pojmenování tohoto listu. Výchozí název listu můžeš ale přejmenovat ručně standardním způsobem zvolením jiného vhodného názvu.", vbExclamation, "Konflikt s duplicítním názvem listu"
Exit Sub
Else
Application.ActiveSheet.Name = JmenoMesice
End If
End If
End If
End Sub
Private Function ListExistuje(ByVal strJmeno As String) As Boolean
On Error Resume Next
ListExistuje = Not Worksheets(strJmeno) Is Nothing
End Function
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.