KlausW
Active Member
- Joined
- Sep 9, 2020
- Messages
- 453
- Office Version
- 2016
- Platform
- Windows
Hi
I am using this VBA-code to move item from one sheet to another, but I can't figure out why it suddenly won't run.
Any help will be appreciated
Best regards
Klaus W
I am using this VBA-code to move item from one sheet to another, but I can't figure out why it suddenly won't run.
Any help will be appreciated
Best regards
Klaus W
VBA Code:
Option Explicit
Dim wb As Workbook
Dim WsPris As Worksheet, WsBestil As Worksheet
Dim rPris As Range, rBestil As Range
Private Sub SetVar()
Set wb = ActiveWorkbook
Set WsPris = wb.Sheets("Prisliste")
Set WsBestil = wb.Sheets("Bestilling")
Set rPris = WsPris.Range("A9", WsPris.Range("A5000").End(xlUp))
Set rBestil = WsBestil.Range("A9", WsBestil.Range("A5000").End(xlUp).Offset(5, 0))
End Sub
Sub Prisliste_Overfør_Varer_Klik()
Application.ScreenUpdating = False
SetVar
Dim col As New Collection
Dim Varelinje As New ClVarelinjer
Dim vElement
Dim Cell As Range, iCell As Range
For Each Cell In rPris
If Cell.Offset(0, 1) <> "" Then
With Varelinje
.Vare_nr = Cell.Value
.Navn = Cell.Offset(0, 1).Value
.Antal = Cell.Offset(0, 2).Value
'.Enhed = Cell.Offset(0, 4).Value
.Bemærkning = Cell.Offset(0, 10).Value
End With
Else
GoTo Videre
End If
For Each iCell In rBestil
With Varelinje
If iCell.Value = .Vare_nr Then
iCell.Value = .Vare_nr
iCell.Offset(0, 1).Value = .Navn
iCell.Offset(0, 2).Value = .Antal
'iCell.Offset(0, 4).Value = .Enhed
iCell.Offset(0, 6).Value = .Bemærkning
GoTo Videre
ElseIf iCell.Value = "" Then
iCell.Value = .Vare_nr
iCell.Offset(0, 1).Value = .Navn
iCell.Offset(0, 2).Value = .Antal
' iCell.Offset(0, 4).Value = .Enhed
iCell.Offset(0, 6).Value = .Bemærkning
GoTo Videre
End If
End With
Next
Videre:
Set Varelinje = New ClVarelinjer
Next Cell
Cbox
'renser antal og bemærkning i prislisten
ClearOmråde WsPris.Range("C9", WsPris.Range("C6000").End(xlUp))
ClearOmråde WsPris.Range("K9", WsPris.Range("K6000").End(xlUp))
'
Slet_række
' sorterer
Sorter WsBestil.Range("A9", WsBestil.Range("H6000").End(xlUp)), WsBestil.Range("B9", WsBestil.Range("B6000").End(xlUp))
WsPris.Range("a1").Value = Now()
' sætter kanter
IngenKanter WsBestil, WsBestil.Range("a9", WsBestil.Range("H6000"))
Kanter WsBestil, WsBestil.Range("a9", WsBestil.Range("H6000").End(xlUp))
WsPris.Activate
Application.ScreenUpdating = True
End Sub
Private Sub Cbox()
Dim fCbox As ComboBox
Set fCbox = ComboBox1
fCbox.Value = ""
Me.ComboBox1.Activate
End Sub
Private Sub Slet_række()
Dim ColC As Range
Dim rRække As Range
Dim Cell As Range
Forfra:
With WsBestil
Set ColC = .Range("C9", .Range("C6000").End(xlUp))
For Each Cell In ColC
If Cell.Value = 0 And Cell.Value <> "" Then
.Activate
Set rRække = .Range("A2" & Cell.row, "H" & Cell.row)
ClearOmråde .Range(rRække.Address)
GoTo Forfra
End If
Next Cell
End With
End Sub
Private Sub worksheet_change(ByVal Target As Range)
If Not Intersect(Target, Sheets("Prisliste").Range("C9:C4000")) Is Nothing Then
Call Prisliste_Overfør_Varer_Klik
End If
End Sub