button in cell plaatsen

Status
Niet open voor verdere reacties.

nootie

Gebruiker
Lid geworden
10 apr 2008
Berichten
104
Hoi,

Ik zou graag een button in een cell plaatsen.

Dit is de code van een macro die ik heb opgenomen ActiveSheet.Buttons.Add(x,y, breedte,hoogte). Maar ik zou die button graag in een range plaatsen: bv range(cells(1,2),cells(2,2)).

Thx
 
ik plaats een reeks gegevens (via vba), maar deze staan nooit op dezelfde plaats en ik wil nu een knop plaatsen die telkens bij de reeks gegevens behoort.
 
Dan zou ik het zo oplossen:

Code:
Option Explicit

Sub AddButtons()

    AddButtonMacro1 2, 1, "Macro1"
    AddButtonMacro2 5, 1, "Macro2"
    AddButtonMacro3 9, 2, "Macro3"

End Sub

Private Sub AddButtonMacro1(iRow As Integer, iCol As Integer, sMacro As String)
       
    Sheets(1).Range(Cells(iRow, iCol), Cells(iRow + 1, iCol)) = sMacro
    Call AddButton(Sheets(1).Range(Cells(iRow, iCol + 1), Cells(iRow + 1, iCol + 1)), sMacro)
    
End Sub

Private Sub AddButtonMacro2(iRow As Integer, iCol As Integer, sMacro As String)

    Sheets(1).Range(Cells(iRow, iCol), Cells(iRow + 2, iCol)) = sMacro
    Call AddButton(Sheets(1).Range(Cells(iRow, iCol + 1), Cells(iRow + 2, iCol + 1)), sMacro)
    
End Sub

Private Sub AddButtonMacro3(iRow As Integer, iCol As Integer, sMacro As String)

    Sheets(1).Range(Cells(iRow, iCol), Cells(iRow + 1, iCol)) = sMacro
    Call AddButton(Sheets(1).Range(Cells(iRow, iCol + 2), Cells(iRow + 1, iCol + 2)), sMacro)
    
End Sub

Private Sub AddButton(oRange As Range, sMacro As String)

    Dim oButton As Object
    
    oRange.Worksheet.Activate
    
    Set oButton = oRange.Worksheet.Buttons.Add(oRange.Left, oRange.Top, oRange.Width, oRange.Height)
    
    With oButton
        .Name = "cmd" & sMacro
        .Characters.Text = sMacro
        .OnAction = sMacro
    End With

End Sub

Private Sub Macro1()
    MsgBox "Macro1!", vbInformation
End Sub

Private Sub Macro2()
    MsgBox "Macro2!", vbInformation
End Sub

Private Sub Macro3()
    MsgBox "Macro3!", vbInformation
End Sub
 
Laatst bewerkt:
Dit vind ik toch nog een redelijke lange en ingewikkelde code, bestaat er niks kleiners en gemakkelijkers:)
 
Makkelijker wordt het niet :eek:
Bekijk de code: waar jij geïnteresseerd in bent is de routine AddButton
De rest van de code roept als test deze Sub 3 maal aan.
Verder bestaan er nog drie dummy-macro's om aan de buttons toe te wijzen.
Het valt dus allemaal erg mee.
Je hoeft alleen maar AddButton aan te roepen met de juiste parameters.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan