• 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.

Kolom reservering per artikel 1 regel / scheidingslijn tussen producten

Status
Niet open voor verdere reacties.

ronaldvm1964

Gebruiker
Lid geworden
21 jul 2008
Berichten
189
Zie bijlage voor een kleine voorbeeld.

In kolom F staan de reservering van een product, als je kijkt naar product A zijn er 11 regels gevuld met hetzelfde aantal colli reservering. Is het mogelijk om hier maar 1 regel gereserveerd van te maken. In product A is dit 4803.
Is het ook mogelijk om tussen elk product A automatisch een scheidingslijn te plaatsen (liefst via een macro).

Gr,
Ronald
 

Bijlagen

Niet helemaal, bij product A hebben we in een kolom een reservering van 4803 niet de hele reeks opgeteld. Ik zou graag wel de rotering op deze manier willen houden voor het goed overzicht hebben, want in deze lijst moet straks een andere lijst samengevoegd worden. Dus is het wel mogelijk om maar 1 x 4803 bij de eerste rotering te hebben en niet allemaal.
Met scheidingslijn bedoel ik eigenlijk een dikke zwarte lijn tussen product A en B en tussen B en C.

Wat je nu gemaakt hou ik wel, want deze zou ik misschien in de toekomst kunnen gebruiken. Daarvoor mijn dank alvast.
 
Hoi Ronald,

Het kan met een (simpel) macrootje:
Code:
Sub Reservering_wissen()
    Kol = 6: ' Kolom 6 (F)
    Res = Cells(2, Kol): ' Eerst Reserveringsgetal
    For Rij = 3 To 999: ' van rij 3 t/m rij 999
        If Cells(Rij, Kol) = Res Then Cells(Rij, Kol).ClearContents Else Res = Cells(Rij, Kol)
        'Als de cel gelijk is aan de voorgaande, dan wis de inhoud
    Next Rij
End Sub

Macro invoeren met Extra->Macro->Macro's
Vervolgens naam invoeren Reservering_wissen (deze naam anders correspondeert het niet met de bovenstaande code, anders naam code aanpassen.

Groet,
Jeroen
 
Sub Reservering_wissen()
Kol = 6: ' Kolom 6 (F)
Res = Cells(2, Kol): ' Eerst Reserveringsgetal
For Rij = 3 To 999: ' van rij 3 t/m rij 999
If Cells(Rij, Kol) = Res Then Cells(Rij, Kol).ClearContents Else Res = Cells(Rij, Kol)
'Als de cel gelijk is aan de voorgaande, dan wis de inhoud
Next Rij
End Sub

Op regel res = cells(2,kol) : loopt ie vast.

Gr,
Ronald
 
Hoi Ronald,

Staat er boven in de module toevallig: Option explicit
In dat geval moet je de variabelen eerst declareren
Voeg toe voor Kol=6: Dim Kol, Rij, Res As Integer

Andere mogelijkheid is dat Res een niet toegestane variabelenaam is in jouw versie van Excel, verander Res in Resv en draai de macro opnieuw.

Groet,
Jeroen
 
Ik moest inderdaad res veranderen in resv (heb excel 2010).
Hoe krijg je een dikke lijn tussen de artikelnummers zoals in voorbeeld l-pal03(3), het liefst met een macro.
 
Hoi Ronald,

Met dezelfde maco:
Code:
Sub Reservering_wissen()
    Kol = 6: ' Kolom 6 (F)
    Resv = Cells(2, Kol): ' Eerst Reserveringsgetal
    For Rij = 3 To 999: ' van rij 3 t/m rij 999
        If Cells(Rij, Kol) = Resv Then Cells(Rij, Kol).ClearContents Else Resv = Cells(Rij, Kol): Range(Cells(Rij - 1, 1), Cells(Rij - 1, 8)).Borders(xlEdgeBottom).Weight = xlThick
        'Als de cel gelijk is aan de voorgaande, dan wis de inhoud
    Next Rij
End Sub

Groet,
Jeroen
 
Het werkt goed de lijnen trekken, totdat je bij artikelnummers komt waar de reservering allemaal 0 is, deze slaat ie over wat betreft de lijnen zetten.
 
Hoi Ronald,

Ik pak het iets anders aan, ik kijk voor het trekken van de lijnen naar kolom A in plaats van kolom F. Dat gaat met de volgende code:
Code:
Sub Reservering_wissen()
    Kol = 6: ' Kolom 6 (F)
    Resv = Cells(2, Kol): ' Eerst Reserveringsgetal
    For Rij = 3 To 999: ' van rij 3 t/m rij 999
        If Cells(Rij, Kol) = Resv Then Cells(Rij, Kol).ClearContents Else Resv = Cells(Rij, Kol)
        If Cells(Rij - 1, 1) <> Cells(Rij, 1) Then Range(Cells(Rij - 1, 1), Cells(Rij - 1, 8)).Borders(xlEdgeBottom).Weight = xlThick
        'Als de cel gelijk is aan de voorgaande, dan wis de inhoud
    Next Rij
End Sub

Groet,
Jeroen
 
Deze werkt perfect.
nog 1 laatste vraag als je #n/b tegenkomt dan gaat ie niet verder. Nog kan ik de #n/b verwijderen in een macro? kan wel door vervangen doen maar dan werkt het niet.
 
Hoi Ronald,

Voeg na de For-regel toe:
On Error Resume Next

Dan moet ie gewoon doorlopen.

Groet,
Jeroen
 
Code:
Sub Reservering_wissen()
Kol = 6: ' Kolom 6 (F)
Resv = Cells(2, Kol): ' Eerst Reserveringsgetal
For Rij = 3 To 999: ' van rij 3 t/m rij 999
If Cells(Rij, Kol) = Resv Then Cells(Rij, Kol).ClearContents Else Resv = Cells(Rij, Kol)
If Cells(Rij - 1, 1) <> Cells(Rij, 1) Then Range(Cells(Rij - 1, 1), Cells(Rij - 1, 8)).Borders(xlEdgeBottom).Weight = xlThick
'Als de cel gelijk is aan de voorgaande, dan wis de inhoud
Next Rij
End Sub

Ik heb in Kolom A een kolom toegevoegd, nu zou in kolom B moeten zoeken ipv A, streep moet getrokken worden van A t/m J (10 kolommen) , wat moet ik veranderen aan de macro.
 
Hoi Ronald,

Cells(Rij,Kol) verwijst naar een cel (logisch) met een rij en kolomnummer, waarbij kolomnummer 1 staat voor A.

Omdat VBA wat star werkt moet je alle kolomnummers in de code +1 doen, dus Kol=6 wordt Kol=7 aan het begin van de code als in kolom G het reserveringsgetal staat.

Code:
If Cells(Rij - 1, 1) <> Cells(Rij, 1) ......
In deze formule worden de cellen in kolom 1 vergeleken, die gaan nu naar kolom 2.
Code:
Range(Cells(Rij - 1, 1), Cells(Rij - 1, 8)).Borders(xlEdgeBottom).Weight = xlThick
Ik schat in dat kolom 1 ook onderstreept moet worden en kolom I zal ook onderstreept moeten worden, dus alleen de 2e Cells moet in dit geval aangepast worden.

Groet,
Jeroen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan