Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketAuto aktivering af makro ved en bestemt celleværdi

 Besvar Besvar Side  <12
Forfatter
Blackbox Se dropdown
Forum Begynder
Forum Begynder


Medlem: 08.Jul.2016
Land: Danmark
Status: Offline
Point: 14
Direkte link til dette indlæg Sendt: 29.Jul.2016 kl. 08:57
Hejsa....

Jeg kan bare ikke få det til at virke.... CryCryCry.

Når jeg i macro skriver den macro den skal trække så udføre den godt nok opgaven, men melder også fejl i "Application.Run "macro"

Jeg forstår det bare ikke... eller måske indsætter jeg den macro son den skal trække forkert... HJÆLP.

Mvh.

Per
Til top



Til top
zpjj Se dropdown
Sølv bruger
Sølv bruger
Avatar

Medlem: 08.Maj.2013
Land: Danmark
Status: Offline
Point: 179
Direkte link til dette indlæg Sendt: 28.Jul.2016 kl. 14:31
Wink Her er lige en upload på tideligere kode.
/uploads/856/BlackBox1.xlsm" rel="nofollow">uploads/856/BlackBox1.xlsm
Med venlig hilsen
Peter Juul

Jeg bruger EXCEL 2010
Til top
EXCELGAARD Se dropdown
Platin bruger
Platin bruger


Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5419
Direkte link til dette indlæg Sendt: 28.Jul.2016 kl. 13:56
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Til top
zpjj Se dropdown
Sølv bruger
Sølv bruger
Avatar

Medlem: 08.Maj.2013
Land: Danmark
Status: Offline
Point: 179
Direkte link til dette indlæg Sendt: 12.Jul.2016 kl. 11:10
Jeg kan kun give dig ret Smile
Så det som en lille udfordring, "Maybe we can use it in another afsnit" Big smile
Med venlig hilsen
Peter Juul

Jeg bruger EXCEL 2010
Til top
EXCELGAARD Se dropdown
Platin bruger
Platin bruger


Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5419
Direkte link til dette indlæg Sendt: 12.Jul.2016 kl. 10:47
Jo,jo, Zpjj,

Du havde jo hele grund ideen rigtigt, med at benytte 'Application.Run' i stedet for 'Call'. Thumbs Up

Og, alle skal da vide, at jeg er stor tilhænger af VBA, men når man nu lettere, hurtigere og mere sikkert, kan lave det i selve regnearket, så er man da et skarn, hvis man ikke gør det Smile
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Til top
zpjj Se dropdown
Sølv bruger
Sølv bruger
Avatar

Medlem: 08.Maj.2013
Land: Danmark
Status: Offline
Point: 179
Direkte link til dette indlæg Sendt: 12.Jul.2016 kl. 10:10
Hej EXELGAARD
 
Det har du helt ret i, man lærer hele tiden noget nyt herinde.
Det er derfor at dette forum er så kanon godt :-)
Med det første forslag, ville jeg bare gøre det meget simpelt, så han kunne se hvad der sker.
Med venlig hilsen
Peter Juul

Jeg bruger EXCEL 2010
Til top
EXCELGAARD Se dropdown
Platin bruger
Platin bruger


Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5419
Direkte link til dette indlæg Sendt: 12.Jul.2016 kl. 09:51
Hvis det er nummeret i cellen, der angiver, hvilken makro, der skal køres, må jeg så ikke foreslå en lidt mere simpel Event Smile
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.Run "Macro_" & Range("A1").Value
End Sub
...og, så benytte 'Datavalidering' i selve regnearket til at sørge for, at værdien i A1 ikke går ud over de mulige afgræsninger.


Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Til top
zpjj Se dropdown
Sølv bruger
Sølv bruger
Avatar

Medlem: 08.Maj.2013
Land: Danmark
Status: Offline
Point: 179
Direkte link til dette indlæg Sendt: 11.Jul.2016 kl. 21:20
Hej Per
 
Her er en lidt anden måde at gøre det på. Smile
Håber du kan bruge noget af det Smile
 
Følgende ligges i Sheet1:
 
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim y As Variant
  Dim x As Integer
  Dim macro As String
 
    y = ActiveSheet.Range("A1").Value   'Henter værdi fra A1 som Variant
   
    If Not IsNumeric(y) Then                  'Checker om værdien er et tal
        Exit Sub                                      'Hvis værdien ikke er et tal, gå til slut sub
    End If
   
    x = ActiveSheet.Range("A1").Value   'Henter værdi fra A1 som Integer
    If x < 1 Or x > 21 Then                    'Checker om værdien ligger mellem 1 og 21
        Exit Sub                                       'Hvis værdien ikke ligger mellem 1 og 21, gå til slut sub
    End If
 
    macro = "macro" & x                      'Navngiver macro med det nummer der er valgt F.eks. macro15
    Application.Run (macro)                  'Kører macro15 som ligger i Modul1
End Sub
 
De næste ligges i Modul1:

Sub macro1()
MsgBox "A1 er lig med 1" 'Udskift dette med den macro du vil køre.
End Sub

Sub macro2()
MsgBox "A1 er lig med 2" 'Udskift dette med den macro du vil køre.
End Sub

Sub macro3()
MsgBox "A1 er lig med 3" 'Udskift dette med den macro du vil køre.
End Sub

Sub macro4()
MsgBox "A1 er lig med 4" 'Udskift dette med den macro du vil køre.
End Sub

Sub macro5()
MsgBox "A1 er lig med 5" 'Udskift dette med den macro du vil køre.
End Sub

Sub macro6()
MsgBox "A1 er lig med 6" 'Udskift dette med den macro du vil køre.
End Sub

Sub macro7()
MsgBox "A1 er lig med 7" 'Udskift dette med den macro du vil køre.
End Sub

Sub macro8()
MsgBox "A1 er lig med 8" 'Udskift dette med den macro du vil køre.
End Sub

Sub macro9()
MsgBox "A1 er lig med 9" 'Udskift dette med den macro du vil køre.
End Sub

Sub macro10()
MsgBox "A1 er lig med 10" 'Udskift dette med den macro du vil køre.
End Sub

Sub macro11()
MsgBox "A1 er lig med 11" 'Udskift dette med den macro du vil køre.
End Sub

Sub macro12()
MsgBox "A1 er lig med 12" 'Udskift dette med den macro du vil køre.
End Sub

Sub macro13()
MsgBox "A1 er lig med 13" 'Udskift dette med den macro du vil køre.
End Sub

Sub macro14()
MsgBox "A1 er lig med 14" 'Udskift dette med den macro du vil køre.
End Sub

Sub macro15()
MsgBox "A1 er lig med 15" 'Udskift dette med den macro du vil køre.
End Sub

Sub macro16()
MsgBox "A1 er lig med 16" 'Udskift dette med den macro du vil køre.
End Sub

Sub macro17()
MsgBox "A1 er lig med 17" 'Udskift dette med den macro du vil køre.
End Sub

Sub macro18()
MsgBox "A1 er lig med 18" 'Udskift dette med den macro du vil køre.
End Sub

Sub macro19()
MsgBox "A1 er lig med 19" 'Udskift dette med den macro du vil køre.
End Sub

Sub macro20()
MsgBox "A1 er lig med 20" 'Udskift dette med den macro du vil køre.
End Sub

Sub macro21()
MsgBox "A1 er lig med 21" 'Udskift dette med den macro du vil køre.
End Sub

 

 
 
Med venlig hilsen
Peter Juul

Jeg bruger EXCEL 2010
Til top
zpjj Se dropdown
Sølv bruger
Sølv bruger
Avatar

Medlem: 08.Maj.2013
Land: Danmark
Status: Offline
Point: 179
Direkte link til dette indlæg Sendt: 11.Jul.2016 kl. 08:22
Hej Per
 
Det kan laves lidt mere simpelt, men nedenstående giver lidt mere forståelse for hvad der sker.
Sæt det ind i F.eks. Sheet1
Håber du kan bruge det og giver mening :-)
 
Private Sub Worksheet_Change(ByVal Target As Range)
    Select Case Range("A1").Value
 
          Case 1
              Call macro1 'Kalder macro1
 
          Case 2
              Call macro2 'Kalder macro2
 
          Case 3
              Call macro3 'Kalder macro3
 
          Case 4
              Call macro4 'Kalder OSV......
 
          Case 5
              Call macro5
 
          Case 6
              Call macro6
 
          Case 7
              Call macro7
 
          Case 8
              Call macro8
 
          Case 9
              Call macro9
             
          Case 10
              Call macro10
 
          Case 11
              Call macro11
 
          Case 12
              Call macro12
 
          Case 13
              Call macro13
 
          Case 14
              Call macro14
 
          Case 15
              Call macro15
 
          Case 16
              Call macro16
 
          Case 17
              Call macro17
 
          Case 18
              Call macro18
 
          Case 19
              Call macro19
          
          Case 20
              Call macro20
 
          Case 21
              Call macro21

          Case Else
              Exit Sub
    End Select

End Sub
 
Sub macro1()
MsgBox "A1 er lig med 1" 'Udskift dette med den macro du vil køre.
End Sub
 
Sub macro2()
MsgBox "A1 er lig med 2" 'Udskift dette med den macro du vil køre.
End Sub
 
Sub macro3()
MsgBox "A1 er lig med 3" 'Udskift dette med den macro du vil køre.
End Sub
 
Sub macro4()
MsgBox "A1 er lig med 4" 'Udskift dette med den macro du vil køre.
End Sub
 
Sub macro5()
MsgBox "A1 er lig med 5" 'Udskift dette med den macro du vil køre.
End Sub
 
Sub macro6()
MsgBox "A1 er lig med 6" 'Udskift dette med den macro du vil køre.
End Sub
 
Sub macro7()
MsgBox "A1 er lig med 7" 'Udskift dette med den macro du vil køre.
End Sub
 
Sub macro8()
MsgBox "A1 er lig med 8" 'Udskift dette med den macro du vil køre.
End Sub
 
Sub macro9()
MsgBox "A1 er lig med 9" 'Udskift dette med den macro du vil køre.
End Sub
 
Sub macro10()
MsgBox "A1 er lig med 10" 'Udskift dette med den macro du vil køre.
End Sub
 
Sub macro11()
MsgBox "A1 er lig med 11" 'Udskift dette med den macro du vil køre.
End Sub
 
Sub macro12()
MsgBox "A1 er lig med 12" 'Udskift dette med den macro du vil køre.
End Sub
 
Sub macro13()
MsgBox "A1 er lig med 13" 'Udskift dette med den macro du vil køre.
End Sub
 
Sub macro14()
MsgBox "A1 er lig med 14" 'Udskift dette med den macro du vil køre.
End Sub
 
Sub macro15()
MsgBox "A1 er lig med 15" 'Udskift dette med den macro du vil køre.
End Sub
 
Sub macro16()
MsgBox "A1 er lig med 16" 'Udskift dette med den macro du vil køre.
End Sub
 
Sub macro17()
MsgBox "A1 er lig med 17" 'Udskift dette med den macro du vil køre.
End Sub
 
Sub macro18()
MsgBox "A1 er lig med 18" 'Udskift dette med den macro du vil køre.
End Sub
 
Sub macro19()
MsgBox "A1 er lig med 19" 'Udskift dette med den macro du vil køre.
End Sub
 
Sub macro20()
MsgBox "A1 er lig med 20" 'Udskift dette med den macro du vil køre.
End Sub
 
Sub macro21()
MsgBox "A1 er lig med 21" 'Udskift dette med den macro du vil køre.
End Sub
 
Med venlig hilsen
Peter Juul

Jeg bruger EXCEL 2010
Til top
Blackbox Se dropdown
Forum Begynder
Forum Begynder


Medlem: 08.Jul.2016
Land: Danmark
Status: Offline
Point: 14
Direkte link til dette indlæg Sendt: 11.Jul.2016 kl. 07:30
Hej Peter.... Smile

Jeg er desvære meget ny inde for makro´er, så skal lige have lidt mere hjælp Smile.

Når du skriver "Call macro", hvilken makro referer den så til ?
Det jeg skal bruge er at hvis celle A1 = 1, skal den selv aktiver makro1, hvis celle A1 =2, skal den aktiver makro2, osv frem til makro21

Håber du kan hjælpe mig, på forhånd tak.

/Per Smile


Til top
zpjj Se dropdown
Sølv bruger
Sølv bruger
Avatar

Medlem: 08.Maj.2013
Land: Danmark
Status: Offline
Point: 179
Direkte link til dette indlæg Sendt: 08.Jul.2016 kl. 13:41
Hej
 
Prøv denne Smile
 
Private Sub Worksheet_Change(ByVal Target As Range)
If Sheets("Sheet1").Range("A1") = 1 Then
    Call macro
End If
End Sub
 
Sub macro()
MsgBox "A1 er lig med 1"
End Sub
Med venlig hilsen
Peter Juul

Jeg bruger EXCEL 2010
Til top
Blackbox Se dropdown
Forum Begynder
Forum Begynder


Medlem: 08.Jul.2016
Land: Danmark
Status: Offline
Point: 14
Direkte link til dette indlæg Sendt: 08.Jul.2016 kl. 08:40
Hejsa...

Håber at i kan hjælpe mig.

Hvor kan man få en makro til at aktiver hvis en celleværdi evt er 1 og ikke hvis den er 0 ?

På forhånd tak.
Til top
 Besvar Besvar Side  <12

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk