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

Knoppen van kleur laten veranderen na een klik

Status
Niet open voor verdere reacties.

fanis01

Gebruiker
Lid geworden
12 feb 2011
Berichten
104
Hallo,
Ik heb een 6tal knoppen gemaakt via de toolbar en aan de zelf recorded macros gekoppeld. De macros doen voor mij simpel plak werk op bepaalde cellen.
Om hergebruik van een knop te voorkomen wil ik dat een knop die al geklikt is, dat die een kleurtje krijgt. Of de letters van de naam van de knop of de achtergrond.
Hierbij de opgenomen macro:

Sub Plakken1()
'
' Plakken1 Macro
' De macro is opgenomen op 24-2-2011 door u005221.
'

'
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select
End Sub
Sub Plakken2()
'
' Plakken2 Macro
' De macro is opgenomen op 24-2-2011 door u005221.
'

'
Range("A50").Select
ActiveSheet.Paste
Range("A1").Select
End Sub
Sub Plakken3()
'
' Plakken3 Macro
' De macro is opgenomen op 24-2-2011 door u005221.
'

'
Range("A100").Select
ActiveSheet.Paste
Range("A1").Select
End Sub
Sub Plakken4()
'
' Plakken4 Macro
' De macro is opgenomen op 24-2-2011 door u005221.
'

'
Range("A150").Select
ActiveSheet.Paste
Range("A1").Select
End Sub
Sub Plakken5()
'
' Plakken5 Macro
' De macro is opgenomen op 24-2-2011 door u005221.
'

'
Range("A200").Select
ActiveSheet.Paste
Range("A1").Select
End Sub
Sub Plakken6()
'
' Plakken6 Macro
' De macro is opgenomen op 24-2-2011 door u005221.
'

'
Range("A250").Select
ActiveSheet.Paste
Range("A1").Select
End Sub

Bij voorbaat dank
Fanis
 
Gaat dat om ActiveX knoppen? Formulier knoppen? Shape knoppen? En op welk moment moet een knop welke kleur krijgen en op welk moment moet dat weer terug naar de originele kleur? Is het disablen van de knop wellicht handiger dan alleen een andere kleur geven? Want welke kleur een knop ook heeft, als hij nog steeds actief is kan er sowieso op worden geklikt waarbij de macro weer wordt uitgevoerd.
 
Laatst bewerkt:
zo bv

Code:
Sub Plakken1()
sh = Application.Caller
With ActiveSheet.Shapes(sh).TextFrame.Characters.Font
.ColorIndex = IIf(.ColorIndex = 3, 1, 3)
End With
rest code....
End Sub

Niels
 
Ja, alleen zou ik er dan zoiets van maken zodat je niet achter iedere knop die code hoeft te herhalen. Dat is handiger als er iets in die code moet veranderen:
Code:
Sub Plakken1()
    Call ZetKleur(Application.Caller)
    ActiveSheet.Paste Range("A1")
    Application.Goto Range("A1")
End Sub

Sub ZetKleur(Knop As String)
    With ActiveSheet.Shapes(Knop).TextFrame.Characters.Font
        .ColorIndex = IIf(.ColorIndex = 3, 1, 3)
    End With
End Sub

De .Select verwijderd.

Of dit:
Code:
Sub Plakken()
    Dim cel As String
  
    Select Case Application.Caller
        Case "Knop 1":  cel = "A1"
        Case "Knop 2":  cel = "A50"
        Case "Knop 3":  cel = "A100"
        Case "Knop 4":  cel = "A150"
        Case "Knop 5":  cel = "A200"
        Case "Knop 6":  cel = "A250"
    End Select
    
    With ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Font
        .ColorIndex = IIf(.ColorIndex = 3, 1, 3)
    End With
    
    ActiveSheet.Paste Range(cel)
    Application.Goto Range("A1")
End Sub
Dan kunnen alle andere Subs voor die knoppen weg.
 
Laatst bewerkt:
Hallo,
Ik ben niet zo thuis in die codes.
Ik heb de bestaande macro vervangen door uw code en ik krijg het volgende bericht:

Cannot run the macro "test button.xls'Plakken1' The macro may not be available in this workbook or all macros may be disabled.

Kunt u het misschien toepassen in het voorbeeld bestand?

Bij voorbaat dank
Fanis
 
Hallo,
Ik heb het geprobeert, maar hij plakt niets,
Ik krijg het volgende bericht:

Run-time error '1004'
Method 'Range of object'-Global' failed.

Ik heb geen idee wat dat betekent.

Bij voorbaat dank
Fanis
 
Je heb het voorbeeldbestand getest? Bij mij werkt het.
Heb je wel iets gekopieerd?

waar komt de info vandaan die je daar plakt?
er zijn manieren dat je die ook niet hoeft te kopieren maar alles de macro laat doen.

Niels
 
Laatst bewerkt:
Die melding krijg je als je kopiebuffer (Klembord) leeg is.
 
Gebruik gewoon een wisselknop, die is daarvoor bedoeld.
 
Hallo,
Ik zal uit leggen wat ik gedaan heb:
Ik open het bestand dat u bewerkt hebt. Ik blijf op werkblad 5, waar u ook gewerkt hebt.
Ik kopieer een aantal gegevens en ik klik op een knop. (De knoppen functioneren als een parkeerwachter. Die plakken alleen maar op een bepaalde cel)
Dan krijg ik het bericht wat ik eerder heb genoemd. (Run-time error '1004' ezv.)

Ik begrijp niet wat ik fout doe. Ik open het bestand en klik op een knop, meer niet.

Bij voorbaat dank
Fanis
 
Hallo,
Nu werkt het wel, maar voor een deel.
Alleen de eerste knop werk gelijk. (met plakken en met kleur dat rood wordt)
Bij alle andere knoppen verandert alleen de kleur maar zonder dat er daadwerkelijk iets geplakt wordt.
Dus: De tweede knop in de eerste poging zie je alleen kleur maar geen plakresultaat. Bij de tweede poging wordt de kleur weer zwart en wordt niets geplakt.
Pas bij de derde poging wordt er geplakt en de kleur wordt weer rood.

Doe ik iets verkeerd?
Bij voorbaat dank
Fanis
 
Hallo,
Ik heb de code zelf aangepakt. Het is me gelukt.
Bedankt allemaal.
Groeten Fanis
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan