Toon posts:

<VB> Loop in Makro

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hier istie weer...

Ik ben nu bezig met een makro te schrijven voor het automatisch afdrukken van bestelfaxen voor grondstoffen. In die fax staan alle leveringen voor een bepaalde dag weergegeven. Door middel van een filter, kan in dan dus alle leveranciers eruit filteren die die dag leveren. Zo heb ik met 1 formulier een fax voor bijvoorbeeld 5 leveranciers. Tijdens het filteren met X valt alles wat natuurlijk niet gelijk is aan X weg, en dan kan ik het formulier printen.

Nu willen we dit automatiseren. Hij moet automatisch gaan filteren, en na iedere filteropdracht dient het formulier uitgeprint te worden. Maarja, ik kan wel gaan filteren op alle 50 leveranciers, en dan krijg ik hoogstwaarschijnlijk 45 lege blaadjes uit de printer, met alleen de opmaak van de fax. Beetje zonde dus.

Ik heb excel al zo ver dat hij alle leveranciers die die dag leveren in een tabel zet. Omdat ik dan dubbele namen heb, heb ik deze met de functie ZAHLENWENN (ja daar is de Duitse naam weer) laten tellen hoe vaak ze voorkomen. Dan heb ik dus een lijstje zonder dubbele namen die ik weer iedere keer kan laten filteren.

Ik ben allemaal al bezig geweest met proberen, maar nu is er dus een probleem. Hij moet alleen filteren met cellen die ook daadwerkelijk waardes bevatten. Dus zoiets:

<
Range ("A1").Activate
If Range ("A1").Value = "" Then

Tja.. dan filter hier niet mee maar zoek de volgende cel eronder op die wel een waarde bevat...

Else
Dan moet je gewoon filteren

Hier komt dan bij mij:

Range ("A2").Activate
If Range ("A2").Value = "" Then

Wederom niet filteren en zoeken naar de volgende cel.

Else

Filter de gegevens en na het filteren weer naar rij 3 gaan

etc.
>

Dit is dus een soort lus, maar ik kan er maar niet uitkomen hoe en in welke volgorde ik de codes moet zetten.

Kan iemand me tips geven en mee de goede weg ophelpen?

Ik hoop dat de vraag duidelijk is...

Verwijderd

Topicstarter
Even aanvullende informatie:

Dit is nu de code voor alvast 3 filteracties.

Als hij een waarde >o vindt achter een leverancier dan moet hij die filteren en het form afdrukken. Vind hij een waarde van 0 dan moet ie naar de volgende leverancier gaan en weer kijken naar de waarde achter de leveracier.

MAARRR vind hij nu een waarde van >0 en heeft ie de handeling ook uitgevoerd, dan moet ie natuurlijk ook verder gaan met de volgende en niet stoppen. Daar zit NU het probleem, de rest van de code functioneerd volgens mij wel...

CODE:

Sheets("BESTELL FORM").Select
If Range("M186") > 0 Then
Range("I23").Value = Range("K186")
Application.Run "ManagementProgramTESTFASE040702.xls!FILTERENLIEFERANT"
Application.Run "ManagementProgramTESTFASE040702.xls!DRUCKENBESTELLSCHEIN"

Else

Sheets("BESTELL FORM").Select
Range("I23").Value = Range("K187")
If Range("M187") > 0 Then
Application.Run "ManagementProgramTESTFASE040702.xls!FILTERENLIEFERANT"
Application.Run "ManagementProgramTESTFASE040702.xls!DRUCKENBESTELLSCHEIN"


Else

Sheets("BESTELL FORM").Select
Range("I23").Value = Range("K188")
If Range("M188") > 0 Then
Application.Run "ManagementProgramTESTFASE040702.xls!FILTERENLIEFERANT"
Application.Run "ManagementProgramTESTFASE040702.xls!DRUCKENBESTELLSCHEIN"


End If
End If
End If

End Sub

Alvast weer bedankt voor de hulp...

Verwijderd

Topicstarter
Bedankt voor jullie reacties ;-)

Zonder jullie hulp had ik het niet gered...

Maargoed, ik ben eruit! Het werkt nu allemaal zoals ik het wilde hebben. *D