Just nu i M3-nätverket
Jump to content

Uppdatera saldon


bossegurra

Recommended Posts

Hej,

 

Jag arbetar med en enkel excel-bok för hantering av lagersaldon. Mitt problem ligger i att uppdatera lagersaldon efter inköp, med följande upplägg:

 

Blad1 innehåller lagersaldon för ett antal varor

Blad2 används för att rapportera inköp av samma varor

 

När jag i Blad 2 har rapporterat att jag har köpt en vara, vill jag att excel adderar mitt inköp med det tidigare lagersaldot i Blad1 och presenterar det nya lagersaldot i samma cell som det tidigare lagersaldot. Samtidigt som lagersaldot uppdateras vill jag också att cellerna för att rapportera inköp nollas.

Jag inser att detta inte är så komplicerat med ett makro, men jag kan inte komma på hur jag ska göra.

 

/bossegurra

Link to comment
Share on other sites

Utan att veta exakt hur din data ser ut, eller hur du strukturerat upp det, så är det svårt att skriva en kod som passar.

 

1. Summera saldo

Men jag föreslår att du i blad2 registrerar alla inköp med datum. Detta gör det lätt att läsa av saldot i blad1 för olika perioder. Detta hanterar du enkelt med vanliga summa-funktioner.

t.ex summa.omf som är en villkorsstyrd summering.

 

2. Registrera inköp

Genom att använda sig av Excels tabell-funktion (formatera data som en tabell) så är det ganska bekvämt att använda kod för att hantera tabellen (lägga till ny rad) med hjälp av ListObject.

 

Bifogar en liten variant på hur det skulle kunna fungera, men detta får du anpassa efter hur det passar dig. Det framgår i filen hur du använder den.

 

Följande kod hanterar detta

 

Sub NyRad()
   Dim oNewRow As ListRow
   Dim oCell As Range
   Dim ws As Worksheet
   Dim i As Integer, x As Object
   Dim objKontroll As Object
   Dim intFält As Integer
   Set objKontroll = Range("Indata")
   intFält = 0 'antal fält som är tomma

   For Each x In objKontroll
           If IsEmpty(x.Value) Then intFält = infFält + 1
   Next x

   ' om det finns tomma fält avbryts koden.
   If intFält > 0 Then
       MsgBox "Fyll i alla fält"
       Exit Sub
       Else:
   End If
   Set ws = ThisWorkbook.Worksheets("blad2")
   i = 2
   With ws.ListObjects(1)
       Set oNewRow = .ListRows.Add
       For Each oCell In oNewRow.Range
           oCell.Value = Cells(i, 7)
           i = i + 1
       Next
   End With
Range("Indata").ClearContents
MsgBox "Inköp registrerat!"
End Sub

/M

testtabell.zip

post-50730-126567072873_thumb.jpg

Link to comment
Share on other sites

Wow, tusen tack! Dock kommer det nog ta lite tid innan jag vet om jag kan få det att fungera eller inte =)

 

Bara att testa och återkomma med fler frågor.

 

/M

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...