Avatar billede janvogt Praktikant
15. april 2002 - 14:05 Der er 10 kommentarer og
2 løsninger

VBA slet række

Jeg har et område i Excel, f.eks. A1:D15.
A-kolonnen indeholder navne, f.eks. A1=Anders, A2=Børge o.s.v.

Det jeg har brug for er så en makro, som sletter den aktive række.
Står jeg i celle C2 og kører makroen skal række 2 slettes, men inden det sker skal der komme et vindue op som spørger: "Er du sikker på du ønsker at slette "Børge"? (knapper: vbYes, vbNo)
Avatar billede rvm Nybegynder
15. april 2002 - 14:17 #1
Response = MsgBox("Er du sikker på du ønsker at slette " & ActiveCell.Value & "?", vbYesNo)

If Response = vbYes Then 
    ActiveCell.EntireRow.Delete
End If
Avatar billede bak Forsker
15. april 2002 - 14:18 #2
Sub Macro2()
    svar = MsgBox("Ønsker du at slette " & Range("A" & ActiveCell.Row).Value, vbYesNo)
    If svar = vbYes Then
    X = ActiveCell.Row
    Rows(X).Delete Shift:=xlUp
    End If
End Sub
Avatar billede rvm Nybegynder
15. april 2002 - 14:26 #3
Ups - så lige forkert på "Børge". ActiveCell.Value skal erstattes med Cells(ActiveCell.Row, 1)
Avatar billede bak Forsker
15. april 2002 - 14:33 #4
eller en one-liner
If MsgBox("Ønsker du at slette " & Range("A" & ActiveCell.Row).Value, vbYesNo) = vbYes Then _
  ActiveCell.EntireRow.Delete Shift:=xlUp
Avatar billede janvogt Praktikant
15. april 2002 - 14:42 #5
Tak for svarene.
Jeg brugte bak´s løsning med en ekstra linie - altså:

Sub SletRaekke()
    ActiveCell.EntireRow.Activate
    svar = MsgBox("Ønsker du at slette " & Range("B" & ActiveCell.Row).Value, vbYesNo)
    If svar = vbYes Then
    X = ActiveCell.Row
    Rows(X).Delete Shift:=xlUp
    End If
    ActiveCell.Activate
End Sub

Hvordan deaktiverer man forresten en hel række og springer tilbage til ActiveCell?
Avatar billede rvm Nybegynder
15. april 2002 - 14:47 #6
Du har jo lige slettet din aktive celle *S* men det gøres nemmest ved at svælge en bestemt celle. F.eks.  Range("A1").select
Avatar billede janvogt Praktikant
15. april 2002 - 15:01 #7
Ja, men kan så gemme den oprindelige position i en variabel og så kalde den frem igen?
Avatar billede rvm Nybegynder
15. april 2002 - 15:04 #8
Række = activecell.row
Kolonne = activecell.Column
Avatar billede janvogt Praktikant
15. april 2002 - 15:09 #9
Ja, det kan man selvfølgelig.
Jeg havde gang i noget med ActiveCell.Address .....
Avatar billede janvogt Praktikant
15. april 2002 - 15:20 #10
Forøvrigt sletter man jo ikke rækken medmindre man svarer "Nej" :-)
Avatar billede janvogt Praktikant
15. april 2002 - 15:23 #11
øhh ... "Ja"
Avatar billede rvm Nybegynder
15. april 2002 - 19:16 #12
:-|)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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