• 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.

Macro starten als tekst in cel

Status
Niet open voor verdere reacties.

PatrickT22

Gebruiker
Lid geworden
25 mrt 2016
Berichten
17
Ik wil in Excel een macro starten als cel S87 de tekst "Paniek" bevat. Cel S87 is een validatie veld op basis van een keuzenlijst.

Ik krijg het niet voor elkaar, kan iemand mij helpen?
 
Zoiets

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$S$87" And Target.Value = "Paniek" Then
    Application.EnableEvents = False
    MsgBox "Paniek"
    Application.EnableEvents = True
End If
End Sub

Waarbij je de msgbox moet vervangen door jouw macro.
 
Helaas, ik krijg bij de eerste regel bij het woord Change de volgende foutmelding:

Complieerfout:
Verwacht: instructie-einde

Wat doe ik fout?
 
Kan je even jouw bestandje plaatsen. Want je vermeldt er niet bij hoe je het hebt toegepast.

De code hoort thuis in de bladmodule van het blad waar je de controle wil doen.
 
zoek de paar verschillen

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$3" And Target.Value = "Chips" Then
    Application.EnableEvents = False
    Chips
    Application.EnableEvents = True
End If
End Sub
 
Ja stom van me ... tekst tussen " " en MsgBox laten staan.

Het is gelukt, bedankt voor je hulp:thumb:
 
Da's VBA;) Gebruik overigens geen samengevoegde cellen en beter ook geen select en activate als je met VBA gaat 'spelen'.
 
Dat kan toch rustig in één code afgehandeld worden?
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$3" And Target.Value = "Chips" Then
  With Sheets("Details Chips")
      .Visible = True
      Application.Goto .[b4]
   End With
End If
End Sub

Ik vermoed dat je dus meerdere cases hebt.
In dat geval gebruik je 'select case'
 
@HVS: Thanks, dat werkt inderdaad ook en is net even iets makkelijker.

Als ik meerdere cases wil schrijven, hoe moet ik dit dan doen (waar plaats ik de 'select case').
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("C3:C6")) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    Select Case Target
        Case "Chips"
            'Chips
        Case "Cola"
            'Cola
        Case "Bier"
            'Bier
        Case "Patat"
            'Patat
    End Select
    Application.EnableEvents = True
End Sub
Het actieve bereik is ook aangepast: niet alleen cel C3 triggert nu de macro, maar het bereik C3:C6.
 
Top, werkt ook .... maar dat wist je natuurlijk al :thumb:

En wat dan te doen met het volgende: De situatie zoals door jou uitgelegd met range C3:C6 PLUS een andere keuzelijst in cel E16:E21. Moet ik dan twee scripts schrijven of moet dat in 1 script? In mijn beleving krijg ik een conflict als ik twee scripts schijf (Dubbelzinnige Compileerfout)
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("[COLOR="#FF0000"]C3:C6,E16:E21[/COLOR]")) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    On Error Resume Next
    Select Case Target.Value
        Case "Chips"
            'Chips
        Case "Cola"
            'Cola
        Case "Bier"
            'Bier
        Case "Patat"
            'Patat
        Case Else
            MsgBox Target
    End Select
    Application.EnableEvents = True
End Sub
De On Error Resume Next is nodig om fouten af te vangen die waarschijnlijk worden veroorzaakt door de samengevoegde cellen.
Tip: gebruik geen samengevoegde cellen, en al helemaal niet als je met VBA aan de slag gaat.
 
Bedankt voor je snelle reactie, ik ga kijken of ik dit werkend krijg. Ik snap nu wat er fout gaat bij de samengevoegde cellen.

Welke "beginners" cursus VB raden jullie aan, ik wil me hier verder in verdiepen.
 
Laatst bewerkt:
'VBA voor dummies' klinkt misschien niet erg complimenteus maar is een goed begin.
Als je dat een beetje doorhebt kun je verder met VBA for smarties van helper snb.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan