ps84
28.09.10,15:44
Ahoj,
Potrebujem poradiť ako prepojím text v bunke s vytvoreným makrom.
Predstavujem si to tak, že keď kliknem na text v bunke alebo aj na celú bunku tak sa spustí makro. dá sa to vôbec?

Dik moc za pomoc.

A ešte da sa to spravyť aj tak, že by so kliknutí na text spustilo najprv prvé makro a potom druhe makro?
PaloPa
30.09.10,12:39
Vyskúšaj si priložený súbor.
VBA kód - ALT+F11

Palo
ps84
30.09.10,13:33
Dik za pomoc, ale asi som to zle vysvetlil čo potrebujem. Nechcem aby sa makro spustilo po kliknutí na tlačidlo ale po kliknutí na text v bunke. Malo by to fungovať asi tak že po kliknutí napr na tvoj text v bunke C2 (Makro_A) by sa spustilo makro. Asi tak.
marjankaj
30.09.10,19:59
Dik za pomoc, ale asi som to zle vysvetlil čo potrebujem. Nechcem aby sa makro spustilo po kliknutí na tlačidlo ale po kliknutí na text v bunke. Malo by to fungovať asi tak že po kliknutí napr na tvoj text v bunke C2 (Makro_A) by sa spustilo makro. Asi tak.

No tak skús toto.

A medzi nami. Je v tom až taký podstatný rozdiel?
PaloPa
01.10.10,07:29
Variant môže byť viacero, napr na DblClick
P.
marjankaj
01.10.10,07:38
Variant môže byť viacero, napr na DblClick
P.

Áno môže. To musí zadávateľ upresniť, ako to chce mať. DblClick na dve bunky naraz asi nepôjde. V predchádzajúcom príklade si môže vybrať aj viac buniek a príslušné makrá sa spustia.
ps84
01.10.10,11:31
To je super takto som si to predstavoval. Klobuk dole. dik dik moc
ps84
01.10.10,13:43
Dúfam, že už moc neotravujem ale vôbec netuším ako ste to tam dostali

a už viem :)

Ale aj tak to ešte nieje ok. lebo v bunke musí byť napísaný názov makra aby to fungovalo a ja potrebujem mať v bunke napísane napr. AAA a spusti sa makro PRIDAJ_RIADOK
marjankaj
01.10.10,13:48
Dúfam, že už moc neotravujem ale vôbec netuším ako ste to tam dostali

ALT+F11
a pozri na list SHEET1

Je to "procedúra", ktorá sa spustí ak nastanú dané podmienky. V prvom prípade ak urobíš výber oblasti, alebo urobíš dvojitý klik na danú bunku v prípade druhom.

Ale aj tak si myslím, že je lepšie spúšťať makro tak, ako je to v prvom prípade - tlačítkom. Klikať na bunku nie je až také výrazné, a niekto by to mohol spustiť aj omylom.
marjankaj
01.10.10,14:15
Dúfam, že už moc neotravujem ale vôbec netuším ako ste to tam dostali

a už viem :)

Ale aj tak to ešte nieje ok. lebo v bunke musí byť napísaný názov makra aby to fungovalo a ja potrebujem mať v bunke napísane napr. AAA a spusti sa makro PRIDAJ_RIADOK

Tak si uprav kód



If x.value="AAA" then
Application.run PRIDAJ_RIADOK
Endif


alebo




Select Case x.Value
Case "AAA"
Application.Run pridaj_riadok
Case "BBB"
Application.Run makro1
Case Else
Application.Run makro2
End Select
ps84
01.10.10,15:01
Upravil som to takto ale to asi nebude dobre.




Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim x As Range, xObl As Range
Dim xMacro As String

On Error GoTo xErr
Set xObl = Selection
Set prienik = Application.Intersect(Target, Worksheets("Sheet1").Range("C2:C4"))
If C2.Value = "AAA" Then
Application.Run Makro_A
Exit Sub

xErr:
MsgBox "makro s názvom '" & xMacro & "' neexistuje!", vbCritical, "CHYBA"
Resume Next

End If


End Sub
marjankaj
01.10.10,21:36
...
ps84
02.10.10,07:16
Je to dobre až na jeden problém, keď si označím riadok alebo stĺpec výberu ("C2:C4") tak sa zažne sam posúvať výber bunky na koniec riadku alebo stĺpca.
marjankaj
02.10.10,07:42
Je to dobre až na jeden problém, keď si označím riadok alebo stĺpec výberu ("C2:C4") tak sa zažne sam posúvať výber bunky na koniec riadku alebo stĺpca.

Neviem, prečo klikáš na celý stĺpec?
Radšej použi ten druhý spôsob dvojklik od PaloPa.

Pred END SELECT vlož toto


Case Else
MsgBox " nebolo vybrané žiadne makro."
Exit Sub
ps84
02.10.10,17:51
neviem prečo ale vyhadzuje mi to chybu ked to makro použijem v inom zošite
marjankaj
02.10.10,18:06
neviem prečo ale vyhadzuje mi to chybu ked to makro použijem v inom zošite

Uprav si riadok na
Set prienik = Application.Intersect(Target, Worksheets("Hárok1").Range("A2:A30"))

Toto funguje iba na liste "Hárok1"

V pôvodnom bolo uvedené "Sheet1"
PaloPa
03.10.10,11:29
Prípadne si to zovšeobecni pre ľubovoľný názov hárku:

Set prienik = Application.Intersect(Target, ActiveSheet.Range("A2:A30"))
ps84
07.10.10,20:27
čaute

najprv poďakujem za predošlú pomoc
a teraz by som potreboval pomôcť ešte s ďalšími vzorcami. Viac v prílohe sú dosť komplikované a neviem či je to vôbec možne spraviť.

vopred vdaka