< návrat zpět

MS Excel


Téma: Spustit určité makra změnou hodnoty v buňce rss

Zaslal/a 10.11.2022 22:57

Dobrý den,
nefunguje mi makro, může někdo poradit ?

Sub worksheet_change(ByVal target As Range)
Set target = Range("A1")
If target.Value = "1" Then
Call Makro1
End If
If target.Value = "2" Then
Call Makro2
End If
End Sub

Při spuštění makra mi excel spadne 7

Zkoušel jsem ještě

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Cells.Count > 1 Then Exit Sub
If IsNumeric(Target) And Target.Address = "$A$1" Then
Select Case Target.Value
Case 1 To 1: Macro1
End Select
End If
End Sub

Toto makro mi funguje, ale když přidám výběr na základě hodnoty buňky více maker tak sice chybu nehlásí, ale nic se neděje, potřeboval bych toto

když buňka (nebo jiná buňka, dle výběru ) obsahuje "1" spustí se makro1, když "2" spustí makro2 atd.

Toto makro také nefunguje

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Cells.Count > 1 Then Exit Sub
If IsNumeric(Target) And Target.Address = "$A$1" Then
If IsNumeric(Target) And Target.Address = "$A$2" Then
If IsNumeric(Target) And Target.Address = "$A$3" Then
If IsNumeric(Target) And Target.Address = "$A$4" Then
If IsNumeric(Target) And Target.Address = "$A$5" Then
Select Case Target.Value
Case 1: Makro1
Case 2: Makro2
Case 4: Makro4
Case 5: Makro5
End Select
End If
End Sub

Příloha: zip53801_sesit1.zip (12kB, staženo 4x)
Zaslat odpověď >

Strana:  « předchozí  1 2 3   další »
#053820
elninoslov
no ale ono mi to nejde, mám office 2021

nejde to makro, alebo nejde nahrať prílohu?
nahrál jsem jednoduchý sešit

ak je to súbor xlsm (s makrom), treba ho zabaliť do ZIP/RAR. Fórum xlsm nežerie :(citovat
#053821
avatar

elninoslov napsal/a:

Veď som to urobil tak, aby ste si oblasť mohol zvoliť.
Toto:
Range("A1:A5")
nahraďte požadovanou oblasťou (inak v príklade máte 2x A2, to má byť asi A1,A2,A3):
Range("A1:A3,B1:B5,C1:C2")
alebo
Range("A1,A2,A3,B1,B2,B3,B4,B5,C1,C2")
A podľa mňa nie je jedno čo robia tie makrá. Teda nemusí to tak byť. Teraz keď zmením A2 na 2, vykoná sa Makro2 (nakopíruje nejaké data), C1 zmením na 2, a znova Makro2 vykoná to tisté (nakopíruje tie isté data). Nie je to divné ??? Preto hovorím o parametrizácii makra.

Kurňa chlapi, to je dnes dohadovanie v oboch témach o prílohu. Ach jaj...


myslím že je to opravdu jedno tu defakto "smyčku" která by vznikla eliminuje právě konkrétní makro které bude přiřazeno

jedno makro změní jen konkrétní buňku a už se nebude opakovat, protože nebude přiřazeno k další buňce a přiřazená makra nemají vliv na definované buňky pro spuštění makercitovat
#053822
avatar

elninoslov napsal/a:

no ale ono mi to nejde, mám office 2021
nejde to makro, alebo nejde nahrať prílohu?
nahrál jsem jednoduchý sešit
ak je to súbor xlsm (s makrom), treba ho zabaliť do ZIP/RAR. Fórum xlsm nežerie :(


jj už jsem to upravilcitovat
#053823
avatar

elninoslov napsal/a:

Čo??? 100 makier??? Viď koniec môjho predošlého komentu - príloha aspoň s pár makrami. To máte fakt 100 diametrálne typovo odlišných makier, ktoré sa nedajú parametrizovať, aby ich nebolo toľko?


néé byl to jen příklad, ale vlastně by to tak mělo fungovat
100 hodnot 100 maker

hodnta buňky A1 50 - spustí se makro50
hodnta buňky B1 70 - spustí se makro70

atd.citovat
#053828
elninoslov
To Vážne? Toto je tá "príloha"? Popisujete X buniek, ktoré treba kontrolovať a v prílohe je 1. Z toho nie je absolútne zrejmé, ako to má fungovať, keďže ste písal, že hodnota určujúca ktoré makro sa má volať, môže byť vo viacerých bunkách rovnaká. Takže podľa tejto Vašej prílohy čo bude v M13, ak A1=1 a B1=2? V M13 bude "ano" (ako výsledok makra volaného na základe A1) alebo "ne" (ako výsledok makra volaného na základe B1)? A tie makrá, ktoré ste dal na ukážku sú jednoznačne taký druh, ako som popisoval = určite ako jedno makro (či už s parametrom, alebo nie), a nie X makier obdobne podobných.
Očakával som ako prílohu tie makrá. Reálne makrá. Reálne rozloženie buniek v liste/súbore. Jedine čo má byť nereálne (anonymizované) sú dáta samotné. Teda nenapíšete "Ján Novák" ale "První Jméno", nenapíšete "plat 50000" ale "plat 12345". Všetko ostatné má ostať. Podľa Vás nie, ale podľa mňa na tom rozhodne záleží. Napr. či identifikovať číslo makra Indexom alebo Vlookupom. Nebudem popisovať všetky možné varianty riešenia problému ich výhody, podmienky, riziká, logiku apod. Napr. ak sa jedná o zápis nejakej hodnoty do inej bunky na základe zdrojovej bunky, pričom týchto buniek je X a rovnako je X výsledných, a zároveň má každá výsledná bunka Y svojich možných výsledkov, potom nie je potreba makro, stačí vzorec. Vy dodajte čo máte, a my skúsime nájsť riešenie.

Moje nervy ...
Prečo je vždy problém priložiť reálnu prílohu a namiesto toho zahmlievať a neodpovedať na upresňujúce otázky? Napr. ste neodpovedal, či sú tie makrá rovnakého typu (ako ste teraz uviedol v "prílohe").citovat
#053835
avatar
Pardon nenapsal jsem to podle vašeho jazyka ( myslím tím programátorský jazyk 9 )

Trochu jsem si s tím pohrál a spojil jsem makra dohromady-

Priváte makro spouští makro které pak dále spouští ty další - je to jen jeden úkon navíc než jsem chtěl 4 1

Makro uvedené na začátku tématu mi v Worksheet nefungovalo a excel mi padal, ale v modulu pracuje správně.

Private makro ->

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Cells.Count > 1 Then Exit Sub
If IsNumeric(Target) And Target.Address = "$A$1" Then
Select Case Target.Value
Case 1 To 1: Makro1
End Select
End If
End Sub

Makra v modulu ->

Sub Makro1()

Set Target = Range("B1")
If Target.Value = "1" Then
Call Makro2
End If
If Target.Value = "2" Then
Call Makro3
End If
If Target.Value = "3" Then
Call Makro4
End If
If Target.Value = "4" Then
Call Makro5
End If
If Target.Value = "5" Then
Call Makro6
End If

End Sub
Sub Makro2()
Range("Q14").Select
ActiveCell.FormulaR1C1 = "Ano"
Range("Q15").Select
End Sub

Sub Makro3()
Range("Q14").Select
ActiveCell.FormulaR1C1 = "ne"
Range("Q15").Select
End Sub

Sub Makro4()
Range("Q14").Select
ActiveCell.FormulaR1C1 = "nevím"
Range("Q15").Select

End Sub

Sub Makro5()
Range("Q14").Select
ActiveCell.FormulaR1C1 = "asi ne"
Range("Q15").Select
End Sub

Sub Makro6()
Range("Q14").Select
ActiveCell.FormulaR1C1 = "asi ano"
Range("Q15").Select
End Sub

ty kody jsou univerzální jak jsem chtěl, ale asi moc složité, určitě se to dá napsat jednodušeji

jen pro představu, takto mohu mít 100x hodnota a k nim 100x makra

přílohu jsem upravil také do srozumitelnější podoby 1
Příloha: zip53835_private-makro.zip (15kB, staženo 7x)
citovat
#053839
Stalker
Opravdu nepotřebuješ x maker.
Sub Makro1()
Dim Cil As Range
Set Cil = List1.Range("Q14")
Select Case List1.Range("B1").Value
Case 1
Cil.Value = "Ano"
Case 2
Cil.Value = "Ne"
Case 3
Cil.Value = "Nevím"
Case 4
Cil.Value = "Asi ne"
Case 5
Cil.Value = "Asi ano"
Case Else
Cil.Value = "Vymýšlím hovadiny"
End Select
Set Cil = Nothing
End Sub
citovat
#053840
avatar

Stalker napsal/a:

Opravdu nepotřebuješ x maker.
Sub Makro1()
Dim Cil As Range
Set Cil = List1.Range("Q14")
Select Case List1.Range("B1").Value
Case 1
Cil.Value = "Ano"
Case 2
Cil.Value = "Ne"
Case 3
Cil.Value = "Nevím"
Case 4
Cil.Value = "Asi ne"
Case 5
Cil.Value = "Asi ano"
Case Else
Cil.Value = "Vymýšlím hovadiny"
End Select
Set Cil = Nothing
End Sub


Pěkný 9 a pak že to nejde 3citovat
#053841
elninoslov

"Kivan" napsal/a:

a pak že to nejde

O čom to hovoríte ??? Snáď nie o nedostatku niečej snahy ?! Môžete mi vysvetliť, ako do toho zapadá Vami požadovaná vlastnosť volať rovnaké makro z rôznych buniek? A ako toto makro rieši Vami požadovaný viacnásobný cieľ, prípadne jeden cieľ ale menený viacerými bunkami, ktoré ste spomínal?
Keďže ste odpovedal tuším všeho-všudy na 1 či 2 moje upresňovacie otázky, tak Vašich smajlíkov fakt neberiem. Vnímam ich ako narážku (ak nie rovno urážku).
Pekný deň.
=IFERROR(CHOOSE(B1;"Ano";"Ne";"Nevím";"Asi ne";"Asi ano";"Vymýšlím hovadiny");"---")
=IFERROR(ZVOLIT(B1;"Ano";"Ne";"Nevím";"Asi ne";"Asi ano";"Vymýšlím hovadiny");"---")

alebo
=IFERROR(VLOOKUP(B1;Tabuľka hodnôt;2;FALSE);"---")
=IFERROR(SVYHLEDAT(B1;Tabuľka hodnôt;2;NEPRAVDA);"---")
citovat
#053843
avatar
Elnino, ty musíš mať strašne veľa času a energie, riešiť veci ľuďom, čo ani nevedia, čo chcú 5 5 5citovat

Strana:  « předchozí  1 2 3   další »

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

Čas od do

lubo • 19.4. 16:30

Makro smyčka

MilanKop • 19.4. 10:46

Makro smyčka

elninoslov • 19.4. 9:02

Čas od do

elninoslov • 19.4. 8:46

Čas od do

jarek1111 • 18.4. 13:46

Čas od do

lubo • 18.4. 11:13

Čas od do

jarek1111 • 18.4. 8:32