FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Adding button in excel with FW
Posts: 1195
Joined: Mon Oct 17, 2005 05:41 AM

Adding button in excel with FW

Posted: Fri Apr 08, 2022 09:31 AM

Hi,

Does anyone have an example how to add a button on an excel-sheet?

Thank you,

Regards,

Marc



FWH32+xHarbour | FWH64+Harbour | BCC | DBF | ADO+MySQL | ADO+MariaDB | ADO+SQLite
Posts: 218
Joined: Mon Feb 07, 2022 09:54 PM

Re: Adding button in excel with FW

Posted: Sat Apr 09, 2022 02:26 PM
Hi Marc.
Sorry, I don't know how to do this with FWH and ole commands.
But here an example for adding a button tonabworksheet of excel.
Code (fw): Select all Collapse
 Sub AddButtonAndCode() 
     ' Declare variables
    Dim i As Long, Hght As Long 
    Dim Name As String, NName As String 
     ' Set the button properties
    i = 0 
    Hght = 305.25 
     ' Set the name for the button
    NName = "cmdAction" & i 
     ' Test if there is a button already and if so, increment its name
    For Each OLEObject In ActiveSheet.OLEObjects 
        If Left(OLEObject.Name, 9) = "cmdAction" Then 
            Name = Right(OLEObject.Name, Len(OLEObject.Name) - 9) 
            If Name >= i Then 
                i = Name + 1 
            End If 
            NName = "cmdAction" & i 
            Hght = Hght + 27 
        End If 
    Next 
     ' Add button
    Dim myCmdObj As OLEObject, N% 
    Set myCmdObj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _ 
    Link:=False, DisplayAsIcon:=False, Left:=52.5, Top:=Hght, _ 
    Width:=202.5, Height:=26.25) 
     ' Define buttons name
    myCmdObj.Name = NName 
     ' Define buttons caption
    myCmdObj.Object.Caption = "Click for action" 
     ' Inserts code for the button
    With ThisWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule 
        N = .CountOfLines 
        .InsertLines N + 1, "Private Sub " & NName & "_Click()" 
        .InsertLines N + 2, vbNewLine 
        .InsertLines N + 3, vbTab & "MsgBox(" & """" & "Button Clicked!" & """" & " & vbCrLf &" & _ 
        """" & "Put your code here!" & """" & " & vbCrLf & " & """" & "This is " & """" & _ 
        "& " & """" & NName & """" & ")" 
        .InsertLines N + 4, vbNewLine 
        .InsertLines N + 5, "End Sub" 
    End With 
End Sub

Perhaps this could give you an idea?
Regards,
Detlef

Continue the discussion