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

Wie kan mij helpen met Macro's of iets anderS?

Status
Niet open voor verdere reacties.

SynerDennis

Gebruiker
Lid geworden
7 jul 2020
Berichten
40
Hoe kan ik dit automatiseren in een Macro?

Te veel criteria denk ik :confused:

Gegeven;

ik heb bv 24 cans tussen >19 <24 kg dat ik op 1 Euro pallet kan zetten.
Alles wat boven de 24 st is wordt blok.

Alles tot 12 cans tussen >19 <24 kg is 1 Mini pallet.
Daarboven wordt weer Euro pallet.

Zo heb ik meerder verpakking 's mogelijkheden.
8 vaten van 60> kg is Euro
6 vaten van <60 kg is Euro

Hoop dat jullie mij in de goede richting kunnen duwen.

hier het bestand:
Bekijk bijlage Test.xlsx
 

Bijlagen

  • Knipsel.PNG
    Knipsel.PNG
    13,1 KB · Weergaven: 92
  • Test.xlsx
    28,2 KB · Weergaven: 43
Laatst bewerkt:
Er is vast wel iemand die je wil helpen, maar plaats een bestand i.p.v. een plaatje.
 
Hoe ga je erachter komen wanneer iets samen in een doos moet? Dat wordt een complex verhaal
Je zou bijvoorbeeld ook kunnen zeggen dat de derde CAN, de STK en FLS in 2 dozen zouden passen
 
Laatst bewerkt:
Bekijk bijlage Test.xlsx

Heb hier een voorbeeld gemaakt.

Misschien is dit wat duidelijker ipv dozen.

zo weet ik dat 24 cans van 24 kg op 1 pallet passen.
zo weet ik dat 12 cans van 24 kg op 1 Mini pallet passen

Moet dus iets hebben dat kijkt naar aantal, gewicht en eenheid. met die gegeven kiest voor pallet, mini pallet of een blok.
 
Laatst bewerkt door een moderator:
Dus je gaat sla en cola in 1 doos stoppen? Wat bij 2 kroppen sla en 10 flessen cola? Wat is de inhoud van een fles cola en welk gemiddeld gewicht neem je aan voor een krop sla? Rekenkundig zal dit vraagstuk wel op te lossen zijn maar je zal wat meer informatie moeten komen. Als je gebruik wil maken van een macro dan zijn lege rijen en lege kolommen niet het meest handig. Je hebt ook nog een kolom met een xxl doos. Moet hier ook nog wat mee gebeuren?

[Edit] #5 gemist maar geeft niet veel meer duidelijkheid.
 
Laatst bewerkt:
ja dat voorbeeld is een beetje lastig.

ik kan bv 24 cans tussen >19 <24 kg op 1 Euro pallet kwijt.
Alles wat boven de 24 st is wordt blok.

Alles tot 12 cans tussen >19 <24 kg is 1 Mini pallet.
Daarboven wordt weer Euro pallet.

Zo heb ik meerder verpakking 's mogelijkheden.
8 vaten van 60> kg is Euro
6 vaten van <60 kg is Euro

Ik denk dat dit te complex is :(
 
Laatst bewerkt door een moderator:
@ SynerDennis: Heb inmiddels al 3 of 4 onnodige quotes van je verwijderd. Als je direct op iemands bericht reageert hoef je niet te quoten.
 
VBA is maatwerk. Als je bij elk bericht met wat anders komt dan zijn er weinig helpers die die gok wagen. Dus bedenk eerst zelf wat je nu eigenlijk wil. En geef ook gericht antwoord op de vragen die er gesteld zijn.
 
Laatst bewerkt:
De code voor het eerste bestand ligt inmiddels in de prullenbak (alhoewel er al een raadsel stond van xxldoos).
Verder niet meer naar gekeken na het uploaden van het tweede bestand.
 
Ik ben totaal niet bekend met Macro's dus weet ook niet wat de mogelijkheden zijn. vandaar mijn onduidelijkheid.

als ik vermeld wat ik wil, klinkt het zo onwerkelijk.

Kolom M , N en O zijn belangrijk.
Totaal aantal, mogen voor een Europallet niet meer zijn dan 24 cans tussen 19/29 kg wel? wordt het een Blok dan moet er een waarde van "1"ingevuld worden. kolom Q, R of S
Totaal aantal, mogen voor een Minipallet niet meer zijn dan 12 cans tussen 19/29 kg wel? wordt een Euro dan moet er een waarde van "1"ingevuld worden. kolom Q, R of S

1 euro is dus criteria van min 13 cans max 24 cans, 24 cans tussen de 19/29 kg. dan moet er in kolom Q op de geel gearceerde regel een "1"komen
onder de 13 wordt dus een MP dan moet er in kolom R een "1" komen.

Zo hebben we voor de pallets;

Euro Type;
Can max 24 19/29 kg
Vat max 6 56/59 kg
Vat max 8 60/65 kg
Vat max 2 200+ kg

Mp Type:
Can max 12 19/29 kg
Vat max 2 56/59 kg
Vat max 4 60/65 kg
Vat max 1 200+ kg

Blok Type:
Can max 32 19/29 kg
Vat max 8 56/59 kg
Vat max 9 60/65 kg
Vat max 4 200+ kg
 
Laatst bewerkt:
Ik ben even bezig geweest; geen idee of ik de goede kant op ga.

gegeven:
In kolom M heb ik Aantallen staan, die wil ik laten optellen als er "Can" in kolom "N" staat en het gewicht in kolom "O" tussen 19/29 kg zit.
Als het dan gelijk of onder 12 zit "<=" (het aantal van kolom M) dan vult het in kolom R5 een "1". (Dit is per bestand verschillende dus de invulling moet op de gearceerde gele regel) "Kolom Q is waarde Euro, Kolom R is waarde Mp en Kolom S is waarde Blok"

Dan krijg ik een lege regel, en dan wil ik dat die opnieuw deze criteria gebruikt.

En zo heb ik meerdere Criteria's die ik wel wil uitschrijven. maar krijg hier al keer op keer foutmelding.


Code:
Sub Tellen()
If Range("m2:m4").Value <= 12 And Range("N2:N4").Value = "can" And Range("O2:O4").Value > 19 And Range("o2:o4").Value < 29 Then
   
    Range("r5").Value = "1" Or _
    

If Range("m2:m4").Value < 24 And Range("m2:m4").Value > 13 And Range("N2:N4").Value = "can" And Range("O2:O4").Value > 19 And Range("o2:o4").Value < 29 Then
   
 
       Range("q5").Value = "1" Or _
       
If Range("m2:m4").Value < 32 And Range("m2:m4").Value > 24 And Range("N2:N4").Value = "can" And Range("O2:O4").Value > 19 And Range("o2:o4").Value < 29 Then
   
 
       Range("s5").Value = "1"
    
    
End If


End Sub

Inmiddels wat verder aan het puzzelen gegaan en heb ik dit werkend gekregen.

Code:
Sub Tellen_Export()
Dim aantal As Integer, gewicht As Integer, Euro As String, MP As String

aantal = Range("m2").Value
gewicht = Range("o2").Value
If aantal >= 1 And aantal <= 12 And gewicht <= 26 And gewicht >= 15 And InStr(Range("N2").Value, "CAN") Then
MP = "1"
End If
If aantal >= 1 And aantal <= 4 And gewicht <= 66 And gewicht >= 60 And InStr(Range("N2").Value, "VAT") Then
MP = "1"
End If
If aantal >= 1 And aantal <= 2 And gewicht <= 59 And gewicht >= 56 And InStr(Range("N2").Value, "VAT") Then
MP = "1"
End If

If aantal >= 13 And aantal <= 26 And gewicht <= 26 And gewicht >= 15 And InStr(Range("N2").Value, "CAN") Then
Euro = "1"
End If
If aantal >= 5 And aantal <= 8 And gewicht <= 66 And gewicht >= 60 And InStr(Range("N2").Value, "VAT") Then
Euro = "1"
End If
If aantal >= 3 And aantal <= 6 And gewicht <= 59 And gewicht >= 56 And InStr(Range("N2").Value, "VAT") Then
Euro = "1"
End If
If aantal >= 9 And aantal <= 12 And gewicht <= 59 And gewicht >= 56 And InStr(Range("N2").Value, "VAT") Then
Euro = "2"
End If
If aantal >= 7 And aantal <= 8 And gewicht <= 59 And gewicht >= 56 And InStr(Range("N2").Value, "VAT") Then
Euro = "1"
MP = "1"
End If

If aantal >= 27 And aantal <= 32 And gewicht <= 26 And gewicht >= 15 And InStr(Range("N2").Value, "CAN") Then
Blok = "1"
End If

Range("r5").Value = MP
Range("q5").Value = Euro
Range("S5").Value = Blok

End Sub
 
Laatst bewerkt:
Cellen optellen in VBA

Ik wil graag Cellen optellen van Range("A2:A7") en met die som verder programmeren, Zonder een eind som in je excel file te krijgen.
Bijvoorbeeld;

If Range("A2:A7") <= 12 And InStr(Range("B2:B7").Value, "VAT") Then...
 
Dus :

Code:
if sum(Range("A2:A7")) <= 12 And InStr(Range("B2:B7").Value, "VAT") Then...
 
Heb het geprobeerd toe te passen;

Code:
Dim aantal As Integer, gewicht As Integer, Euro As String, MP As String

aantal = Sum(Range("m2:m5")).Value
gewicht = Sum(Range("o2:o5")).Value

If aantal >= 1 And aantal <= 12 And gewicht <= 26 And gewicht >= 15 And InStr(Range("N2").Value, "CAN") Then
MP = "1"
End If

Enig idee wat ik fout doe? krijg melding "compileerfout Sub of function is niet gedefineerd"
 
@Digicafee

Code:
Msgbox typename(Range("B2:B7"))
 
Over de recent(st)e Office-versies kan ik niet meepraten, maar destijds werd "Sum" niet door vba 'begrepen'.
Vervang het eens door "Application.Sum"
 
@Enigmasmurf

De foutmelding is hierdoor inderdaad weg, echter werkt de code niet.

Code:
aantal = Application.Sum(Range("m2:m4"))
gewicht = Range("o2").Value

If aantal >= 1 And aantal <= 12 And gewicht <= 26 And gewicht >= 15 And InStr(Range("N2").Value, "CAN") Then
MP = "1"
End If

Range("r5").Value = MP
Range("q5").Value = Euro
Range("S5").Value = Blok

Knipsel.PNG

Veld blijft leeg in r5
 
De alignering in je screenshot (links nl.) laat me vermoeden dat er geen 'getallen' instaan, maar 'cijfers weergegeven als tekst' ...

PS : voorbeeld in bestand meesturen is altijd makkelijker !
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan