2016-11-09 3 views
0

An diesem Link gibt es eine sehr gute Lösung ist eine One-Befehlsschaltflächen über einen One bestimmten Zelle zu platzieren. Place a command button in a cell MS Excel vbaPlatz ein ‚Zwei-Befehlsschaltflächen‘ Over ‚One Handy‘ Excel VBA

Aber was, wenn wir zwei verschiedene Tasten auf einer Zelle hinzufügen mögen?

Zum Beispiel CommandButton1 sollte linke Seite von F3 Zelle haften bleiben, und CommandButton2 zur rechten Seite von F3-Zell bleiben sollte. (So ​​linke Hälfte von F3 wird CommandButton1 und die andere Hälfte der Zelle F3 wird CommandButton2)

Dank.

+0

Folgen Sie den Anweisungen in der Antwort, die Sie auf die linke Taste verknüpft und stellen eine Breite der Zellenbreite von 2. D. h geteilt haben .Breite = (rng.Breite)/2. Wenn Sie diesen und den linken buttons.left Wert hinzufügen, dann ist es der rechte Knopf .left Wert. – Stax

+0

Ich habe bereits eine Antwort gefunden, nachdem ich sie gepostet habe, auch als Antwort für alle. Aber danke für dein Interesse @Stax – Mertinc

Antwort

0

Interessanter fand ich eine Antwort nach der Frage von mir veröffentlichen. Ich teile es für andere, die nach der gleichen Lösung suchen.

Sub mertinc() 

    Dim rng As Range 
    Set rng = ActiveSheet.Range("g1") 

    soldan = Columns("g").Left 
    genislik = Columns("g").Width 
    hedefim= (soldan + genislik/2) 

    With ActiveSheet.OLEObjects("CommandButton1") 
     .Top = rng.Top 
     .Left = rng.Left 
     .Width = rng.Width/2 
     .Height = rng.RowHeight 
    End With 
     With ActiveSheet.OLEObjects("CommandButton2") 
     .Top = rng.Top 
     .Left = hedefim 
     .Width = rng.Width/2 
     .Height = rng.RowHeight 
    End With 

End Sub 

Zum einen bin Ändern der Größe I erste Taste als die Hälfte der Breite der Zelle mit: .Width = rng.Width/2 und es zu Zelle Left-Eigenschaft Platzierung mit: .Left = rng.Left

Danach bin ich auf die zweite Schaltfläche wieder als die Hälfte der Zelle Ändern der Größe Breite mit: .Width = rng.Width/2 und dann ist ich platzieren es auf Cell Left propert + die Hälfte davon Breite mit .Left = hedefim
==> hedefim bereits oben beschrieben, wird als soldan + genislik mit:

soldan = Columns("g").Left 
    genislik = Columns("g").Width 
    hedefim= (soldan + genislik/2)