Vložil jsem do makra nějaký komentář. Třeba to pomůže při luštění.
Tady je úprava:
Nejdříve kontroluje, jestli existuje "Uzavření kontroly". Pokud existuje vloží data do formuláře. Pokud neexistuje, kontroluje, zda je "Protokol o kontrole". Pokud je, do formuláře vloží data. Pokud neexistuje "Protokol" hledá "Oznámení o kontrole".
Toto dělá zvlášť pro kontrolu 1 a 2.
Barevné odlišení jsem chtěl jen pro sebe, abych pochopil, co vlastně chcete. Makro s barvičkama nepočítá.
Zatím to načítá data z Uzavření kontroly 1 a 2.
Asi by se mělo načítat Uzavření kontroly, když není tak Protokol, a když není Protokol tak Oznámení.
Nebo...?
No dobře, ale která kontrola se má načíst, když tam jsou všechny 3 (Oznámení, Protokol a Uzavření)?
Pokud tam bude jen jedna varianta. tak je to jasné.
Třeba vytváří firemní maily: "jmeno.prijmeni@firma.cz"
Jak odstranit diakritiku nevím. Vzorec je: Range("B1").FormulaR1C1 = Range("A1").Value & ("@seznam.cz")
marjankaj napsal/a:
To máš pravdu. Ja som odpovedal zadávateľovi.
@marjankaj: Já jsem to pochopil tak, že když do buňky zapíši nějakou hodnotu (třeba pomocí rozevíracího seznamu), tak pokud ji pak zamknu, tak na té buňce již žádnou změnu nemohu provést. Ani přes ověření dat (seznam) ani pomocí Ctrl+V.
Pomocí Ctrl+V obejdu ověření dat, ale už ne zamknutou buňku.
Možná jsem šel na to moc jednoduše:
Buňky (A1:A20 ) nastavit jako "odemknuté". Po vložení hodnoty se zamkne (a s tím i samozřejmě celý list)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("A1:A20")
If Intersect(Target, KeyCells) Is Nothing Then Exit Sub
ActiveSheet.Unprotect
Range("A" & Target.Row).Locked = True 'zamkne
Range("A" & Target.Row).Interior.ColorIndex = 3 'pozadí červené
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Tak to vyzkoušejte.
Nevím, v jaké fázi máte program. Při načítání údajů k vybrane sp.zn. postupně načítáte a následně přepisujete hodnoty ve formuláři. Podle mě by stačilo zapsat jen ten poslední.
Mrknu na to ale až večer.
Možná někdo jiný bude rychlejší.
Vyzkoušejte, jestli pojede toto:
ad 2) Přiložte soubor, kde je vložena kontrola 1, kontrola 2 a kontrola 3 včetně hodnot, které se mají načíst do formuláře.
Hodnoty pro kontrolu 1 - 3 odlište barevně.
Není mi to moc jasné.
Samozřejmě že to nefungovalo. Neurčil jsem z kerého listu se to má načítat:
Set oblast = Worksheets("ČÍSELNÍKY").Range("B2:B37")
cmbUkon.RowSource = "ČÍSELNÍKY!C" & index1 & ":C" & index2
Školácká chyba:)
=SOUČIN.SKALÁRNÍ(1/COUNTIF(F10:F22;F10:F22))
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.