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

Commandbutton Tekst wijzigen

Status
Niet open voor verdere reacties.

frank1985

Gebruiker
Lid geworden
7 aug 2009
Berichten
39
Hallo,

In mijn Excel bestand heb ik een Commandbutton.
Cel F18 en Cel F19 kan alleen een datum ingevuld worden.

Als cel F19 leeg is en cel F18 ingevuld dan moet Commandbutton1 ingeschakeld zijn en er "Offerte maken" komen te staan, en als er op wordt gedrukt dan start Macro1.

Als cel F18 leeg is en F19 is ingevuld dan moet Commandbutton1 ingeschakeld zijn en er "Offerte wijzigen" komen te staan, en als er op wordt gedrukt dan start Macro2.

Als cel F18 én F19 leeg zijn dan moet er in Commandbutton1 "Offerte maken" komen te staan, en Commandbutton1 uitgeschakeld zijn (je kunt er op drukken maar er gebeurt niets omdat cel F18 én F19 leeg zijn.

Ik hoop dat het zo duidelijk genoeg is uitgelegd.
Wie kan mij hierbij helpen? Alvast hartelijk dank!

Groet Frank
 
Heb je een commandbutton op je werkblad of een Userform? Als het op het werkblad is, is dat dan een ActiveX- of een formulierknop?
 
Waarom niet een knop "maken" en een knop "wijzigen"? Dat is toch véél duidelijker voor een gebruiker en hoef jij als ontwikkelaar je niet in 100 bochten te wringen om dit storingsvrij aan te kunnen bieden. Als je persé 1 knop wilt, zou ik het nog eerder afhandelen met een "tussenscherm". Dus een popup formulier waarin je een datum laat plaatsen en dan de keuze geeft uit 2 knoppen op dat formulier...
 
@edmoor: ActiveX commandbutton op mijn werkblad
@Ginger: De keuze uit twee knoppen moet niet kunnen. Als er in de database een datums staat betekend dat dat de offerte al is gemaakt en deze alleen gewijzigd kan worden. En twee knoppen past niet in mijn opmaak.
 
Het opschrift van de knop kan je als volgt wijzigen:
Code:
Sub tst()
    'Knop: =INSLUITEN("Forms.CommandButton.1";"")
    ActiveSheet.CommandButton1.Caption = "Opschrift"
End Sub

Je kan dan iets als dit doen:
Code:
Private Sub CommandButton1_Click()
    Select Case ActiveSheet.CommandButton1.Caption
        Case "Maken":    Call MakenMacro
        Case "Wijzigen": Call WijzigenMacro
    End Select
End Sub

De knop inactief maken doe je zo:
Code:
ActiveSheet.CommandButton1.Enabled = False

Uiteraard vervang je False door True als hij weer actief moet worden.
 
Ik kan het nog niet helemaal volgen, dit heb ik nu:

Code:
Private Sub CommandButton1_Click()
    If Range("D3").Text = 1 Then
        CommandButton1.Caption = "Wijzigen"
        Else
        CommandButton1.Caption = "Maken"
    End If
End Sub

Het werkt, maar je moet eerst op CommandButton1 klikken voordat de naam veranderd:confused: Hoe kan dit?
Voor de regel "If Range("D3").Text = 1 Then" zou ik graag een vergelijking hebben die kijkt of een cel een datum bevat. Hoe kan ik dit het beste doen?

Hoe krijg ik onderstaand gekoppeld aan mijn Commandbutton1?

Code:
Private Sub CommandButton1_Click()
    Select Case ActiveSheet.CommandButton1.Caption
        Case "Maken":    Call MakenMacro
        Case "Wijzigen": Call WijzigenMacro
    End Select
End Sub

Ik ben zoals je ziet nog niet zo erg ervaren, maar beetje bij beetje met hulp komt het wel..
 
De tekst voor die knop moet dus bepaald worden aan de hand van de waarde van D3. Dan moet je die controle in het werkblad doen. Dus met dit achter het werkblad:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Range("D3") = 1 Then
        CommandButton1.Caption = "Wijzigen"
    Else
        CommandButton1.Caption = "Maken"
    End If
End Sub

De andere code aan de knop koppelen doe je door het blad in Ontwerpmode te zetten, dan met rechts te klikken op de knop en vervolgens te kiezen voor Programmacode weergeven.
 
Laatst bewerkt:
Is het Selectionchange event wel het beste event om dit te doen, dan runt dat bij iedere cel die je aanklikt. Misschien beter om het Change event te gebruiken, dan verandert de knop alleen bij een wijziging aan een cel?
 
Je kan ook aangeven dat hij alleen loopt als je een bepaalde cel verlaat. A1 bijvoorbeeld:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address <> "$A$1" Then Exit Sub
    If Range("D3") = 1 Then
        CommandButton1.Caption = "Wijzigen"
    Else
        CommandButton1.Caption = "Maken"
    End If
End Sub

Maar het Change event kan uiteraard ook. Het is maar net wat de behoefte is.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan