Ahoj, mám trošku problém s Userform.
Mám formulář kde mám spoustu comboboxů, textboxů, labelů atd... Dole mám tlačítko které by mi mělo přenést hodnoty ze všech polí do buněk na listu. Problém je v tom že když chci uložit tyto data, tak se mi aktualizuje hlavní combobox a ten mi přepíše hodnoty v polích. Mohl bych přiložit sešit s chybou, ale musel bych ho sáhodlouze upravovat, jelikož jsou v něm loga a data zákazníků takže se raděj ptám - jde po kliknutí na tlačítko spustit makro "Private Sub Save_Click()" které zakáže spouštění dalších maker jako je například "Combobox_change()" ?? Díky předem za rady ...
Excel VBA - zákaz spuštění makra
- Branscombe
- Level 3
- Příspěvky: 469
- Registrován: červen 09
- Pohlaví:
- Stav:
Offline
-
- Level 4
- Příspěvky: 1142
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: Excel VBA - zákaz spuštění makra
Popis problemu neni dostatecne jasny.
Vskutku by bylo vhodne pripojit UserForm, ve kterem jsi vytvoril kladnou zpetnou vazbu, aby bylo mozno overit reseni na realu.
Lze sice pouzit vlastnost EnableEvents, ktera zabrani vyvolani udalosti pri operacich VBA na listu Excelu:
ale pokud bude zmenen obsah bunkek ComboBox.RowSource, tak ke zmene v seznamu stejne dojde.
Vskutku by bylo vhodne pripojit UserForm, ve kterem jsi vytvoril kladnou zpetnou vazbu, aby bylo mozno overit reseni na realu.
Lze sice pouzit vlastnost EnableEvents, ktera zabrani vyvolani udalosti pri operacich VBA na listu Excelu:
Kód: Vybrat vše
Application.EnableEvents = False
' zde je prislusna procedura
Application.EnableEvents = True
ale pokud bude zmenen obsah bunkek ComboBox.RowSource, tak ke zmene v seznamu stejne dojde.
Re: Excel VBA - zákaz spuštění makra
tenhle problem jsem jednou resil tak, ze jsem si vytvoril verejnou promennou as Boolean, pri jejiz hodnote True se mohly vykonat vsechny procedury, ktere ovlivnovaly userform (ve vsech techto procedurach jsem mel if Verejna = True then...).
Na zacatku ulozeni dat Button_click jsem vsak nastavil Verejnou na False, cim se dotcene procedury neprovedly a na konci _click jsem Verejnou zase nastavil na True)
Na zacatku ulozeni dat Button_click jsem vsak nastavil Verejnou na False, cim se dotcene procedury neprovedly a na konci _click jsem Verejnou zase nastavil na True)
- Branscombe
- Level 3
- Příspěvky: 469
- Registrován: červen 09
- Pohlaví:
- Stav:
Offline
Re: Excel VBA - zákaz spuštění makra
to navstevnik: nefunguje, asi opravdu budu muset vytvořit userform znovu bez firemních chráněných dat abych ho zde mohl publikovat ...
to Poki: Dobrej nápad, ale asi až jako krajní řešení ... Ale díky, když selžou rady od návštěvníka, tak tohle by fungovat mohlo ...
to Poki: Dobrej nápad, ale asi až jako krajní řešení ... Ale díky, když selžou rady od návštěvníka, tak tohle by fungovat mohlo ...
- Branscombe
- Level 3
- Příspěvky: 469
- Registrován: červen 09
- Pohlaví:
- Stav:
Offline
Re: Excel VBA - zákaz spuštění makra
Tak přikládám soubor s Userform...
Po zobrazení formuláře, kliknu na první combobox, vyberu který záznam chci zobrazit, cokoliv upravím (třeba text: místo PC-Help napíšu PC) a kliknu na SAVE. Formulář se pouze aktualizuje a hodnoty se neuloží. Kde je chyba ??
Po zobrazení formuláře, kliknu na první combobox, vyberu který záznam chci zobrazit, cokoliv upravím (třeba text: místo PC-Help napíšu PC) a kliknu na SAVE. Formulář se pouze aktualizuje a hodnoty se neuloží. Kde je chyba ??
- Přílohy
-
- vzor_Userform.xlsm
- (45.83 KiB) Staženo 44 x
-
- Level 4
- Příspěvky: 1142
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: Excel VBA - zákaz spuštění makra
a co takhle heslo k VBA?
Jen tak naokraj, v uvodnim dotazu problem spociva v necem jinem, nez uvadis nyni.
Jen tak naokraj, v uvodnim dotazu problem spociva v necem jinem, nez uvadis nyni.
- Branscombe
- Level 3
- Příspěvky: 469
- Registrován: červen 09
- Pohlaví:
- Stav:
Offline
Re: Excel VBA - zákaz spuštění makra
Ups, sorry ... V příloze bez hesla ...
Psal jsem: "Problém je v tom že když chci uložit tyto data, tak se mi aktualizuje hlavní combobox a ten mi přepíše hodnoty v polích."
A to přetrvává. Prostě se nové hodnoty v polích neuloží na list, jelikož se aktualizuje hlavní combobox1 a ten zaktualizuje celý formulář ...
Psal jsem: "Problém je v tom že když chci uložit tyto data, tak se mi aktualizuje hlavní combobox a ten mi přepíše hodnoty v polích."
A to přetrvává. Prostě se nové hodnoty v polích neuloží na list, jelikož se aktualizuje hlavní combobox1 a ten zaktualizuje celý formulář ...
- Přílohy
-
- vzor_Userform.xlsm
- (45.99 KiB) Staženo 32 x
-
- Level 4
- Příspěvky: 1142
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: Excel VBA - zákaz spuštění makra
Nahledni do prilohy.
- Přílohy
-
- vzor_Userform-1.xlsm
- (46.29 KiB) Staženo 84 x
- Branscombe
- Level 3
- Příspěvky: 469
- Registrován: červen 09
- Pohlaví:
- Stav:
Offline
Re: Excel VBA - zákaz spuštění makra
Super, funguje jak má ... Ještě to budu muset prozkoumat a pochopit abych to napasoval na svoje data ... Zatím díky a případně budu mít doplňující otázky
- Branscombe
- Level 3
- Příspěvky: 469
- Registrován: červen 09
- Pohlaví:
- Stav:
Offline
Re: Excel VBA - zákaz spuštění makra
Super, funguje to jako má... Ještě si to postupně upravuji, jelikož tvůj zápis VBA je o level výš než ten můj ...
Mám tam další překážku:
1. Chci napsat:
Ale VBA mi nebere čínské znaky... Lze nějak zapsat podmínku když ComboBox6.Value (ale pouze pro prvních 8 znaků) ??
2. Nešlo by nějak upravit zápis VBA ComboBox3_Change() kde jsem to napsal dost složitě ??
Mám tam další překážku:
1. Chci napsat:
Kód: Vybrat vše
If ComboBox6.Value = "Materiál / Material / Material / Materiales / 材料" Then
Ale VBA mi nebere čínské znaky... Lze nějak zapsat podmínku když ComboBox6.Value (ale pouze pro prvních 8 znaků) ??
2. Nešlo by nějak upravit zápis VBA ComboBox3_Change() kde jsem to napsal dost složitě ??
-
- Level 4
- Příspěvky: 1142
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: Excel VBA - zákaz spuštění makra
ad 1. Left(ComboBox6.Value, 8) = "Materiál" Then
ad 2.
V tebou predlozenem souboru je skryto nekolik "min", ktere nejsou deaktivovany, reseni salamovou metodou, ktere jsi zvolil k tomu nejspis nevede.
ad 2.
Kód: Vybrat vše
Private Sub ComboBox3_Change()
Dim wsh As Worksheet, zakaznik As Variant
Dim HBlk As Range, HCll As Range, CB4RowSrcAddr As String
Set wsh = ThisWorkbook.Worksheets("zdroj")
Set HBlk = wsh.Range("g1:o1")
zakaznik = ComboBox3.Value
With HBlk
Set HCll = .Find(zakaznik, LookIn:=xlValues, LookAt:=xlWhole)
If Not HCll Is Nothing Then
If HCll.Offset(3, 0).Value = vbNullString Then
CB4RowSrcAddr = HCll.Resize(2, 1).Offset(1, 0).Address
Else
CB4RowSrcAddr = wsh.Range(HCll.Offset(1, 0), HCll.Offset(2, 0).End(xlDown)).Address
End If
Me.ComboBox4.RowSource = wsh.Name & "!" & CB4RowSrcAddr
End If
End With
End Sub
V tebou predlozenem souboru je skryto nekolik "min", ktere nejsou deaktivovany, reseni salamovou metodou, ktere jsi zvolil k tomu nejspis nevede.
- Branscombe
- Level 3
- Příspěvky: 469
- Registrován: červen 09
- Pohlaví:
- Stav:
Offline
Re: Excel VBA - zákaz spuštění makra
Díky za rady...
Psal jsem to nejlépe jak umím ... Nejsem v tom žádný expert ani se tím neživím, pouze se snažím firmě trochu pomoci ... Jaké největší miny tam jsou ??
EDIT: Ještě jedna otázka: Když otevřu soubor a pracuji s formulářem, tak je ze začátku všechno OK, ale po nějaké době když chci znovu otevřít formulář, tak mi vyskočí chybová hláška "Type mismatch" .... Proč ??
Psal jsem to nejlépe jak umím ... Nejsem v tom žádný expert ani se tím neživím, pouze se snažím firmě trochu pomoci ... Jaké největší miny tam jsou ??
EDIT: Ještě jedna otázka: Když otevřu soubor a pracuji s formulářem, tak je ze začátku všechno OK, ale po nějaké době když chci znovu otevřít formulář, tak mi vyskočí chybová hláška "Type mismatch" .... Proč ??
Naposledy upravil(a) Branscombe dne 19 lis 2010 12:27, celkem upraveno 1 x.
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 1
- 744
-
od Grimm
Zobrazit poslední příspěvek
12 bře 2024 21:43
-
- 4
- 1832
-
od Radoozek
Zobrazit poslední příspěvek
08 pro 2023 16:45
-
- 2
- 870
-
od Mr. Incognito
Zobrazit poslední příspěvek
30 čer 2023 19:04
-
-
Program se stále ptá na spuštění při startu OS
od Karrex » 17 pro 2023 15:09 » v Windows 11, 10, 8... - 3
- 1596
-
od zeus
Zobrazit poslední příspěvek
19 pro 2023 18:50
-
-
-
Skyrama Flash launcher, po spuštění - přihlášení BLACK SCREEN
od Ramoneggg » 13 led 2024 17:43 » v Windows 11, 10, 8... - 2
- 1083
-
od Ramoneggg
Zobrazit poslední příspěvek
13 led 2024 18:06
-
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti