gegevens verwerken in een sheet met veel rijen

Status
Niet open voor verdere reacties.

Kopaan

Gebruiker
Lid geworden
31 mei 2016
Berichten
13
Er is ook een sheet in bijlage.

We hebben een blad waar alle ontvangsten in staan ( is de sheet "gegevens" ) en dit zijn enkele duizenden lijnen
In de kolom AP staat de waarde of deze rij is goedgekeurd of niet.
In de kolom AQ staat de datum wanneer de goedkeuring werd gegeven.
In kolom E staat een "key", dit maakt deze rij uniek tov alle rijen in dit blad

We hebben een blad waar gebruikers hun goedkeuring kunnen ingeven voor een bepaal ontvangst ( = rij )
In deze sheet kunnen 1 of meerdere rijen staan
De gebruiker kan per rij in kolom U een "waarde" ingeven ( keurt hij deze rij goed of niet of … )
en kolom V staat de datum.

Deze waarde van kolom U moet nu verwerkt worden in de grote sheet met "gegevens" in kolom AP
( en de datum van kolom V moet in kolom AQ komen )
In kolom G staat een "key", dit maakt deze rij uniek tov alle rijen in dit blad

Dus via de key in kolom G ( van sheet "gegevens" ) kan je de overeenkomende rij vinden in kolom E van sheet "gegevens"

Ik heb een voorbeeld ( in het blauw ) in de sheet gemaakt.


Ik heb al VBA codering gevonden met de instructies column en offset en find maar mijn VBA kennis is totaal onvoldoende om dit aan te passen en werkbaar te maken.

In de sheet staan links van de data , lege kolommen, deze wil ik graag behouden
en boven de data staan lege rijen , deze wil ik ook graag behouden.

Kan er iemand mij helpen met mijn probleem ?
Bekijk bijlage test ontv.xlsm
 
In de kolom AP staat de waarde of deze rij is goedgekeurd of niet.
Wanneer is de rij goedgekeurd, is dat bij 'ABC' of 'OK'?
'Wachten en Probleem' lijkt me van niet.

Iets meer duidelijkheid is welkom (ook het benoemen van de bladnamen).
 
Hier nog wat meer uitleg :

In de kolom AP ( van de sheet "gegevens" ) staat als initiele waarde het getal 0
( maar als dit een probleem zou geven kan ik hier ook bijvoorbeeld "to approve" inzetten )


In de kolom U ( van de sheet "goed" ) kan de gebruiker verschillende waarde ingeven
bijvoorbeeld :




Een programma van de boekhouding gebruikt ook de sheet "gegevens" , kolom AP
Als er in de kolom AP "OK" staat, dan gaat men de betalings procedure starten
Als er in de kolom AP niet de waarde "OK" staat ( maar iets anders ) , dan gaat men de betalings procedure NIET starten
aan de hand van de waarde in kolom AP, weet de aankoopafdeling ook waarom er niet zal betaald worden ( = er is een klacht of …. )

Het is wel telkens de bedoeling om de waarde van kolom U, in de kolom AP te hebben

De naam van de sheets mag ook veranderd worden.
bijvoorbeeld :


In de sheet "gegevens" staan duizenden ontvangst lijnen van verschillende afdelingen.
In de sheet "goed", zullen enkel de ontvangst lijnen van een bepaalde afdeling staan en waarvoor er nog geen OK is
Dus de gebruiker krijgt maar enkele rijen op zijn scherm die hij moet kontroleren, eventueel goedkeuring voor moet geven
Zijn ingegeven "antwoorden" moeten wel in de grote sheet "gegevens" verwerkt worden.
 
Hier de VBA coding :

Code:
Sub upp()
'
Dim dataup  As Range
Dim datain As Range
'
For Each datain In Sheets("goed").Columns(7).SpecialCells(2).Offset(1).SpecialCells(2)
'
  Set dataup = Sheets("gegevens").Columns(5).Find(datain, , , xlWhole)
'
   If Not dataup Is Nothing Then
       dataup.Offset(, 38) = datain.Offset(, 15)
       datain.Offset(, 1) = "verwerkt"
     Else
       datain.Offset(, 1) = "niet gevonden"
   End If
 Next datain
 '
End Sub
[code/]
 
Moet dan elke regel in sheet(goed) in sheet(gegevens) komen, of alleen de rijen met "OK"?
 
Onderstaande uitleg is over het veld U in de sheet "goed" :

De "default" waarde voor het veld U in de sheet "goed" is het getal nul

Alle rijen, in de sheet "goed", met een waarde verschillend van nul moeten verwerkt worden.

Indien het getal nul een probleem is om op te testen kan ik hier ook bijvoorbeeld "to approve" inzetten


In de sheet "goed", krijgt de gebruiker zijn rijen te zien die hij nog moet "goedkeuren/behandelen".

Bijvoorbeeld hij krijgt 10 rijen te zien, dit wil dan niet zeggen dat hij er 10 zal "goedkeuren"
Hij behandeld enkel lijn 1 , 7 en 8.
Behandeld wil zeggen : hij veranderd de "default waarde van nul " naar ..... een andere waarde
Bijvoorbeeld : voor lijn 1 geeft hij "OK" in
voor lijn 7 geeft hij "klacht" in
voor lijn 8 geeft hij "te bespreken" in


Dus lijn 1 , 7 en 8 hebben een waarde verschillend van nul en enkele deze rijen worden verwerkt in de sheet "gegevens"
Lijnen 2 3 4 5 6 9 10 hebben een waarde gelijk aan nul ,

Dus lijn 1 wordt gelezen, waarde verschillend van nul, dan wordt de waarde naar sheet "gegevens" geschreven
Lijn2 wordt gelezen, waar de is nul, geen actie
Lijn3 wordt gelezen, waar de is nul, geen actie
etc...
lijn 7 wordt gelezen, waarde verschillend van nul, dan wordt de waarde naar sheet "gegevens" geschreven
...
tot lijn 11, die is blanco , en de makro stopt
 
Test deze code eens.
Code:
Sub hsv()
Dim cl As Range, c As Range
With Sheets("gegevens")
  For Each cl In Sheets("goed").Columns(21).SpecialCells(2)
    If cl <> 0 Then
      Set c = .Columns(5).Find(cl.Offset(, -14), , xlValues, xlWhole)
      If Not c Is Nothing Then c.Offset(, 37).Resize(, 2) = Array(cl.Value, cl.Offset(, 1).Value)
    End If
  Next cl
 End With
End Sub
 
Net de coding geprobeerd.
Werkt uitstekend !!!
Hartelijk bedankt !!!
Ik had zelf deze coding nooit kunnen vinden.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan