• 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's Inputboxes voor een bestelling

Status
Niet open voor verdere reacties.

AEik

Gebruiker
Lid geworden
4 aug 2015
Berichten
6
Beste lezers,

Al enige tijd ben ik aan het googlen en proberen hoe je in Macro's ervoor kan zorgen dat je een bestelling 'kan plaatsen' waarbij je dmv invoerboxen invoert hoeveel producten je nodig hebt.
Bekijk bijlage Bestellingen.xlsm

Bijvoorbeeld; Bedrijf X heeft 7 verschillende producten die intern besteld kunnen worden en bezorgd moeten worden bij 3 verschillende locaties (locatie 1, 2 en 3) met toevoegingen van A, B, C, etc.
Nu ben ik op zoek naar een Macro die je door de bestelling heen loopt. Op het moment dat je op de Macro knop klikt, Vraagt hij naar de toevoeging van de locatie, aantal Product 1, aantal Product 2 etc.
Daarnaast een aparte Macro die de locaties op toevoeging sorteert (1b, 1a, 1t, 1s --> 1a, 1b, 1s, 1t) etc.

Nu heb ik al het een en ander geprobeerd zonder de invoerboxen, maar telkens als ik de sorteerknop indruk gooit hij alles door elkaar (incl. de kopteksten etc.).

Aan jullie de vraag of dit gemakkelijk op te lossen is?

Mochten er onduidelijkheden zijn, dan hoor ik dit graag!

Met vriendelijke groet,

Arthur
 
Misschien is het handig dat je wat gegevens in het voorbeeld bestandje zet. Als je wil sorteren op iets is het het beste om gegevens logisch in een tabel te zetten. Wat de code verder met de vraag te maken heeft begrijp ik al helemaal niet.

Dus probeer even uit te leggen wat je nu exact wil en plaats dat even in een ander bestandje.
 
Hartelijk dank voor jullie berichten!

Het enige wat nu schort, is dat als ik op Sorteren druk (zie nieuw bestand) en ik heb nieuwe locaties toegevoegd, hij het gehele bestand om zeep helpt.
Hij pakt alleen de geselecteerde cellen in de macro en voegt niet de nieuwe cellen toe.. Is dit überhaupt voor elkaar te krijgen?
En in hoeverre kan ik mijn bestand vertrouwen dat hij de bestellingen niet door de war gooit? Dus dat een locatie (na sorteren) niet de verkeerde bestelling bezorgt krijgt?

Bekijk bijlage Bestellingen.xlsm
 
als je namen definieert voor je "locatie sorteer" gebieden gaat het van zelf goed.
als je in een door een naam gedefinieerde locatie een rij invoegt past het gebied bij de naam zich van zelf aan.
probeer het eens uit.
selecteer een gebied,
ga links boven in het naam vak staan en typ een naam.
enz enz
 
Laatst bewerkt:
Ik heb de namen gedefinieerd als volgt:
(A3:K10 --> locatie_1000)
(A12:K19 --> locatie_2000)
(A21:K27 --> locatie_3000)

Nu ben ik totaal geen kei in vba, maar kan er met foutopsporing toch het een en ander worden opgezocht.. Maar helaas krijg ik dit niet opgelost.. Heb ik de verkeerde "range" benaming gebruikt?
De code in mijn macro is als volgt:

Code:
Sub SorterenOpLocatie()
'
' SorterenOpLocatie Macro
'

'
    Range("locatie_1000").Select
    ActiveWorkbook.Worksheets("Blad1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Blad1").Sort.SortFields.Add Key:=Range("locatie_1000"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("Blad1").Sort
        .SetRange Range("locatie_1000")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
    End With
    Range("locatie_2000").Select
    ActiveWorkbook.Worksheets("Blad1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Blad1").Sort.SortFields.Add Key:=Range("locatie_2000"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("Blad1").Sort
        .SetRange Range("locatie_2000")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
    End With
    Range("locatie_3000").Select
    ActiveWorkbook.Worksheets("Blad1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Blad1").Sort.SortFields.Add Key:=Range("locatie_3000"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("Blad1").Sort
        .SetRange Range("locatie_3000")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
    End With
End Sub
 
ietsje aangepast zie rode tekst
die (1,2) neemt de cel in de eerste rij en de tweede kolom van de aangegeven range:
Code:
Sub SorterenOpLocatie()
'
' SorterenOpLocatie Macro
'

'
    Range("locatie_1000").Select
    ActiveWorkbook.Worksheets("Blad1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Blad1").Sort.SortFields.Add Key:=Range("locatie_1000")[COLOR="#FF0000"](1, 2)[/COLOR], _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("Blad1").Sort
        .SetRange Range("locatie_1000")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
.Apply
    End With
    Range("locatie_2000").Select
    ActiveWorkbook.Worksheets("Blad1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Blad1").Sort.SortFields.Add Key:=Range("locatie_2000")[COLOR="#FF0000"](1, 2)[/COLOR], _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("Blad1").Sort
        .SetRange Range("locatie_2000")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
.Apply
    End With
    Range("locatie_3000").Select
    ActiveWorkbook.Worksheets("Blad1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Blad1").Sort.SortFields.Add Key:=Range("locatie_3000")[COLOR="#FF0000"](1, 2)[/COLOR], _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("Blad1").Sort
        .SetRange Range("locatie_3000")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
.Apply
    End With
End Sub
ps je Apply was verdwenen??
 
Laatst bewerkt:
Ook ietsjes aangepast:d

Code:
Sub VenA()
For Each bereik In ThisWorkbook.Names
    If LCase(Left(bereik.Name, 7)) = "locatie" Then Range(bereik.Name).Sort Range(bereik.Name)(1, 2)
Next
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan