• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Probleem met aanpassen van macro

Status
Niet open voor verdere reacties.

vanderploeg1991

Gebruiker
Lid geworden
27 jan 2016
Berichten
25
Ik krijg het niet voor elkaar om mijn macro op de juiste manier aan te passen.

Ik gebruik 4 cellen voor mijn macro
Voorraad ( de daadwerkelijke voorraad )
Voorraad + ( de aantallen die bij de voorraad opkomen )
Voorraad - ( de aantallen die bij de voorraad afgaan )
Voorraad bijgewerkt ( de datum dat de voorraad voor het laatst is bijgewerkt )

Nu is het zo wanneer ik bij voorraad + 5 indruk en op verwerken druk de voorraad bijgewerkt niet in de juiste cel verschijnt.
Ook staat de daadwerkelijke voorraad in de verkeerde cel namelijk ''Tekening nr.''

Kan iemand mij hiermee helpen ?

Bekijk bijlage Voorraad.xlsm
 
Gebruik deze verwijzingen, gemakkelijker te volgen:

Code:
Sub Aanvullen()
    If [CountA(D3:E407)] = 0 Then If MsgBox("Er is niets ingevuld probeer opnieuw", 1 = vbYesNo) Then Exit Sub
    Dim cl As Range
 With Sheets("Artikel")
    rij = .Range("A" & .Rows.Count).End(xlUp).Row
 For Each cl In .Range("A3:A" & rij)    'Vanaf A3 tot de laatst gevulde cel in G GOED
    If .Cells(cl.Row, "D") > 0 Then 'In
    .Cells(cl.Row, "C") = .Cells(cl.Row, "C") + .Cells(cl.Row, "D")
    .Cells(cl.Row, "F") = Date & " "
    .Cells(cl.Row, "D") = ""
    End If

    If .Cells(cl.Row, "E") <> "" Then 'Uit
    .Cells(cl.Row, "C") = .Cells(cl.Row, "C") - .Cells(cl.Row, "E")
    .Cells(cl.Row, "F") = Date & " "
    .Cells(cl.Row, "E") = ""
    End If
 Next
End With
End Sub
 
Laatst bewerkt:
Bedankt,

Daar wordt het inderdaad wel overzichtelijker van echter krijg ik niet voor elkaar wat ik nodig heb.
Iemand een idee of misschien dat iemand het voor mij kan aanpassen ?
 
Jij bent goed, ik pas je macro aan zodat die doet wat je vraagt en
nu post je gewoon de macro doet niet wat moet zonder dan aan te geven wat er niet goed is.

Je moet ook wel een beetje zelf kijken dat tenminste de opmaak van de cellen correct staat.

Laat maar eens horen wat er nog moet gebeuren.
 

Bijlagen

Bedankt, mijn ervaring met macro's is behoorlijk slecht vandaar mijn vraag om het eventueel aan te passen.

Misschien heb ik dan inderdaad wat over het hoofd gezien.
In ieder geval bedankt voor de moeite :)
 
Laatst bewerkt:
of

Code:
Sub VenA()
For Each cl In Sheets("Artikel").Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row).Offset(, 2)
    If cl.Offset(, 1) <> "" Or cl.Offset(, 2) <> "" Then
        cl.Value = cl + cl.Offset(, 1) - cl.Offset(, 2)
        cl.Offset(, 1).Resize(, 2).ClearContents
        cl.Offset(, 3) = Date
    End If
Next cl
End Sub
 
Die cl.offset.... had ik er net uitgehaald om OP duidelijk te maken hoe het in elkaar steekt.
Zijn macro liep oa niet doordat die offset.... -verwijzingen foutliepen
iig is mijn code beter leesbaar om te doorgronden.
 
@V&A

Of ?
Code:
Sub M_snb()
   For Each cl In Sheets("Artikel").cells(1).currentregion.offset(2)
      If cl.Offset(, 1) & cl.Offset(, 2) <> "" Then cl.resize(,4)=array(cl + cl.Offset(, 1) - cl.Offset(, 2),"","",Date)
   Next
End Sub
 
Dacht ik ook; nu nog even kijken wat Cobbe ervan vindt.
Deze code lijkt me eigenlijk nog eenvoudiger uit te leggen dan de voorgaande.
 
Dat dat een nette code is staat buiten kijf,
ik wil het je wel laten uitleggen aan iemand die niet weet wat een row, column of wat dan ook is, om nog te zwijgen van een offset gehoord heeft. :):p
 
Hoe ga je deze dan uitleggen?

Code:
.Cells(cl.Row, "C")
:p:d

Mij maakt het niet zoveel uit hoe iets geschreven wordt als het maar werkt. Maar soms is het leuk voor de grijze massa om er wat anders voor te verzinnen en dit weer ingekort te zien worden tot nagenoeg 0 regels.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan