Avatar billede Arne Novice
03. juni 2021 - 16:11 Der er 4 kommentarer og
1 løsning

VBA / Macro

Hvordan løser jeg denne nemmest ?  Jeg skal kunne afvikle forskellige makroer i forhold til indhold i 2 celler. Værdien indtastes først i celle 1, når der indtastes i celle 2, afvikles makro.
Mulige værdier i celle 1,  er 5 forskellige tekster
Mulige værdier i celle 2,  er 3 forskellige tekster

Altså 15 forskellige makroer
Avatar billede Jan K Ekspert
03. juni 2021 - 17:06 #1
Det nemmeste vil være at lave en emkelt makro, der undersøger, hvad der er tastet ibde to celler og så har15 forskellige udfald. Så skal du heller ikke holde styr på, hvilken makro, der aktuelt skal køres.
Avatar billede Mads32 Ekspert
03. juni 2021 - 22:04 #2
Hej  Arne.

Du spørger hvordan du nemmest kan løse din opgave. Det er bestemt ikke med en makro.

Når det ikke drejer sig om flere kombinationer er 2 tabeller der de datavaliderede en nemmeste løsning

Jeg vedhæfter en fil

https://www.dropbox.com/s/kn10825cc6ehzrj/VBA_Macro_mads32.xlsx?dl=0

m v h mads32
Avatar billede jens48 Ekspert
03. juni 2021 - 22:28 #3
Er ikke enig med Mads32. Det afhænger helt af hvad de 15 makroer skal lave. Men jeg har lavet et lille skelet af en makro der ud fra to cellers indhold vælger en af 15 makroer. De to celler er i dette tilfælge C1 med 5 valgmuligheder og C2 med 3 valgmuligheder. Og så bruger jeg select case for at vælge den relevante makro, som jeg ikke kender og derfor kun ses som 'Din makro i alle 15 tilfælde. "a", "b", "c", "d", "e", "A", "B" og "C" skal skiftes ud med dine valgmuligheder

Sub FemtenMuligheder()
x = WorksheetFunction.Match(Range("C1"), Array("a", "b", "c", "d", "e"), 1) * 10 + WorksheetFunction.Match(Range("C2"), Array("A", "B", "C"), 1)
Select Case x
Case 11
'Din makro
Case 12
'Din makro
Case 13
'Din makro
Case 21
'Din makro
Case 22
'Din makro
Case 23
'Din makro
Case 31
'Din makro
Case 32
'Din makro
Case 33
'Din makro
Case 41
'Din makro
Case 42
'Din makro
Case 43
'Din makro
Case 51
'Din makro
Case 52
'Din makro
Case 53
'Din makro
End Select

End Sub
Avatar billede store-morten Ekspert
10. juni 2021 - 12:28 #4
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2")) Is Nothing Then

x = Range("A1")
Y = Range("A2")

Select Case x

Case Is = "a"
    Select Case Y
        Case Is = "a"
            Call a_a
        Case Is = "b"
            Call a_b
        Case Is = "c"
            Call a_c
        Case Else
    MsgBox ("Forkert eller manglende data i celle: A2")
    End Select
   
Case Is = "b"
    Select Case Y
        Case Is = "a"
            Call b_a
        Case Is = "b"
            Call b_b
        Case Is = "c"
            Call b_c
        Case Else
    MsgBox ("Forkert eller manglende data i celle: A2")
    End Select
   
Case Is = "c"
    Select Case Y
        Case Is = "a"
            Call c_a
        Case Is = "b"
            Call c_b
        Case Is = "c"
            Call c_c
        Case Else
    MsgBox ("Forkert eller manglende data i celle: A2")
    End Select
   
Case Is = "d"
    Select Case Y
        Case Is = "a"
            Call d_a
        Case Is = "b"
            Call d_b
        Case Is = "c"
            Call d_c
        Case Else
    MsgBox ("Forkert eller manglende data i celle: A2")
    End Select
   
Case Is = "e"
    Select Case Y
        Case Is = "a"
            Call e_a
        Case Is = "b"
            Call e_b
        Case Is = "c"
            Call e_c
        Case Else
    MsgBox ("Forkert eller manglende data i celle: A2")
    End Select
   
Case Else
MsgBox ("Forkert eller manglende data i celle: A1")
End Select

    End If
End Sub

Sub a_a()
MsgBox "Der er valgt a og a"
End Sub
Sub a_b()
MsgBox "Der er valgt a og b"
End Sub
Sub a_c()
MsgBox "Der er valgt a og c"
End Sub

Sub b_a()
MsgBox "Der er valgt b og a"
End Sub
Sub b_b()
MsgBox "Der er valgt b og b"
End Sub
Sub b_c()
MsgBox "Der er valgt b og c"
End Sub

Sub c_a()
MsgBox "Der er valgt c og a"
End Sub
Sub c_b()
MsgBox "Der er valgt c og b"
End Sub
Sub c_c()
MsgBox "Der er valgt c og c"
End Sub

Sub d_a()
MsgBox "Der er valgt d og a"
End Sub
Sub d_b()
MsgBox "Der er valgt d og b"
End Sub
Sub d_c()
MsgBox "Der er valgt d og c"
End Sub

Sub e_a()
MsgBox "Der er valgt e og a"
End Sub
Sub e_b()
MsgBox "Der er valgt e og b"
End Sub
Sub e_c()
MsgBox "Der er valgt e og c"
End Sub
Avatar billede jens48 Ekspert
14. juni 2021 - 10:41 #5
Flot detaljering store-morten.
Og nu må det så være Arnes tur til at svare på om det foreslåede kan bruges
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester