Avatar billede densortehingst Seniormester
21. juni 2019 - 12:45 Der er 5 kommentarer

Makro

Ok - jeg giver mig og oprette et sprøgsmål :)

Jeg har en rutine i et regneark, som laver en knap:

        Set MyCell = Cells(y, 1)
        With MyCell
            Set btn = ActiveSheet.Buttons.Add(.Left, .Top, .Width, .Height)
        End With
        With btn
            .Caption = Worksheets("ark1").Cells(x, 12)
            .Name = "Button" & x
            .OnAction = "DeleteData"

Når jeg klikker på knappen sletter den nogle celler i ark1:

Private Sub DeleteData()
    myRow = Mid(Application.Caller, 7)
    LastColumn = 15 '
    For myColumn = 1 To LastColumn
        Worksheets("ark1").Cells(myRow, myColumn).Value = ""
        Worksheets("ark2").Cells(1, 3).Value = ""

    Next

End Sub

Nu kunne jeg godt tænke mig, at den slettede knappen også, så man kun kan bruge den en gang.. Det er sikkert let, men jeg har brugt en hel formiddag på det :(
Avatar billede densortehingst Seniormester
21. juni 2019 - 12:45 #1
>Worksheets("ark2").Cells(1, 3).Value = "" er den linie, som skulle slette knappen :)
Avatar billede jens48 Ekspert
21. juni 2019 - 13:00 #2
Hvis du ikke har andre knapper I arket kan du bruge:

For Each s In ActiveSheet.Shapes
        s.Delete
Next
Avatar billede densortehingst Seniormester
21. juni 2019 - 13:12 #3
Jeg har mange knapper.... :(
Avatar billede jens48 Ekspert
21. juni 2019 - 13:55 #4
Prøv med:

ActiveSheet.Shapes("Button 4").Delete

Husk at rette nummeret
Avatar billede densortehingst Seniormester
25. juni 2019 - 10:20 #5
Hmm Jeg prøver med lidt mere tekst:

Sub ListData()
'
LastRow = Worksheets("ark1").Cells(60000, 3).End(xlUp).Row
y = 3
ActiveSheet.Buttons.Delete
Range("A3:A250").EntireRow.ClearContents

For x = 1 To LastRow
    If Worksheets("ark1").Cells(x, 5) = Range("a2") Then
        Cells(y, 1) = Worksheets("ark1").Cells(x, 5)
        Cells(y, 2) = Worksheets("ark1").Cells(x, 6)
        Cells(y, 3) = Worksheets("ark1").Cells(x, 7)
        Cells(y, 5).Select
        ActiveSheet.Hyperlinks.Add ActiveCell, "", Sheets("Ark1").Name & "!A" & x
        Set MyCell = Cells(y, 6)
        With MyCell
            Set btn = ActiveSheet.Buttons.Add(.Left, .Top, .Width, .Height)
        End With
        With btn
            .Caption = "Slet"
            .Name = "Button" & x
            .OnAction = "DeleteData"
            ActiveSheet.Shapes(Button7).Delete
        End With
        y = y + 1
    End If
Next
End Sub
Private Sub DeleteData()
    myRow = Mid(Application.Caller, 7)
    LastColumn = 15 ' rettes til sidste kolonne A=1 B=2 osv.
    For myColumn = 1 To LastColumn
        Worksheets("ark1").Cells(myRow, myColumn).Value = ""

    Next

End Sub
--------------------------------------------
Når jeg klikker på knappen så skal den udføre deletedate og slette knappen....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester