Děkuji za nápovědu. Také jsem našel chybu v číselnících.
Nyní mi vyhledávání Změn - Prodloužení funguje, ale potřeboval bych ještě pomoci s tím, že by se do žlutého labelu zapsalo, kolik bylo změn u dané spzn. U spzn "k" je celkem 15 změn (data jsem doplnil jen pro změnu 1m změnu 2 a změnu 15). Takže teď mi to najde data pro změny 15. Proto bych potřeboval, že v žlutém labelu bude v tomto případě 15 a v červeném combo boxu bude na výběr Změna 1-15. Pokud se vybere změna 1, tak se ukážou data ke změně 1, pokud se vybere změna 2, tak se ukážou data ke změně 2 atd...
Dobrý den, nevím, zda jsem popsal srozumitelně, ale jde mi o to, že jakmile do červeného pole cmbCZmeny dám číslo změny (např. 1), tak se budou hledat data patřící do SpZn v sloupci D a do Kontroly1 v sloupci CC.
Zkusil jsem si to navrhnout, ale nejde mi to.
Private Sub cmbCZmeny_Change()
' reaguje na změnu, pokud je vložena hodnota > událost > provede se načtení tohoto skriptu
' proměnné
Dim id As Integer, i As Integer, z As Integer, pomoc As Boolean
Dim arrDruhZmenaProdlouzeni(5) As String
arrDruhZmenaProdlouzeni(0) = "Žádost 0 Prodloužení 1"
arrDruhZmenaProdlouzeni(1) = "Žádost 0 Prodloužení 2"
arrDruhZmenaProdlouzeni(2) = "Žádost 1 Prodloužení 3"
arrDruhZmenaProdlouzeni(3) = "Žádost 1 Prodloužení 4"
arrDruhZmenaProdlouzeni(4) = "Žádost 2 Prodloužení 5"
arrDruhZmenaProdlouzeni(5) = "Žádost 2 Prodloužení 6"
i = 1 'do i vloží 1
z = 1
id = UserForm1.txtSpZn.Value ' načte hodnotu
zmenaid = UserForm1.cmbCZmeny.Value
pomoc = False ' předpoklad že není nalezeno > dojde k vymazání
If Cells(i, 4).Value <> "" Then
Do While Cells(z, 81).Value <> ""
If Cells(z, 81).Value = zmenaid Then
pomoc = True ' nalezeno tak se nic mazat nebude
End If
z = z + 1
Loop
End If
'************ ZMĚNY Prodloužení
For m = 1 To 6
Set kontrola = .Range("D2:D" & Cells(Rows.Count, "A").End(xlUp).Row).Find(id, searchDirection:=xlPrevious)
Do Until kontrola Is Nothing
If .Range("B" & kontrola.Row).Value = arrDruhZmenaProdlouzeni(m) Then
UserForm1.Controls("txtZmenaLhutaProdlouzeni" & (m)).Value = .Range("AE" & kontrola.Row).Value
UserForm1.Controls("txtZmenaOdeslaniProdlouzeni" & (m)).Value = .Range("AF" & kontrola.Row).Value
UserForm1.Controls("txtZmenaUsneseniProdlouzeni" & (m)).Value = .Range("AG" & kontrola.Row).Value
UserForm1.Controls("txtZmenaDoDataProdlouzeni" & (m)).Value = .Range("AH" & kontrola.Row).Value
UserForm1.Controls("txtZmenaRozhodnutiProdlouz" & (m)).Value = .Range("AI" & kontrola.Row).Value
Exit Do
End If
Set kontrola = .Range("D1:D" & kontrola.Row - 1).Find(id, searchDirection:=xlPrevious)
Loop
Next m
'************* konec ZMĚNY prodloužení
End Sub
Dobrý den,
prosím opět o pomoc.
databáze se mi zkomplikovala a potřebuji ve formuláří vyhledat data nejen podle 1 sloupce (Sp.Zn.) ale i podle čísla změny (sloupec CC v listu Database).
Problém je v tom, že každá zkouška (hledá se v sloupci D jako Sp.Zn.) může mít až 15 změn (v sloupci CC označeno jako Změna1, Změna2,...)
Každá změna má další kategorie (Žádost 0, Žádost 0 Výzva1, Žádost 0 Prodloužení 1,....) Hierarchie těchto kategorií je uvedena v listu Číselníky, v sloupcích A, B, C.
Potřeboval bych:
1) na formuláři v listu Změny jako název žlutého labelu uvést počet vyplněných změn (pro Sp.Zn. "k" by tam mělo být 15. Pro Sp.Zn "z" by se mělo zapsat číslo 1, jelikož tato spzn má jen 1 zápis označený jako Změna1.
2) nastavit vyhledávání dále tak, že pokud se ve formuláři zvolí číslo zkoušky, dohledají se data k této zkoušce.
Pokoušel jsem se nastavit obecné hledání Změny - Prodloužení 1-6, ale nejde mi to. Navíc nevím, jak to zakomponovat do toho cmbCZmeny... (ve formuláři jsem označil červeně).
Snažil jsem se to popsat co nejlépe, strukturu-hierarchii u změn napoví Číselník a přiložený obrázek.
Předem děkuji za pomoc.
Dobrý den,
chtěl bych se zeptat, zda excel umožňuje mít zaheslovaný list, ale např. loginem pro 2-3 osoby s tím, že po zalogování by se data v listu zviditelnila?
Př. v listu 1 jsou nějaká data viditelná pro všechny, ale v listu 2 budou data určená jen pro vedoucího a jeho zástupce.
Představuji si to tak, že by na listu 2 byla možnost vložit heslo a všechna data na listu 2 by se zviditelnila. Po odlogování by se data na listu 2 opět skryla.
Nechci toto řešit zamknutým sešite, se skrytým listem, jelikož odemčení a zviditelnění je pro vedoucího "náročné".
Dříve jsem to řešil tak, že vedoucí měl samostatný soubor, kde si přes power query čerpal data z jiného souboru.
elninoslov napsal/a:
Ja by som tam prirobil ešte kontrolu na existenciu checkboxu pre každú z buniek. Bude to používať človek, tvor omylný, a ľahko môže označiť aj oblasť (trebárs skrytú), kde už checkboxy sú...
Již jsem nalezl řešení, není třeba řešit. Snad se bude někomu hodit
Sub CreateCheckBoxes()
'Declare variables
Dim c As Range
Dim chkBox As CheckBox
Dim ansBoxDefault as Long
Dim chkBoxRange As Range
Dim chkBoxDefault As Boolean
'Ingore errors if user clicks Cancel or X
On Error Resume Next
'Use Input Box to select cells
Set chkBoxRange = Application.InputBox(Prompt:="Select cell range", _
Title:="Create checkboxes", Type:=8)
'Exit the code if user clicks Cancel or X
If Err.Number <> 0 Then Exit Sub
'Use MessageBox to select checked or unchecked
ansBoxDefault = MsgBox("Should the boxes be checked?", vbYesNoCancel, _
"Create checkboxes")
If ansBoxDefault = vbYes Then chkBoxDefault = True
If ansBoxDefault = vbNo Then chkBoxDefault = False
If ansBoxDefault = vbCancel Then Exit Sub
'Turn error checking back on
On Error Goto 0
'Loop through each cell in the selected cells
For Each c In chkBoxRange
'Create the checkbox
Set chkBox = chkBoxRange.Parent.CheckBoxes.Add(0, 1, 1, 0)
With chkBox
'Set the position of the checkbox based on the cell
.Top = c.Top + c.Height / 2 - chkBox.Height / 2
.Left = c.Left + c.Width / 2 - chkBox.Width / 2
'Set the name of the checkbox based on the cell address
.Name = c.Address
'Set the linked cell to the cell with the checkbox
.LinkedCell = c.Offset(0, 0).Address(external:=True)
'Enable the checkBox to be used when worksheet protection applied
.Locked = False
'Set the caption to blank
.Caption = ""
End With
'Set the cell to the default value
c.Value = chkBoxDefault
'Hide the value in the cell with Number Formatting
c.NumberFormat = ";;;"
Next c
End Sub
Dobrý den,
prosím o pomoc. Mám makro, které do vybrané oblasti vloží checkboxy a zároveň je naváže na buňku, ve které je umístěn checkbox. To mi funguje.
Potřeboval bych odstranit automatický název checkboxu, aby se tam ukazoval jen čtvereček a aby byl čtvereček vycentrovaný v dané buňce.
V budoucnu se předpokládá, že se budou vkládat checkboxy do x sloupců a cc do 200-300 řádků. Děkuji za úvahu a pomoc.
Jiří497, ještě jednou děkuji moc za ochotu a pomoc, pročištěná verze je super.
Ohledně validace, tam zjišťuji, co se musí hlídat. Zkusím sám, případně založím nové vlákno.
Děkuji za ochotu, mrknu na to.
(A já to dnes poctivě všechno vypisoval a kopíroval :) )
Další fází u mě bude validace dat, ale to bude asi na jiné vlákno.
hledám info, jak zajistit, aby se zapsalo z buňky třeba jen
"abc+nějaké číslo", ale údaj musí začínat "abc"
Pokud nenajdu, tak se asi zeptám v novém vlákně.
ještě jednou díky moc. :)
Jiří497, mockrát děkuji za přílohu i zjednodušení.
Funguje to, jak má!
Jiří497, mockrát děkuji!!!!! Vypadá to, že to je přesně ono, co jsem potřeboval! :)
Nyní si kód rozšiřuji i pro další sloupce a řádky dle listu Číselníky a zatím to funguje skvěle. :)
Jiří497, děkuji za komentáře. Snažil jsem se podle toho ještě rozšířit na další sloupce, ale podařilo se mi jen ze čtvrtiny. Můžete se, prosím, ještě podívat na přiložený soubor?
Snažím se o dohledání Výzev1-4, ale podařilo se mi dohledat jen jednu, viz v souboru opět barevně ukázáno, ale nemohu pochopit, kde dělám chybu.
Podobně budu pak dohledávat Prodloužení1-3, kde bych (předpokládám) opět měl stejný, ale upravený kód.
Děkuji za ochotu a pomoc.
Jiří497, mockrát děkuji. Vypadá to, že je to přesně ono. Snažím se teď pochopit kód. Ještě jednou děkuji!
Dobrý den, chtěl Vás opět poprosit o pomoc, rozšíření vyhledávání.
U kontrol jsou možné varianty: "Oznámení o kontrole 1", "Protokol o kontrole 1" a "Uzavření kontroly 1".
Podobné úkony by byly u kontroly 2, viz list Číselníky.
S každým úkonem se vyplní příslušné políčko na příslušný řádek.
Zapisování dat zatím neřeším, nyní potřebuji vyhledat data tak, aby se načetlo pokud možno nejvíce dat ke konkrétní kontrole.
Př. načíst do formuláře co nejvíce modrých dat týkajících se kontroly 1 a zároveň načíst co nejvíce dat týkajících se kontroly 2
Jen doplním, že v databázi data nebudou rozdělena barevně.
Vyhledávání ve formuláři pracuje vyplněním pole "SpZn".
Děkuji za pomoc.
Mockrát děkuji, vypadá to skvěle. Klobouk dolů.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.