Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: button (met macro) met ingebouwde plaats  (gelezen 4563 keer)

0 leden en 1 gast bekijken dit topic.

Offline Justaguy

  • Lid
  • *
  • Berichten: 86
  • Wie zoekt, die vindt ... het in Oplossing.be
button (met macro) met ingebouwde plaats
« Gepost op: 26 maart 2007, 21:49:41 »
Kan men een button waaraan een macro vasthangt een positie-aanduiding geven en deze vastleggen in VBA?
Dit om voor meerdere buttons op verschillende plaatsen in hetzelfde werkblad met éénzelfde macro te werken.

Simpel voorbeeld :
de eerste 10 cellen onder de button moeten in het vet komen of iets dergelijks.
SYSTEEM: AMD Athlon 1Ghz - 256Mb RAM - Win XP - Office2003 – kabel)

Offline Erik Van Geit

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 306
  • Geslacht: Man
Re: button (met macro) met ingebouwde plaats
« Reactie #1 Gepost op: 26 maart 2007, 22:16:02 »
Hallo,

... toevallig online ...
Je kan altijd refereren naar de "TopLeftCell".
Als de knop gemaakt is met de werkbalk "formulieren", kan je "Application.Caller" gebruiken om te weten welke button de code aanriep.

een voorbeeldje
Sub test()
Dim BtnTLC As Range     'Button TopLeftCell

Set BtnTLC = ActiveSheet.Shapes(Application.Caller).TopLeftCell
MsgBox BtnTLC.Address
BtnTLC.Resize(10) = 123
End Sub
beste groeten,
Erik

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.283
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: button (met macro) met ingebouwde plaats
« Reactie #2 Gepost op: 28 maart 2007, 09:12:23 »
Erik, ff uit pure nieuwsgierigheid... Je kan een sheet-form-button benaderen als je z'n naam weet (bijvoorbeeld 'button1'). Het is dan mogelijk om de tekst e.d. te veranderen.
Maar is het omgekeerde óók mogelijk? Ik bedoel dat je kan achterhalen op WELKE button is geklikt? Ik weet wel hoe je kan reageren op alle key functies van het toetsenbord, maar deze vraag blijft toch maar bij me door zeuren.... :(
(de reden van deze vraag is dat ik als oplossing liep te zoeken naar een 'select case' methode en dan dus uit te vragen op welke button er geklikt was...)

Groet, Leo
______________________________

Groet, Leo

Offline Erik Van Geit

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 306
  • Geslacht: Man
Re: button (met macro) met ingebouwde plaats
« Reactie #3 Gepost op: 28 maart 2007, 11:19:49 »
Leo,

Citaat
dat je kan achterhalen op WELKE button is geklikt
Je vraag is me niet duidelijk in die zin dat het antwoord reeds in mijn vorige post staat.
Citaat
kan je "Application.Caller" gebruiken om te weten welke button de code aanriep

beste groeten,
Erik

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.283
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: button (met macro) met ingebouwde plaats
« Reactie #4 Gepost op: 28 maart 2007, 11:50:25 »
Citaat van: Erik
dat het antwoord reeds in mijn vorige post staat
Oeps... :-[ Sorry, niet op die manier geïnterpreteerd...

Dus als ik je goed begrijp kan je ipv de eigenschap '.TopLeftCell' de eigenschap '.Name' gebruiken?  ???

Groet, Leo

EDIT: Erik, dank voor deze oplossing! Ik heb het ff uitgeprobeerd en '.Name' werkt uitstekend! DAAR kan ik wel weer dingen mee!  ;) ;D
______________________________

Groet, Leo

Offline Erik Van Geit

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 306
  • Geslacht: Man
Re: button (met macro) met ingebouwde plaats
« Reactie #5 Gepost op: 28 maart 2007, 20:59:51 »
Leo,
Ja, met Name kan je dingen doen, maar het is meestal beter om met het object zelf te blijven werken.

Set Btn = ActiveSheet.Shapes(Application.Caller)enzovoort

tot ziens,
Erik

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.283
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: button (met macro) met ingebouwde plaats
« Reactie #6 Gepost op: 28 maart 2007, 22:13:03 »
Erik, het werken met Set moet ik nog maar 'ns gaan nalezen in wat naslagwerk... Daar snap ik de toepassing nog niet (echt) van. ??? :(

Maareh.... wat denk je van deze oplossing voor Justaguy? Hier was IK in iedergeval (voor Justaguy) naar op zoek... ;)Sub WelkeButton()
Dim sKnopNaam As String
sKnopNaam = ActiveSheet.Shapes(Application.Caller).Name

    Select Case sKnopNaam
        Case "Button 1"
            Range("E6:E10").Interior.ColorIndex = Int((30 - 1 + 1) * Rnd + 1)
'            de volgende regel werk niet! dit moet met Select (snap niet waarom!!!)
'            ActiveSheet.Shapes("Button 1").Characters.Text = "color index " & Range("E6:E10").Interior.ColorIndex
            ActiveSheet.Shapes("Button 1").Select
            Selection.Characters.Text = "color index " & Range("E6:E10").Interior.ColorIndex
            Range("E5").Select
        Case "Button 2"
            Range("M19:M23").Interior.ColorIndex = 8
        Case "Button 3"
            Range("G27:G31").Interior.ColorIndex = 13
        Case "Button 4"
            Range("O38:O42").Interior.ColorIndex = 6
        Case Else
            Range("E6:E10,M19:M23,G27:G31,O38:O42").Interior.ColorIndex = xlNone
    End Select
   
End Sub
(zie ook bijlage voor het resultaat in een sheet)

Groet, Leo

EDIT: bestand toegevoegd
______________________________

Groet, Leo

Offline Erik Van Geit

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 306
  • Geslacht: Man
Re: button (met macro) met ingebouwde plaats
« Reactie #7 Gepost op: 28 maart 2007, 22:22:18 »
Leo,

Dat is ingewikkeld !
We mogen van een goed uitgewerkt werkblad wel wat structuur verwachten. Elke knop heeft dan - relatief gesproken - hetzelfde bereik op het werkblad. Zie mijn eerste macro.
Ik ben geen moderator, maar je bent nu zowat de topic aan het "hi-jacken" naar mijn gevoel. De vraag van Justaguy was
Citaat
Kan men een button waaraan een macro vasthangt een positie-aanduiding geven en deze vastleggen in VBA?
Daarop volgde naar mijn mening een kort, afdoend antwoord: 'k wacht nu Justaguys reactie af. Als je zelf vragen hebt, Leo, kan je toch ook een topic starten !?

beste groeten,
Erik

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.283
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: button (met macro) met ingebouwde plaats
« Reactie #8 Gepost op: 28 maart 2007, 22:31:03 »
Erik, het "hi-jacken" valt wel mee! IK reageer namelijk op dit stukje in de vraag van Justaguy:
Citaat van: Justaguy
Dit om voor meerdere buttons op verschillende plaatsen in hetzelfde werkblad met éénzelfde macro te werken.

Simpel voorbeeld :
de eerste 10 cellen onder de button moeten in het vet komen of iets dergelijks.
Als je met deze vragen mijn code bekijkt, is dat (volgens mij) precies wat er gevraagd wordt. (Je kan het nu ook bekijken in de bijlage-sheet. Het lukte in 1e instantie niet om die te up-loaden door toedoen van het bijwerken van virusupdates van Norton... :()

Het was dus zeker niet de bedoeling een eigen topic te starten, slechts de bedoeling om de TopicStarter óók te helpen volgens het idee dat ik had toen ik de 1e keer de vraag zag. Dankzij jouw antwoord op die vraag kon ik dus verder. Vandaar mijn 'tussen' vragen... ;)

Groet, Leo
______________________________

Groet, Leo

Offline Justaguy

  • Lid
  • *
  • Berichten: 86
  • Wie zoekt, die vindt ... het in Oplossing.be
Re: button (met macro) met ingebouwde plaats
« Reactie #9 Gepost op: 29 maart 2007, 20:40:50 »
Citaat
Set BtnTLC = ActiveSheet.Shapes(Application.Caller).TopLeftCell
hallo,
zoveel reactie had ik niet verwacht maar de eerste topic (zie hierboven) had me al goed op weg geholpen,
nl. 10 buttons op verschillende plaatsen in het werkblad maar die dezelfde macro uitvoeren doch dit op de plaats waar de button zich bevindt.

Natuurlijk heb ik ook de andere reacties nauwkeurig gelezen. Het is altijd interessant hoe een simpele vraag dat menig hersengekronkel kan leiden en zelfs tot verschillende oplossingen.

Op naar het volgende probleem zou ik zo zeggen  ;D
SYSTEEM: AMD Athlon 1Ghz - 256Mb RAM - Win XP - Office2003 – kabel)

 


www.combell.com