Kód: Vybrat vše
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'Následující sekvence mění název listu
If Range("B3") = "" And Range("B4") = "" And ActiveSheet.Name <> "Prázdný protokol (" & Sheets.Count - 8 & ")" Then
ActiveSheet.Name = "Prázdný protokol (" & Sheets.Count - 8 & ")"
ElseIf Range("B3") <> "" And Range("B4") = "" And ActiveSheet.Name <> Range("B3") Then
ActiveSheet.Name = Range("B3").Value
ElseIf Range("B3") = "" And Range("B4") <> "" And ActiveSheet.Name <> Range("B4") Then
ActiveSheet.Name = Range("B4").Value
ElseIf Range("B3") <> "" And Range("B4") <> "" And ActiveSheet.Name = Range("B3") & "_" & Range("B4") Then
ActiveSheet.Name = Range("B3") & "_" & Range("B4").Value
End If
'Následující sekvence čísluje protokol (Protokol č.X)
If Range("H1") = "" And Range("C1") <> "" Then
Range("C1").ClearContents
ElseIf Range("C1") = "" And Range("H1") <> "" Then
Range("C1").Value = "č. " & Sheets.Count - 6
End If
'Následující sekvence Maže proud a výkon pokud bylo zadáno více jak 240V a jmenované buňky nejsou prázdné
If Range("R2") And Range("L5,M5") = "" And Range("K5") > 240 Then
Range("R2") = "Nepravda"
ElseIf Range("R2") And Range("K5,L5,M5") <> "" And Range("K5") > 240 Then
Range("L5,M5").ClearContents
Range("R2") = "Nepravda"
ElseIf Range("R2") = "Nepravda" And Range("K5") < 241 And Range("K5") <> "" Then
Range("R2") = "Pravda"
ElseIf Range("R2") = "Nepravda" And Range("K5,L5,M5") = "" Then
Range("R2") = "Pravda"
End If
'Následující sekvence Provádí výpočet proudu nebo příkonu pokud je napětí menší než 241V
If Range("M5") <> "" And Range("K5") < 241 And Range("K5") <> "" And Range("L5") = "" Then
Range("L5").Value = Range("M5") / Range("K5")
ElseIf Range("L5") <> "" And Range("K5") < 241 And Range("K5") <> "" And Range("M5") = "" Then
Range("M5").Value = Range("K5") * Range("L5")
End If
End Sub
Potřeboval bych omezit počet znaků vkládaných do názvu listu na 31 aby název listu "nepřetékal" a makro nemohlo vyhlásit chybu. Bohužel VBA není DOS takže v tom plavu a nevím jak přesně napsat.
Zřejmě bych ke každé možnosti přidal podmínku která zjistí délku textu pokud je méně znaků než 32 Zapsat v nezměněné podobě. Pokud délka textu přesáhne 31 znaků zapsat od prvního znaku názvu listu povolených 31 znaků.
Předem dík za pomoc