• 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 d.m.v. hyperlink

Status
Niet open voor verdere reacties.

kabebanaan

Terugkerende gebruiker
Lid geworden
29 jun 2001
Berichten
1.204
Ik heb een macro genaamd "SorteerkolomA"

In een cel (bijv. A1) staat de waarde "SorteerkolomA"
Ik wil eigenlijk dat de waarde in A1 dmv een formule wordt omgezet in een hyperlink die de macro op zijn beurt weer aanstuurt.
Is dit mogelijk en hoe?

Is het überhaupt mogelijk een macro aan te sturen middels een hyperlink?
 
Of zet dit achter het Blad :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Target = 1 Then
macronaam
End If

Dit is voor cel A1 als er het cijfer 1 in staat start de macro.
Je moet nog wel de macronaam aanpassen aan uwe macro.

Pierre



Waar dien ik dit achter te zetten.
Is me niet geheel duidelijk?
 
In het blad waarin dit dient te gebeuren, klik je rechts op de bladtab (onderaan). Kies Programmcode weergeven. Plak de code in the Code scherm. Klaar!

Verander macronaam dus bv. door: sorteren, ervan uitgaande dat jouw sorteermacro de naam: sorteren meekreeg.

Wigi
 
In het blad waarin dit dient te gebeuren, klik je rechts op de bladtab (onderaan). Kies Programmcode weergeven. Plak de code in the Code scherm. Klaar!

Verander macronaam dus bv. door: sorteren, ervan uitgaande dat jouw sorteermacro de naam: sorteren meekreeg.

Wigi

Code invoeren is gelukt, alleen geeft dit als resultaat dat de macro wordt uitgevoerd wanneer ik de teskt in een aangegeven cel typ.

Wat ik wil is dat wanneer ik op cel A1 klik de macro wordt gestart die dezelfde naam heeft als in de waarde A1 staat.
 
Karel

Ik denk dat we dit lukt:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
macronaam
End If

En macronaam weer vervangen.

Test het en laat het ons weten aub. Excuses aangenomen :D

Wigi
 
Ik krijg een "Compileerfout" ... er wordt een "End Sub" verwacht.
Ik heb nog geprobeerd om de regel "End Sub" eronder te zetten, maar ook dan werkt 't niet.
 
Karel,

inderdaad End Sub ontbrak.

Ik heb het voorgedaan in bijgevoegd bestand.

Er is code voor Blad1 en ook een macro genaamd 'vet'.

Ga naar cel A1 en de macro 'vet' wordt uitgevoerd. Het zet A1 in het vet.

Kan je het aanpassen voor jouw situatie?

Wigi
 

Bijlagen

Wigi,

Het begint erop te lijken.
Maar hoe verwerk ik het één en ander in het voorbeeldbestand dat ik heb toegevoegd?

Als je dit bestand bekijkt, en je klikt op bijvoorbeeld cel "B1" dan wordt de macro "Actie_Komedie" gestart.
Nu wil ik het zo hebben dat ik direct op cel "A1" kan klikken en dat dan de macro wordt gestart, die dezelfde naam heeft als de inhoud van cel "A1"

Als je me hiermee zou kunnen helpen zou dat geweldig zijn. (Of iemand anders natuurlijk :thumb: )
 

Bijlagen

Laatst bewerkt:
K@rel

zet deze code achter Genre:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Target
    Case Range("A1"), Range("A2"), Range("A3"), Range("A4")
        Application.Run (Target.Value)
End Select
End Sub

Als ik nog tijd vind probeer ik de code van de macrorecorder te verbeteren. Beloof niets.

Wigi
 
Als ik nog tijd vind probeer ik de code van de macrorecorder te verbeteren. Beloof niets.

Wigi

Is goed.

Het lijkt er al aardig op datgene dat ik wil.
Alleen dien ik nu de code in "Genre" iedere keer te veranderen wanneer er in kolom "A" weer nieuwe cellen komen te staan.
Wanneer er in cel "A5" de genre "Misdaad" wordt toegevoegd, dan zal ik Range("A5") moeten toevoegen in de code.

Even ter info: De gegevens uit kolom "A" komen uit een ander blad en kunnen variabel zijn.
(Het voorbeeld documentje is een stukje uit m'n DVD-bestand.)

Ik hoop dat je nog wat tijd kunt vinden, al heeft 't hier geen haast.
 
Alleen dien ik nu de code in "Genre" iedere keer te veranderen wanneer er in kolom "A" weer nieuwe cellen komen te staan. Wanneer er in cel "A5" de genre "Misdaad" wordt toegevoegd, dan zal ik Range("A5") moeten toevoegen in de code.

Doe dan dit:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Target
    If .Column = 1 And .Count = 1 And .Value <> "" Then Application.Run (.Value)
End With
End Sub

Wigi
 
Werkt prima, bedankt tot zover .........

Nog 1 optimalisatie:
Ik zou nu graag willen dat als er voor een cel in kolom "A" nog geen macro is aangemaakt, deze cel gekleurd wordt weergegeven.
Ik krijg nu een foutmelding wanneer de macro niet aanwezig is.

Is dit ook mogelijk?
 
Voilà, net nog een inspanning geleverd. Hier is de veel simpelere code :thumb:

Voor Genre:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Target
    If .Count > 1 Then
        Exit Sub
    ElseIf .Column = 1 And .Value <> "" Then
        Call Genre(.Value)
    Else: Exit Sub
    End If
End With
End Sub

Voor de module:

Option Explicit

Code:
Sub Genre(bladnaam As String)

Application.ScreenUpdating = False
With Sheets(bladnaam)
    .Cells.ClearContents
    .Cells.Interior.ColorIndex = xlNone
End With

Sheets("DVD bestand").Select
Cells.AutoFilter Field:=2, criteria1:=Replace(bladnaam, "_", " / ")
Selection.CurrentRegion.Copy Destination:=Sheets(bladnaam).Range("A1")

Range("A1").Select

Sheets("DVD bestand").Select
Application.CutCopyMode = False
Selection.AutoFilter
Range("A1").Select
Sheets(bladnaam).Select
Application.ScreenUpdating = True

End Sub

Dit werkt zolang "Criteria1" hetzelfde is als Bladnaam (de naam van het tabblad), maar dan _ wordt [spatie]/[spatie]. Indien, zoals bij Komedie, geen _ wordt gebruikt dan werkt het ook.

Test het en laat het mij / ons weten. Ik vermoed dat dit wel een pak beter zal zijn... :D

Wigi
 
Hoi Wigi,

Wat bedoel je precies met Option Explicit.
En zet ik het tweede gedeelte in module 1?

Ik krijg nu een foutmelding:
attachment.php
 

Bijlagen

  • Foutmelding.JPG
    Foutmelding.JPG
    22,3 KB · Weergaven: 33
Laatst bewerkt:
FYI

Je bijlage komt niet door. Als die nog nodig is, zet dan in een zip-file.

Wigi
 
Nope Karel. Zip-filetje...


****** EDIT ********

Okee Wigi,

Ik had je tweede code niet in "Module 1" gezet, maar in "This Workbook"
Nu ik de code in "Module 1" heb ingevoerd lopen de macro's als een trein. :)

Bedankt voor het meedenken/helpen !! :thumb:
 

Bijlagen

Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan