Just nu i M3-nätverket
Gå till innehåll

Uppdatera saldon


bossegurra

Rekommendera Poster

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

Länk till kommentar
Dela på andra webbplatser

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

Länk till kommentar
Dela på andra webbplatser

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

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...