Avatar billede densortehingst Seniormester
13. august 2017 - 12:16 Der er 4 kommentarer og
1 løsning

Slette rutine

Mer vil have mer :) Jeg har fået hjælp til at lave en lille rutine herinde, som giver mig følgende output:

206    4    1782        ark1!A1403                    4
438    7    4404        ark1!A28755                    7
481    4    4512        ark1!A31714                    4

rutinen ser således ud:

Sub ListData()
Dim LastRow, x, y As Integer
LastRow = Worksheets("ark1").Cells(120000, 3).End(xlUp).Row
y = 3

For x = 1 To LastRow
If Worksheets("ark1").Cells(x, 3) = 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
y = y + 1
End If
Next
End Sub

Hvis jeg nu vil have en knap/rutine/dims i kolonne 6, som når jeg aktivere den nulstiller række x i ark1? altså noget med at knappen skal løbe en rutine igennem, som siger

for y := 1 to 250
i.ark1.række.x celle af x,y = ""
end-if
Avatar billede jens48 Ekspert
13. august 2017 - 19:58 #1
Hej igen,

Mit gæt er at du kun vil have slettet fra række 3 og ikke fra række 1, som du skriver. Ellers må du selv rette til i 3. linje

Sub ListData()
Dim LastRow, x, y As Integer
Range("A3:A250").EntireRow.ClearContents
LastRow = Worksheets("Ark1").Cells(120000, 3).End(xlUp).Row
y = 3
For x = 1 To LastRow
If Worksheets("Ark1").Cells(x, 3) = 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, 8).Select
ActiveSheet.Hyperlinks.Add ActiveCell, "", Sheets("Ark1").Name & "!A" & x
y = y + 1
End If
Next
End Sub
Avatar billede Jan Hansen Ekspert
13. august 2017 - 21:09 #2
Hejsa har forstået det anderledes end jens så her er mit forslag:


Option Explicit
Dim LastRow, x, y, myRow, myColumn, LastColumn As Integer
Dim btn As Button, MyCell As Range

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

For x = 1 To LastRow
    If Worksheets("ark1").Cells(x, 3) = 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"
        End With
        y = y + 1
    End If
Next
End Sub
Private Sub DeleteData()
    myRow = Mid(Application.Caller, 7)
    LastColumn = 10 ' rettes til sidste kolonne A=1 B=2 osv.
    For myColumn = 1 To LastColumn
        Worksheets("ark1").Cells(myRow, myColumn).Value = ""
    Next
End Sub


Jan
Avatar billede densortehingst Seniormester
13. august 2017 - 21:11 #3
Det har jeg firklaret dårlige. Jeg prøver igen. Når rutinen kører, så udfylder den ark 2 med de data fra ark 1, som matcher min indtastning i A2. I celle(y.4) laver den et link, som peger på den række i ark 1, som data i rækken stammer fra.

206      4      1782        ark1!A1403                   
438      7      4404        ark1!A28755                 
481      4      4512        ark1!A31714               

hvis jeg klikker på det første link, så kommer jeg direkte til ark1,række1403 osv.

jeg ønsker, at den i kolonne 5 skriver et eller andet, som jeg kan klikke på og som medfører at række 1403 i ark1 bliver nulstillet så rækken kun indeholder tomme felter.
Håber det blev mere forståeligt :)
Avatar billede densortehingst Seniormester
13. august 2017 - 21:24 #4
Jeg ved ikke, hvad jeg skal sige Jan. :)
1: Du forstår hvad jeg prøvede at skrive
2: Det virker i første forsøg.
3 du har lige sparet mig for 120.000 * 30 sekunders arbejde.

Mange mange tak :)
Avatar billede Jan Hansen Ekspert
13. august 2017 - 21:46 #5
Velbekomme

Tog lidt tid at lave da  jeg kun har lavet noget ligende en gang før, men nu er jeg den erfaring rigere.

Jan
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

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