Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  17 18 19 20 21 22 23 24 25   další » ... 140

Přišlo mi to jako hodně pěkná úloha pro power query tak jsem to zkusil (OP píše excel 2016, tak proč ne)

Je to můj první větší pokus s PQ a už nemám čas, takže ty čárky v závorkách odstraňovat nebudu.
Funguje to pěkně, aktualizuje se pomocí Data - Aktualizovat vše

Mám tam 3 ze 4 požadovaných listů.

Z referencemi to nemá nic společného.

Máte při spuštění kódu Outlook spuštěný nebo ne? CreateObject vytváří novou instanci a to může dělat problémy.
Zkuste nahradit tímto.Dim OutApp As Object
On Error Resume Next
Set OutApp = GetObject(, "Outlook.Application")
On Error GoTo 0
If OutApp Is Nothing Then
Set OutApp = CreateObject("Outlook.Application")
End If
Nejdříve otestuje otevřenou instanci a k ní se připojí. Pokud není, pak vytvoří novou.

Obrázky nedávejte na externí server, lze je zde uložit jako přílohu.

doplňte, co se v těchto případech má vypsat

@elninoslov
Já sice nemám Office 2016 a vše se vyvíjí, ale když použiju CreateObject tak přece nepotřebuji reference

@RK
Odkrokujte a zjistěte, na kterém řádku to padá.

Balon a plachetnici máte naopak ;)
=INDEX(text!$B$1:$B$10;POZVYHLEDAT(INDEX($B$1:$K$1;POZVYHLEDAT(LARGE($B$14:$K$14;1);$B$14:$K$14;0));text!$A$1:$A$10;0))
Ve funkciLARGE($B$14:$K$14;1)změňte druhý argument (1) podle pořadí, které hledáte.
Není řešeno, pokud budou dva výsledky shodné

Mno, ale nedalo mi to.
Toto je kód, jak by pravděpodobně vypadal u mne
Při volání procedury vyplníte pouze názvy listů, které chcete skrýt, odděleny středníkem.
Nevím, jestli to u vás bude fungovat - bez přílohy nemohu odladit - takto jsem to vyčetl z toho kódu (neladil jsem ani u sebe - musel bych vytvářet sešit s podobnou strukturou a to se mi nechce) - námět ke studiu

Private Sub CommandButton1_Click()
Dim sUserName As String
Dim sPassword As String

sUserName = TextBox1.Value
sPassword = TextBox2.Value

If Not sUserName = "" And sPassword = "" Then
Dim iUser As Long
iUser = -1
On Error Resume Next
iUser = Application.WorksheetFunction.Match(sUserName, Sheets("UserData").Columns(1), 0)
On Error GoTo 0

If Not iUser = -1 Then
If Sheets("UserData").Cells(iUser, 2).Value2 = sPassword Then
Dim bScreen As Boolean
bScreen = Application.ScreenUpdating
Application.ScreenUpdating = False

Select Case CStr(Sheets("UserData").Cells(iUser, 3).Value2)
Case "MASTER"
Call subSetSheets(vbNullString)
Case "OSTAT"
Call subSetSheets("START;PLT;PL_TS;1;2;3")
Case "OSOUKR"
Call subSetSheets("START;PLT;PL_TS;1;2;3;1S;2S;3S")
End

Application.ScreenUpdating = bScreen
Else
MsgBox "NESPRÁVNÉ HESLO!"
End If
Else
MsgBox "NEEXISTUJÍCÍ UŽIVATEL!"
End If
Else
MsgBox "PROSÍM VYPLŇTE VŠECHNA POLE"
End If

Unload Me
End Sub

Private Sub subSetSheets(ByVal sSheets As String)
sSheets = "#" & Replace$(sSheets, ";", "#;#") & "#"

Dim sh As Worksheet
For Each sh In ThisWorkbook.Sheets
If InStr(sSheets, "#" & sh.Name & "#") = 0 Then
sh.Visible = xlSheetVisible
Else
sh.Visible = xlVeryHidden
End If
Next sh
Set sh = Nothing
End Sub

Určitě to jde ještě zjednodušit, ale to není téma.
Otestovat nemohu, ale principPrivate Sub CommandButton1_Click()
Dim UserName As String
Dim Password As String

UserName = TextBox1.Value
Password = TextBox2.Value

If UserName = "" Or Password = "" Then
MsgBox "PROSÍM VYPLŇTE VŠECHNA POLE"
Exit Sub
End If

RowCounter = 2
Do
If UserName = Sheets("UserData").Cells(RowCounter, 1).Value Then
If Password = Sheets("UserData").Cells(RowCounter, 2).Value Then
Role = Sheets("UserData").Cells(RowCounter, 3).Value
Exit Do
Else
MsgBox "NESPRÁVNÉ HESLO!"
Exit Sub
End If
ElseIf Sheets("UserData").Cells(RowCounter, 1).Value = "" Then
MsgBox "NEEXISTUJÍCÍ UŽIVATEL!"
Exit Sub
End If

RowCounter = RowCounter + 1
Loop

Application.ScreenUpdating = False
Select Case (Role):
Case ("MASTER"):
Call subSet_1

Case ("OSTAT"):
Call subSet_2

Case ("OSOUKR"):
Call subSet_3
End Select
Application.ScreenUpdating = True

Unload Me
End Sub

Private Sub subSet_1()
Sheets("START").Visible = True
Sheets("PL_T").Visible = True
Sheets("PL_TS").Visible = True
Sheets("1").Visible = True
Sheets("2").Visible = True
Sheets("3").Visible = True
Sheets("4").Visible = True
Sheets("5").Visible = True
Sheets("6").Visible = True
Sheets("7").Visible = True
Sheets("8").Visible = True
Sheets("9").Visible = True
Sheets("10").Visible = True
Sheets("11").Visible = True
Sheets("1S").Visible = True
Sheets("2S").Visible = True
Sheets("3S").Visible = True
Sheets("4S").Visible = True
Sheets("5S").Visible = True
Sheets("6S").Visible = True
Sheets("7S").Visible = True
Sheets("8S").Visible = True
Sheets("9S").Visible = True
Sheets("10S").Visible = True
Sheets("11S").Visible = True
Sheets("R").Visible = True
Sheets("R1").Visible = True
Sheets("R2").Visible = True
Sheets("O1").Visible = True
Sheets("O2").Visible = True
Sheets("O3").Visible = True
Sheets("O4").Visible = True
Sheets("O5").Visible = True
Sheets("O6").Visible = True
Sheets("O7").Visible = True
Sheets("O8").Visible = True
Sheets("O9").Visible = True
Sheets("O10").Visible = True
Sheets("O11").Visible = True
Sheets("O12").Visible = True
Sheets("O13").Visible = True
Sheets("O14").Visible = True
Sheets("O15").Visible = True
Sheets("O16").Visible = True
Sheets("O17").Visible = True
Sheets("O18").Visible = True
Sheets("O19").Visible = True
Sheets("O20").Visible = True
Sheets("DATA").Visible = True
Sheets("INPUT").Visible = True
Sheets("CF_M").Visible = True
Sheets("CF_T").Visible = True
Sheets("C").Visible = True
Sheets("C_P").Visible = True
Sheets("O1").Visible = True
Sheets("UserData").Visible = True
Sheets("START").Select
Range("B2").Select
End Sub

Private Sub subSet_2()
Sheets("START").Visible = xlVeryHidden
Sheets("PL_T").Visible = xlVeryHidden
Sheets("PL_TS").Visible = xlVeryHidden
Sheets("1").Visible = xlVeryHidden
Sheets("2").Visible = xlVeryHidden
Sheets("3").Visible = xlVeryHidden
Sheets("4").Visible = xlVeryHidden
Sheets("5").Visible = xlVeryHidden
Sheets("6").Visible = xlVeryHidden
Sheets("7").Visible = xlVeryHidden
Sheets("8").Visible = xlVeryHidden
Sheets("9").Visible = xlVeryHidden
Sheets("10").Visible = xlVeryHidden
Sheets("11").Visible = xlVeryHidden
Sheets("1S").Visible = xlVeryHidden
Sheets("2S").Visible = xlVeryHidden
Sheets("3S").Visible = xlVeryHidden
Sheets("4S").Visible = xlVeryHidden
Sheets("5S").Visible = xlVeryHidden
Sheets("6S").Visible = xlVeryHidden
Sheets("7S").Visible = xlVeryHidden
Sheets("8S").Visible = xlVeryHidden
Sheets("9S").Visible = xlVeryHidden
Sheets("10S").Visible = xlVeryHidden
Sheets("11S").Visible = xlVeryHidden
Sheets("R").Visible = xlVeryHidden
Sheets("R1").Visible = xlVeryHidden
Sheets("R2").Visible = xlVeryHidden
Sheets("O1").Visible = True
Sheets("O2").Visible = True
Sheets("O3").Visible = True
Sheets("O4").Visible = True
Sheets("O5").Visible = True
Sheets("O6").Visible = xlVeryHidden
Sheets("O7").Visible = xlVeryHidden
Sheets("O8").Visible = xlVeryHidden
Sheets("O9").Visible = xlVeryHidden
Sheets("O10").Visible = xlVeryHidden
Sheets("O11").Visible = xlVeryHidden
Sheets("O12").Visible = xlVeryHidden
Sheets("O13").Visible = xlVeryHidden
Sheets("O14").Visible = xlVeryHidden
Sheets("O15").Visible = xlVeryHidden
Sheets("O16").Visible = xlVeryHidden
Sheets("O17").Visible = xlVeryHidden
Sheets("O18").Visible = xlVeryHidden
Sheets("O19").Visible = xlVeryHidden
Sheets("O20").Visible = xlVeryHidden
Sheets("DATA").Visible = xlVeryHidden
Sheets("INPUT").Visible = xlVeryHidden
Sheets("CF_M").Visible = xlVeryHidden
Sheets("CF_T").Visible = xlVeryHidden
Sheets("C").Visible = xlVeryHidden
Sheets("C_P").Visible = xlVeryHidden
Sheets("UserData").Visible = xlVeryHidden
Sheets("O1").Select
Range("A1").Select
End Sub

Private Sub subSet_3()
Sheets("START").Visible = xlVeryHidden
Sheets("PL_T").Visible = xlVeryHidden
Sheets("PL_TS").Visible = xlVeryHidden
Sheets("1").Visible = xlVeryHidden
Sheets("2").Visible = xlVeryHidden
Sheets("3").Visible = xlVeryHidden
Sheets("4").Visible = xlVeryHidden
Sheets("5").Visible = xlVeryHidden
Sheets("6").Visible = xlVeryHidden
Sheets("7").Visible = xlVeryHidden
Sheets("8").Visible = xlVeryHidden
Sheets("9").Visible = xlVeryHidden
Sheets("10").Visible = xlVeryHidden
Sheets("11").Visible = xlVeryHidden
Sheets("1S").Visible = xlVeryHidden
Sheets("2S").Visible = xlVeryHidden
Sheets("3S").Visible = xlVeryHidden
Sheets("4S").Visible = xlVeryHidden
Sheets("5S").Visible = xlVeryHidden
Sheets("6S").Visible = xlVeryHidden
Sheets("7S").Visible = xlVeryHidden
Sheets("8S").Visible = xlVeryHidden
Sheets("9S").Visible = xlVeryHidden
Sheets("10S").Visible = xlVeryHidden
Sheets("11S").Visible = xlVeryHidden
Sheets("R").Visible = xlVeryHidden
Sheets("R1").Visible = xlVeryHidden
Sheets("R2").Visible = xlVeryHidden
Sheets("O1").Visible = xlVeryHidden
Sheets("O2").Visible = xlVeryHidden
Sheets("O3").Visible = xlVeryHidden
Sheets("O4").Visible = xlVeryHidden
Sheets("O5").Visible = xlVeryHidden
Sheets("O6").Visible = True
Sheets("O7").Visible = True
Sheets("O8").Visible = True
Sheets("O9").Visible = True
Sheets("O10").Visible = True
Sheets("O11").Visible = True
Sheets("O12").Visible = True
Sheets("O13").Visible = True
Sheets("O14").Visible = True
Sheets("O15").Visible = True
Sheets("O16").Visible = True
Sheets("O17").Visible = True
Sheets("O18").Visible = True
Sheets("O19").Visible = True
Sheets("O20").Visible = True
Sheets("DATA").Visible = xlVeryHidden
Sheets("INPUT").Visible = xlVeryHidden
Sheets("CF_M").Visible = xlVeryHidden
Sheets("CF_T").Visible = xlVeryHidden
Sheets("C").Visible = xlVeryHidden
Sheets("C_P").Visible = xlVeryHidden
Sheets("UserData").Visible = xlVeryHidden
Sheets("O6").Select
Range("A1").Select
End Sub

Jste šikovný. To musí být šíleně přehledné.

Rozdĕlte proceduru na více a pod tlačítkem postupně zavolejte všechny části-procedury.

Já jen k tomu druhému. Vlastně jste si v bodě 1 odpověděl sám.
Takže 1 je správně.

Navíc ta data vložte do tabulky (Vložení - Tabulka). Pak už se nebudete muset starat o nic, jen o přidávání dat.

Jaký je důvod mít to ve dvaceti listech?

Edit:
A k tomu prvnímu - podívejte se na podmíněné formátování

Čemu přesně nerozumíte?
Do toho "delšího" seznamu (který obsahuje i již nepoužívané záznamy) použijte fci COUNTIF a rozkopírujte dolů. Když vrátí 0, tak je to záznam ke smazání.

Nasměroval jsem vás, na internetu najdete spoustu návodů, jak fci použít, přijde mi zbytečné to tu zase psát.

COUNTIF

@elninoslov

vaše ne, tam to počítá správně - pokud tedy před tabulku nevložíte sloupec (posunete ji o jeden sloupec doprava). Pak ne. Proto to moje ISEVEN (nebo ISODD) - je to univerzitální

Možná tomu nerozumím, ale nestačí takto?:=SUMIF($F$7:$N$22;$D27;$G$7:$O$22)
Pořád platí, co píše xlnc
Univerzálně - maticově=SUMA($H$7:$P$22*($G$7:$O$22=$D27)*(ISEVEN(SLOUPEC($G$7:$O$22))=ISEVEN(SLOUPEC($G$7))))

Poznámka:
To, co navrhují ostatní bude fungovat, ale pouze do 31 dní (směn)...
Takže záleží na okolnostech ;)

=USEKNOUT(E3/7,5*24)&HODNOTA.NA.TEXT(MOD(E3;ČAS(7;30;0));"\d\ hh:mm")


Strana:  1 ... « předchozí  17 18 19 20 21 22 23 24 25   další » ... 140

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