Altijd uitkomen op de juiste locatie met SAPnr en juiste batch om verder tegaan

Status
Niet open voor verdere reacties.

samui

Verenigingslid
Lid geworden
26 mei 2012
Berichten
207
Geachte helpdesk, :thumb:

In bijgevoegd bestand staat, door een eerder uitgevoerde macro de volgende gegevens in cellen
i7, i8 en j7
Daarna gaat de macro door en moet stoppen op de juiste locatie met bijbehorende gelijk SAPnr en batchnr
Ik krijg het niet voor elkaar om de cursor altijd op die plek te krijgen die aan deze 3 voorwaardes voldoet.
Hij moet dus zoeken naar 1VC12C5, ook voldoen aan i8 = 10754 en j7 de 7845
Die waardes kunnen dus alles, door mijn eerdere macro, zijn in deze 3 cellen wat onder locatie, Sapnr of Batch staat.
Als het batchnummer niet bestaat wordt er netjes een regel ingevoerd op de juiste locatie.
In een rij met x kg in kolom G wordt er ook een rij toegevoegd omdat je kg en aantallen niet bij elkaar op mag tellen.
Wat bij mij dus fout gaat is het volgende. Een bestaande locatie, batch en sapnr. zoals in het voorbeeld rij 52 wordt bij mij niet gevonden en die aantallen bij de bestaande opgeteld maar er wordt een nieuwe regel aangemaakt.
Ik gebruik de macro als zijnde moet voldoen aan 1 en 2 en 3. de ene keer gaat dit goed de andere keer niet. Ligt eraan waar het te vinden sapnr zich bevindt in een aantal regel met dezelfde locatie.

Dus hoe krijg ik de macro eindigend op de in het voorbeeld locatie L52? In cel L52 staat dan ingevuld de waarde van cel i9

Staan er andere waardes in de cellen i7, i8 en j7 dan moet de cursur daar eindigen in cel Lxx
Als het dus een nieuwe batch betreft moet er een regel op die locatie toegevoegd worden maar dat wordt al gedaan.

Ik hoop dat ik het weer duidelijk uitgelegd hebt.

alvast bedankt voor de reacties.

Frank
 

Bijlagen

Loopt dit hele bestand niet vast?

Worksheet_Change blijft zichzelf toch aanroepen? Een Worksheet_Change vindt altijd plaats in een ActiveSheet dus dat kan er sowieso uit.
Rijen kan je best van de onderkant verwijderen. Voor zowel code als vragen kan je het beste af en toe een inspringpunt/Enter gebruiken om het geheel leesbaar te maken.

En verder heb ik geen idee wat je wilt bereiken.:rolleyes:
 
En verder heb ik geen idee wat je wilt bereiken.:rolleyes:
:o

Hmmmmmmmmm da's helaas niet veel hahaha. Ik zal mijn vraag anders proberen te stellen.

De getallen die je in i7, i8, i9 en j7 ziet staan zijn daar door mijn macro al weggezet. ( niet meegestuurd )
Van hieruit loopt mijn macro inderdaad niet helemaal 100% OK maar dat is voor dit stukje niet van belang.
Wat ik niet 100 % voor elkaar krijg is dit. In de rijen 11 t/m 300 moeten de 3 gegevens gevonden worden ( 1VC12C5 de 10754 en de 7845 die in de cellen hierboven genoemd zijn )
De cursor zie ik dan graag staan in cel Lxx van de rij die aan deze voorwaarden voldoet. In deze cel x moet dan het getal gezet worden wat je ziet in cel i9 ( 4 ) in mijn voorbeeld.

Zoals je ook ziet zie je het getal 7845 en 10754 meerdere keren terugkomen. Waar het dus bij mij fout gaat is dat er soms op de verkeerde plek gestopt wordt.

Samengevat het hele verhaal. een regel in 11 t/m 300 moet voldoen aan de alle 3 getallen in i7, i8 en j7 en dan stoppen op locatie L van die regel en daar het getal wegzetten van i9

Hopelijk kan je hier wat mee. De macro die er achter tabblad wif hangt hoef je niet te gebruiken. Als je de vraag in een aparte module kan beantwoorden ben ik meer dan tevreden.

Het stukje macro wat je bij de Worksheet_Change ziet staan is de afronding van mijn uit te voeren bewerking
En dat is het afboeken van of verwijderen van een rij indien de laatste materialen overeenkomen met het aantal

Hopelijk snap je mijn uitleg en vraag nu beter.

mvg,

Frank
 
zoiets? zit geen fout vangnet in :rolleyes:
Code:
Sub mde()
x = Cells(7, 9).Value
y = Cells(8, 9).Value
Z = Cells(7, 10).Value
a = Cells(9, 9).Value
Range("D9").Select


AA:
Cells.Find(What:=x, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate


If ActiveCell.Offset(0, 2).Value = y And ActiveCell.Offset(0, 1).Value = Z Then ActiveCell.Offset(0, 8).Value = a Else GoTo AA

 

End Sub
 
Hoi Marco,

Bedankt voor je oplossing.
Ik kan hier wel mee uit de voeten.
Zelf nog een beetje erbij zetten voor de afronding van verwijderen en ik ben klaar.
Super.
vraag wordt gesloten
 
Dan lijkt mij dit iets handiger.

Code:
Sub VenA()
With Sheets("wif").Cells(11, 4).CurrentRegion.Resize(, 9)
ar = .Value
    For j = 1 To UBound(ar)
        If ar(j, 1) = .Parent.[i7] And ar(j, 2) = .Parent.[j7] And ar(j, 3) = .Parent.[i8] Then ar(j, 9) = .Parent.[I9].Value
    Next j
    .Value = ar
    .AutoFilter 9, "<>" 'ter controle of om rijen te verwijderen.
End With
End Sub
 
Hallo VenA,

Dit is ook interessant.
Maakt het overzichtelijker qua afboeken.
Kan ik bij afboeken lekker makkelijk zien en daarna de zaak weer opengooien
Ik ben weer meer dan happy.

Thanks voor deze oplossing.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan