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

Cel detecteren waarin een plaatje staat

Status
Niet open voor verdere reacties.

caffie

Gebruiker
Lid geworden
2 jan 2008
Berichten
291
ik heb een sheet met diverse macros
Deze macro heb ik gekoppeld aan een plaatje
nu wil ik dus als ik de macro start weten op welke cel het plaatjes zicht bevind


voorbeeld
ik heb macro gekoppeld aan plaatjes in cel a3, a5 ,a7 en a9
nu druk ik dus op een plaatje en wordt de macro geactiveerd


Omdat de macro op deze cellen bijna het zelfde doen
is het van belang dat ik de positie van het plaatje kan bepalen
Dus als ik op het plaatje druk wat op a7 zit dat ik deze cel informatie terug kan lezen


Vast bedankt
 
Met de TopLeftCell eigenschap van een plaatje kan je nagaan waar het plaatje staat.
 
ik heb een sheet met diverse macros
Deze macro heb ik gekoppeld aan een plaatje
nu wil ik dus als ik de macro start weten op welke cel het plaatjes zicht bevind


voorbeeld
ik heb macro gekoppeld aan plaatjes in cel a3, a5 ,a7 en a9
nu druk ik dus op een plaatje en wordt de macro geactiveerd


Omdat de macro op deze cellen bijna het zelfde doen
is het van belang dat ik de positie van het plaatje kan bepalen
Dus als ik op het plaatje druk wat op a7 zit dat ik deze cel informatie terug kan lezen


Vast bedankt

Je kan ook bij het declareren van je Sub de volgende gebruiken:
Code:
Private Sub Plaatje(ByVal Target As Range)
msgbox Target.Address
End Sub

Dan zal je zien welk Address er wordt getoond.
Als dat klopt met jouw inschatting dan kan je daar verder meer gaan.

Wim
 
Of je wilt weten welk plaatje (naam) je klikte. Dat kan je doen met de Caller eigenschap van het object Application. Zie bijlage voor een voorbeeld.

Groet, Leo

P.s. er hoort eigenlijk nog een extra plaatje in het bestand, maar dan kon ik 'm niet meer uploaden (ook met zip bleef tie te groot)
 

Bijlagen

Laatst bewerkt:
De code van Leo nog wat uitgebreid:

Code:
Sub WelkePlaatje()
    
    MsgBox ActiveSheet.Shapes(Application.Caller).Name & " (" & _
           ActiveSheet.Shapes(Application.Caller).TopLeftCell.Address & ")"
           
End Sub

Wigi
 
jullie hebben me op een idee gebracht


want is het ook mogenlijk om dit zelfde toe doen zonder het plaatje

Dus als ik op een bepaalde cel klik er een actie wordt uitgevoerd

b,v



celpositie = ActiveSheet.Celadres

Select Case celpositie
Case "a5"
aktie1
Case "a25"
Aktie2
Case "a45"
Aktie3
Case "a65"
Aktie4
Case Else
Doe niets
End Select

Vast bedankt voor alle tips en hulp
 
jullie hebben me op een idee gebracht


want is het ook mogenlijk om dit zelfde toe doen zonder het plaatje

Dus als ik op een bepaalde cel klik er een actie wordt uitgevoerd

Dat doet de code van Leo toch al?

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox ("Je selecteerde cel " & Target.Row & ", " & Target.Column & ".")
End Sub

Wigi
 
Caffe, Ja dat kan ook. Dit moet je dan wel doen met het Worksheet_BeforeDoubleClick event van de worksheet waar je bezig bent. Je vraagt dan via een Select Case de 'Target' uit.
(ff je voorbeeld overgenomen....)
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Select Case Target.Address(False, False)
 Case "a5"
   aktie1
 Case "a25"
   Aktie2
 Case "a45"
   Aktie3
 Case "a65"
   Aktie4
 Case Else
   Doe niets
End Select

End Sub
Je moet dan wel 'dubbelklikken' in de cel ipv je verzochte 'aanklikken'...

Groet, Leo
 
Laatst bewerkt:
Leo

Waarom dubbelklik? Met een enkele klik kan het toch ook (jij had er al code voor :thumb:)

Wigi
 
Dat doet de code van Leo toch al?
Ik wist niet eens meer dat dit blokje in het workbook stond. Voorbeeld-workbook had ik ooit gemaakt en dus nog ergens in m'n archief staan (altijd makkelijk).

Zo lijkt het blokje me meer van deze tijd.... (qua mijn eigen hedendaags niveau:D)
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    MsgBox ("Je selecteerde regel " & Target.Row & " en kolom " & Target.Column & ". (=cel: " & Target.Address(False, False) & ")")
End Sub

Groet, Leo
 
Laatst bewerkt:
ik heb een sheet met diverse macros
Deze macro heb ik gekoppeld aan een plaatje
nu wil ik dus als ik de macro start weten op welke cel het plaatjes zicht bevind


voorbeeld
ik heb macro gekoppeld aan plaatjes in cel a3, a5 ,a7 en a9
nu druk ik dus op een plaatje en wordt de macro geactiveerd


Omdat de macro op deze cellen bijna het zelfde doen
is het van belang dat ik de positie van het plaatje kan bepalen
Dus als ik op het plaatje druk wat op a7 zit dat ik deze cel informatie terug kan lezen


Vast bedankt


Ik heb een voorbeeld bijgevoegd

misschien dat ik het hellemaal verkeerd heb aangepakt
Want de oplossing werkt wel
maar als ik dus nu op een andere regel dubbel klik
werk de macro ook
en verberg hij de verkeerde regels

omdat een voorbeeld meer zegt als als deze tekst heb ik me sheet aangepast zodat deze hier geplaatst kon worden
de sheet heeft in ±30 namen
en 10 groepen voor het eten

zoals je kan zien gebrui ik nu heeeel veel macro's om het te laten werken
daar wil ik graag vanaf
andere TIP of aanpassingen zijn natuurlijk ook welkom


Vast bedankt voor alle hulp
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan