Makro, které vymaže ovládací prvky vložené makrem

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

Moderátor: Mods_senior

lurban
nováček
Příspěvky: 7
Registrován: duben 15
Pohlaví: Nespecifikováno
Stav:
Offline

Makro, které vymaže ovládací prvky vložené makrem

Příspěvekod lurban » 02 dub 2015 10:53

Dobrý den, potřebuji poradit s tímto problémem: Mám makro, které do listu vloží tři ovládací prvky.
Sub Makro1()
'
' Makro1 Makro
'

'
Range("A4").Select
ActiveSheet.CheckBoxes.Add(1.5, 45, 93.75, 17.25).Select
Selection.Characters.Text = "Zateplení"
With Selection
.Value = xlOff
.LinkedCell = "A4"
.Display3DShading = True
End With
Range("C4").Select
ActiveSheet.CheckBoxes.Add(96, 45, 91.5, 17.25).Select
Selection.Characters.Text = "Výměna zdroje"
With Selection
.Value = xlOff
.LinkedCell = "B4"
.Display3DShading = True
End With
Range("E4").Select
ActiveSheet.CheckBoxes.Add(191.25, 44.25, 99.75, 17.25).Select
Selection.Characters.Text = "Využití odpadního tepla"
With Selection
.Value = xlOff
.LinkedCell = "C4"
.Display3DShading = True
End With
Range("B2").Select
End Sub

Je podmíněně spouštěno dalším makrem na základě hodnoty v buňce B2. Když je B2="5.1" vloží se ovládací prvky.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim VRange As Range

Set VRange = Range("B2") 'hlídaná buňka

If Union(Target, VRange).Address = VRange.Address Then

If VRange = "5.1" Then Call Makro1 'zavolá makro vase_makro


End If

End Sub

Nyní ale potřebuji, aby když se hodnota B2 změní, ovládací prvky zase zmizely. Zkoušel jsem přes záznam makra, ale nefunguje to.

Nemám zkušenosti, nevím, zda raději vytvořit nové makro, které bude prvky mazat, nebo jestli je možné něco jako undo makra, případně zda to lze vyřešit úpravou spouštěcího makra...

Mohl by mi tedy někdo, prosím, poradit?
Děkuji.

Reklama
Azuzula
Level 3
Level 3
Příspěvky: 452
Registrován: leden 12
Bydliště: Země, bohužel...
Pohlaví: Žena
Stav:
Offline
Kontakt:

Re: Makro, které vymaže ovládací prvky vložené makrem

Příspěvekod Azuzula » 02 dub 2015 12:21

Vítám Tě na PC-HELPu.
Prosím, když sem dáváš nějaký kód, tak ho vkládej do tagu Code pro přehlednost. Děkujeme :)

A teď k dotazu. Nejprve bych checkboxu už při jeho vytvoření přiřadila nějaký název (v ukázce "xyz1"), podle toho jde snadno identifikovat a odstranit.
1.

Kód: Vybrat vše

'vytvoření checkboxu
With ActiveSheet.CheckBoxes.Add(1.5, 45, 93.75, 17.25)
    .Name = "xyz1"
    .Characters.Text = "Zateplení"
    .Value = xlOff
    .LinkedCell = "A4"
    .Display3DShading = True
End With


2.

Kód: Vybrat vše

'odstraní checkbox podle jeho názvu
ActiveSheet.Shapes.Range(Array("xyz1")).Delete

Když budeš chtít mazat víc checkboxů najednou, tak jejich názvy jednoduše přidáš do závorek a oddělíš je čárkou: Array("xyz1","xyz2", atd.)

Tohle celé můžeš nahradit 1. kódem.

Kód: Vybrat vše

Range("A4").Select
ActiveSheet.CheckBoxes.Add(1.5, 45, 93.75, 17.25).Select
Selection.Characters.Text = "Zateplení"
With Selection
.Value = xlOff
.LinkedCell = "A4"
.Display3DShading = True
End With


--- Doplnění předchozího příspěvku (02 Dub 2015 12:33) ---

Mazání checkboxů pak můžeš provádět buď automaticky makrem na základě definované změny na listu v buňce, nebo tlačítkem ručně.
Pokud je to vše.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Problém s ovladači GK Toshiba A350
    od Toshiba-64bit-A350 » 16 bře 2024 10:12 » v Problémy s hardwarem
    16
    1096
    od Toshiba-64bit-A350 Zobrazit poslední příspěvek
    16 bře 2024 21:01
  • Makro pro myš Rapture Python
    od mmmartin » 27 srp 2023 15:18 » v Problémy s hardwarem
    9
    1125
    od mmmartin Zobrazit poslední příspěvek
    29 srp 2023 16:47

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

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti