• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Celwaarde activeert macro1, macro 2 of macro3

Status
Niet open voor verdere reacties.

RekenwonderNiels

Gebruiker
Lid geworden
29 jul 2016
Berichten
26
Beste iedereen,

Er zijn veel website's en forums te vinden over het activeren van een macro als een celwaarde veranderd, bijvoorbeeld:



Code:
Private Sub Worksheet_Calculate()
If [A1] = [A2] Then Exit Sub
[A2] = [A1]
If [A1] < 1 Then
MsgBox "start macro 1"
Else
MsgBox "start macro 2"
End If
End Sub

Maar ik zoek een macro die ook een "start macro 3" heeft, en naar cel [T2] kijkt, en daaruit kiest of macro1, macro2 of macro3 moet starten..
In het programmacode van het tabblad draait al een macro:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
 If Not Intersect(Target, Columns(4)) Is Nothing Then Volgendescan
 
End Sub

Ik heb van alles geprobeerd, maar ik krijg alleen foutmeldingen. kan iemand mij op weg helpen?


Bekijk bijlage Voorraadbeheer.xlsm
 
Stel dat [T2] de waarde 1, 2 of 3 heeft, dan gaat een van de macro's starten.
Code:
sub kies_macro()
  select case [T2]
    case 1
       msgbox "macro_1"
    case 2
       msgbox "macro_2"
    case 3
      msgbox "macro_3"
  end select
end sub

Of:

Code:
sub kies_macro()
dim sv
  sv = application.match([T2], array(1, 2, 3), 0)
  if not iserror(sv) then application.run array("macro1", "macro2", "macro3")(sv - 1)
end sub
 
Laatst bewerkt:
Helemaal duidelijk!

Bedankt Harry dat je mij alweer verder helpt :thumb: en op dat tijdstip!
Na veel pogingen en foutmeldingen bleek dit ook te werken:

Code:
If [T2] = "1" Then
    MsgBox "Start macro1"
End If

If [T2] = "2" Then
    MsgBox "Start macro2"
End If

If [T2] = "3" Then
    MsgBox "Start macro3"
End If

Maar dan ziet jou oplossing er beter uit.
Nogmaals bedankt :thumb:
 
Er zijn nog wel een aantal methoden.
Waarom je die van mij niet aan de praat krijgt weet ik ook zo niet, maar het zal met samengevoegde codes van doen hebben.

Nou ja, wat werkt dat werkt. ;)
Succes.
 
Code:
sub M_snb()
  application.run "macro" & [T2]
end sub
 
Simpel en kort, maar te kort door de bocht @snb.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan