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

Macro verwijderen van enkele rijen

Status
Niet open voor verdere reacties.

annie49

Gebruiker
Lid geworden
24 jun 2009
Berichten
10
Kan iemand mij helpen met een macro
Ik zoek geen voorraad beheer programma maar ,een macro die meerdere condities aankan
Bijgevoegd een simpel voorbeeld bestandje van mijn winkeltjes het hel bestand is veel groter natuurlijk
De voorraad is verspreid over de winkeltjes en daar zit een van mijn problemen
--------------------------
Blad 1 is mijn voorraad
Op blad 2 (verkocht) staan wat artikelen die verkocht zijn in de winkeltjes een, twee,drie
Ik wil graag dat als bv artikel nummer 200 alleen verkocht is in winkel een ,Deze hele rij dan weg gehaald wordt in blad 1.
Maar alleen als de leverancier nummer 10 is
M.a.w. allen de gele regel in het voorraad blad moet dan weg .De rest moet blijven staan in het voorraad blad
(De reden voor deze vraag is eigenlijk simpel , het enige verschil is soms alleen de verpakking )
Ik hoop dat het zo duidelijk is wat ik wil
dank je bijvoorbaat voor je hulp
 

Bijlagen

Dan moet regel 6 toch ook verwijderd worden?
Ook die rij bevat zeep, is van winkel twee en de leverancier is 10.

Of mis ik iets?

Met vriendelijke groet,


Roncancio
 
dat klopt

Je hebt gelijk
Dan moet regel 6 toch ook verwijderd worden?

om het simpel te houden had ik maar een voorbeeld op het blad verkocht gemaakt
groet
Annie
 
Met onderstaande macro wordt het tabel gefilterd en de regels die aan de voorwaarden voldoen verwijderd.

De voorwaarden zijn:
- artikelnummer 200
- winkel twee
- leverancier 10

Code:
Sub Voorraad()
With Worksheets("Voorraad")
    .Range("A1:I1").AutoFilter
    .Range("$A$1:$I$20").AutoFilter Field:=9, Criteria1:="10"
    .Range("$A$1:$I$20").AutoFilter Field:=7, Criteria1:="twee"
    .Range("$A$1:$I$20").AutoFilter Field:=1, Criteria1:="200"
    .Range("A2:I100").SpecialCells(xlCellTypeVisible).EntireRow.Delete
    .Range("A1:I1").AutoFilter
End With
End Sub

Met vriendelijke groet,


Roncancio
 
dank je wel

dank je wel voor je antwoord
hier kan ik verder mee
:thumb:
Echter dit antwoord brengt me op nog een vraag
stel dat ik bv het artikel nummer en de winkel "variabel" wil maken
bv eerst X dan Y dan Z enz.
wat moet ik dan doen
weet je dan ook een oplossing hoe ik dat aan moet pakken
 
Je kan de criteria v/d autofilters vervangen door inputboxen waar de waarden die moeten verwijderd worden ingebracht worden , ofwel gebruik je drie vastbepaalde cellen waar je de waarden inbrengt en de criteria laat verwijzen naar deze cellen

Mvg

Rudi
 
Bakkertje dank voor jouw antwoord
"Je kan de criteria v/d autofilters vervangen door inputboxen waar de waarden die moeten verwijderd worden ingebracht worden , ofwel gebruik je drie vastbepaalde cellen waar je de waarden inbrengt en de criteria laat verwijzen naar deze cellen"

maar daar heb ik vraag over
stel dat ik de te zoeken waardes op een ander blad zet (dit komt wat beter uit in het totale werkboek )

zodat ik daar dan bv winkel een artikel 2 in geef hoe kan hij dan zoeken ?:
met input boxen is wat moeijlijk voor mij
dank je wel voor je hulp
 
Zo zou het kunnen.

Op het werkblad Invoerblad zit in de cellen B1, B2 en B3 de zoekwaarde van Artikel, Winkel en Leverancier.

Code:
Sub Voorraad()
With Worksheets("Voorraad")
    .Range("A1:I1").AutoFilter
    .Range("$A$1:$I$20").AutoFilter Field:=1, Criteria1:=Worksheets("Invoerblad").Range("B1").Value
    .Range("$A$1:$I$20").AutoFilter Field:=7, Criteria1:=Worksheets("Invoerblad").Range("B2").Value
    .Range("$A$1:$I$20").AutoFilter Field:=9, Criteria1:=Worksheets("Invoerblad").Range("B3").Value
    .Range("A2:I100").SpecialCells(xlCellTypeVisible).EntireRow.Delete
    .Range("A1:I1").AutoFilter
End With
End Sub

Je zou ook de cellen kunnen benoemen.
Stel dat je de cellen benoemd (invoegen - naam - definiëren) met de eerder genoemde velden. Dan zou het ook kunnen:

Code:
Sub Voorraad()
With Worksheets("Voorraad")
    .Range("A1:I1").AutoFilter
    .Range("$A$1:$I$20").AutoFilter Field:=1, Criteria1:=Range("Artikel").Value
    .Range("$A$1:$I$20").AutoFilter Field:=7, Criteria1:=Range("Winkel").Value
    .Range("$A$1:$I$20").AutoFilter Field:=9, Criteria1:=Range("Leverancier").Value
    .Range("A2:I100").SpecialCells(xlCellTypeVisible).EntireRow.Delete
    .Range("A1:I1").AutoFilter
End With
End Sub

Met vriendelijke groet,


Roncancio
 
verschil

Hallo Roncancio
bijde oplossingen werken ,kun je uitleggen wat het "echte"voordeel ïs van oplossing 2 tov 1
-----------
ik vraag me af of ik het allemaal niet simpeler had kunnen doen met een heel klein stukje "voorrraad beheer"
bv voor winkel 2
Heeft er meerdere op voorraad (JA) ,dan wat kolommen er bij maken
begin voorraad (10),verkochte voorraad (6),nu nog op voorraad (4)
of weet jij daar ook wat beters voor
Groet Annie
 
vraagje

Hallo Roncancio
je gaf als antwoord

"Stel dat je de cellen benoemd (invoegen - naam - definiëren) met de eerder genoemde velden."
dat werkt goed ik heb bv een naam test gemaakt
mijn vraag is hoe verwijder ik die naam weer (kan niet vinden in 2003)
dank je wel
Annie
 
Invoegen >> Naam >> Definieëren >> Naam selecteren >> Verwijderen

Mvg

Rudi
 
Het voordeel van 2 tov 1 is dat je in 2 naar een benoemde cel verwijst en in 1 verwijst je naar een vaste cel.
Dus bij 1 verwijst je naar de cellen B1, B2 en B3.
Bij 2 verwijst naar cellen met een bepaalde naam (Artikel, Winkel en Leverancier).
Indien je 1 of meerdere cellen van 2 verplaatst, dan wordt nog steeds die cel(len) gevonden.
Je hoeft dus niet de code aan te passen.

Voorraadbeheer zou inderdaad een handige optie kunnen zijn.

Met vriendelijke groet,


Roncancio
 
dank

Hallo Roncancio
Dank je wel voor je duidelijke uitleg
ik zal mijn vraag afsluiten
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan