Excel VBA - zákaz spuštění makra

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: 11 čer 2009 21:39

Excel VBA - zákaz spuštění makra

Příspěvek od Branscombe »

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 ...
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: 29 srp 2008 16:49

Re: Excel VBA - zákaz spuštění makra

Příspěvek od navstevnik »

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:

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.
Uživatelský avatar
Poki
Level 2
Level 2
Příspěvky: 237
Registrován: 09 pro 2009 17:01

Re: Excel VBA - zákaz spuštění makra

Příspěvek od Poki »

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)
Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: 11 čer 2009 21:39

Re: Excel VBA - zákaz spuštění makra

Příspěvek od Branscombe »

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 ... ;-)
Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: 11 čer 2009 21:39

Re: Excel VBA - zákaz spuštění makra

Příspěvek od Branscombe »

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 ??
Přílohy
vzor_Userform.xlsm
(45.83 KiB) Staženo 54 x
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: 29 srp 2008 16:49

Re: Excel VBA - zákaz spuštění makra

Příspěvek od navstevnik »

a co takhle heslo k VBA?
Jen tak naokraj, v uvodnim dotazu problem spociva v necem jinem, nez uvadis nyni.
Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: 11 čer 2009 21:39

Re: Excel VBA - zákaz spuštění makra

Příspěvek od Branscombe »

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ář ...
Přílohy
vzor_Userform.xlsm
(45.99 KiB) Staženo 39 x
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: 29 srp 2008 16:49

Re: Excel VBA - zákaz spuštění makra

Příspěvek od navstevnik »

Nahledni do prilohy.
Přílohy
vzor_Userform-1.xlsm
(46.29 KiB) Staženo 92 x
Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: 11 čer 2009 21:39

Re: Excel VBA - zákaz spuštění makra

Příspěvek od Branscombe »

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 ;-)
Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: 11 čer 2009 21:39

Re: Excel VBA - zákaz spuštění makra

Příspěvek od Branscombe »

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:

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ě ??
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: 29 srp 2008 16:49

Re: Excel VBA - zákaz spuštění makra

Příspěvek od navstevnik »

ad 1. Left(ComboBox6.Value, 8) = "Materiál" Then
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.
Uživatelský avatar
Branscombe
Level 3
Level 3
Příspěvky: 469
Registrován: 11 čer 2009 21:39

Re: Excel VBA - zákaz spuštění makra

Příspěvek od Branscombe »

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č ??
Naposledy upravil(a) Branscombe dne 19 lis 2010 12:27, celkem upraveno 1 x.
Odpovědět
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Přechod z Excel 21 na Excel 24
    od Snekment » » v Kancelářské balíky
    2 Odpovědi
    14503 Zobrazení
    Poslední příspěvek od Snekment
  • Spuštění PC
    od Elbeckho » » v Problémy s hardwarem
    11 Odpovědi
    7105 Zobrazení
    Poslední příspěvek od Kminek
  • Chybová hláška your device ran into a problem and needs to restart při spuštění pc
    od nevim1050 » » v Vše ostatní (hw)
    10 Odpovědi
    14556 Zobrazení
    Poslední příspěvek od buchtik
  • Pohoda a excel
    od brownwld » » v Kancelářské balíky
    1 Odpovědi
    7425 Zobrazení
    Poslední příspěvek od atari
  • Excel 2016 - vzorec kombinace podmínek
    od MK_Vs » » v Kancelářské balíky
    5 Odpovědi
    6226 Zobrazení
    Poslední příspěvek od lubo.

Zpět na „Kancelářské balíky“