/ Forside/ Teknologi / Administrative / MS-Office / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn 

Kodeord  


Reklame
Top 10 brugere
MS-Office
#NavnPoint
sion 18709
refi 14474
Klaudi 9389
Rosco40 5695
berpox 5456
dk 5398
webnoob 4919
Benjamin... 4870
o.v.n. 4637
10  EXTERMINA.. 4373
Hjælp til ændring i vba kode
Fra : boro23
Vist : 602 gange
500 point
Dato : 12-05-14 13:44

Har brug for en vba kode, der kan finde et varenr. i en kolonne, og slette rækken hvori varenumret befinder sig . http://gupl.dk/709233/

1. Fjern arkbeskyttelse i ark2 (arknavn skal kunne ændres i koden)
2. Indtastet varenr. i A1 (celleplacering skal kunne ændres i koden)
3. Find varenumret i kolonne A i ark2 (kolonnenr. & arknavn skal kunne ændres i koden)
4. Popupbox med teksten "Vil du slette"
5. Slet rækken i ark2 hvori varenumret findes (arknavn skal kunne ændres i koden)
6. Beskyt ark2 (arknavn skal kunne ændres i koden)

Fik hjælp til en kode som virker i oploadet fil, men har problemer med at ændre arknavn, kolonne & celleplacering i andre filer, kan nogen hjælpe med at ændre koden eller komme med en forklaring på hvor og hvordan jeg kan ændre i koden? På forhånd tak.



Private Sub Worksheet_Change(ByVal Target As Range)

If ActiveCell.Row = 1 And ActiveCell.Column = 1 Then
skal_fjernes = ActiveCell

maxnr = Application.WorksheetFunction.CountA(Ark2.Range("A:A"))

For t = 2 To maxnr
If skal_fjernes = Ark2.Cells(t, 1) Then
x = MsgBox("Vil du slette " & skal_fjernes & Chr$(13) & Chr$(13) & "Klik OK for at fjerne", vbOKCancel)
Exit For
End If
Next

If x = 1 Then
Ark2.Unprotect
Ark2.Cells(t, 1).EntireRow.Delete
Ark2.Protect
End If

End If

End Sub


 
 
Accepteret svar
Fra : sion

Modtaget 500 point
Dato : 18-05-14 13:18

Kan du bruge denne modificerede udgave af VBA-koden:

Kode
Private Sub Worksheet_Change(ByVal Target As Range)

Application.ScreenUpdating = False

Dim shtHovedark As Worksheet
Set shtHovedark = Worksheets("Ark1") 'Angiv det ark, hvor du vælger, hvilket varenummer der skal slettes.

Dim shtListeark As Worksheet
Set shtListeark = Worksheets("Ark2") 'Angiv det ark, hvor liste af varenumre er.

Dim VarenummerCelle As Range
Set VarenummerCelle = shtHovedark.Range("A1") 'Angiv den celle, hvor du vælger varenummer. Navngiv evt. cellen inde i Excel og referér til dette navn (eksempelvis Range("CelleTilValgAfVarenummer")). På den mådekan du flytte cellen i Excel, uden at VBA-koden kommer til at give fejl.

Dim StartCelle As Range
Set StartCelle = shtListeark.Range("A1") 'Angiv den celle, som er øverst (overskrift) i din liste af varenumre. Navngiv evt. cellen inde i Excel og referér til dette navn (eksempelvis Range("StartCelle")). På den mådekan du flytte cellen i Excel, uden at VBA-koden kommer til at give fejl.

Dim c As Range

If Not Intersect(Target, VarenummerCelle) Is Nothing And Target.Cells.Count = 1 Then

For Each c In shtListeark.Range(StartCelle, StartCelle.End(xlDown))

If c.Value = VarenummerCelle.Value Then

If MsgBox("Vil du slette " & c.Value & Chr$(13) & Chr$(13) & "Klik OK for at fjerne", vbOKCancel) = vbOK Then
shtListeark.Unprotect
c.EntireRow.Delete
shtListeark.Protect
End If
Exit For

End If

Next c

End If

Application.ScreenUpdating = True

End Sub


Simon

Godkendelse af svar
Fra : boro23


Dato : 19-05-14 07:42

1000 tak, virker perfekt

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177409
Tips : 31962
Nyheder : 719565
Indlæg : 6407776
Brugere : 218874

Månedens bedste
Årets bedste
Sidste års bedste