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

logistieke locatie generator

Status
Niet open voor verdere reacties.

manueld

Gebruiker
Lid geworden
12 feb 2012
Berichten
216
ik moet een logistiek programma maken in acces. hiervoor heb ik de pallet lokaties nodig in een tabel. tot zover het access verhaal.

om de lokaties niet handmatig in te voeren zoek ik een formule of ander soortige vorm die voor mij een lijst kan genereren met de lokaties.

het lokatie nummer bestaat uit een letter voor de hal. een cijfer voor de rij en dan een letter voor de kolom.

A20AB betekend dus in hal 1. rij 20 kolom AB

hal = A tot D
rij is 001 tot 200
kolom - AA tot DZ

wie heeft een formulie, code of gewoon de hele lijst voor mij. ik heb het eenmalig nodig
 
daar kan ik helaas niets mee. daar gaat het om een pallet registratie systeem in een simpele vorm. mijn systeem zal veel uitgebreider worden. dat systeem kan ik zelf bouwen met access en vba. echter gaat het mij nu puur om de complete lijst. dus ik zoek een lijst die begint met A001AA en eindigd met D200DZ en tussendoor alle waarden heeft die er tussel liggen. ik zoek dus geen registratie systeem want die bouw ik zelf
 
Edit: let op, dit duurt nogal een tijdje. Ik kijk nog even voor een efficiëntere manier.

Voor de rij en Kolom (kopregel in regel 1)
Code:
B2 =AFRONDEN.NAAR.BOVEN(RIJEN(B$2:B2)/104;0)
C2 =DEEL(INDEX(ADRES(1;KOLOM($AA1:$DZ1));1+REST(RIJEN(C$2:C2)-1;104));2;2)

Dit doorkopiëren naar beneden t/m regel 20.801. Naar zichzelf kopiëren als waarde. Dan heb je de gegevens voor 1 hal. Halletter er voor en 3x kopiëren.
 
Laatst bewerkt:
Hmmm.... Flink magazijn? Ik kom met jouw combinaties uit op 83.200 lokaties.... Klopt dat?
 
@Ginger:

Ik ook

Dit eindigt ook 'simpel' met:

Code:
Sub M_snb()
   Cells(1).Resize(83200) = [index(char(65+int((row(1:83200)-1)/20800))&text(mod((row(1:83200)-1),200)+1,"000")&left(address(1,27+int(mod((row(1:83200)-1),20800)/200),4),2),)]
End Sub
 
Ik houd het even op mijn oorspronkelijke oplossing. Het kopiëren van de formules naar beneden is nog wel te doen. Het naar zichzelf kopiëren als waarde, duurt nogal een tijdje (minuten).

Edit: mijn advies is dan ook om de macro van snb te gebruiken. :d
 
Laatst bewerkt:
Véél minder compact dan die van snb (hoe kan het ook anders :thumb:), maar wel met dezelfde uitkomst in codes...
Code:
Sub LokatieNrs()
'hal = A tot D
'rij is 001 tot 200
'kolom - AA tot DZ
'ik zoek een lijst die begint met A001AA en eindigd met D200DZ en tussendoor alle waarden heeft die er tussel liggen
 Dim q2(1 To 83200, 1 To 1)
    
        
    For i = 65 To 68  'hal A t/m D
        For ii = 1 To 200  'rij
            For iii = 65 To 68  'eerste letter van kolom
                For iiii = 65 To 90  'tweede letter van kolom
                    x = x + 1  '
                    q2(x, 1) = Chr(i) & Format(ii, "000") & Chr(iii) & Chr(iiii)
                Next iiii
            Next iii
        Next ii
    Next i
'    Debug.Print x  '  hoeveel lokaties het zouden worden... 83.200
    ActiveSheet.Cells(1).Resize(UBound(q2, 1), 1) = q2
    
End Sub
 
Laatst bewerkt:
bedankt voor de reakties. ik heb ze niet allemaal geprobeerd maar die van Ginger werkt perfect. nu ik het lijstje heb kan ik deze in de database zetten en werkt het geheel. ik heb gevraagd naar de scope zoals aangegeven om rekening te houden met de toekomst. met deze tool kan ik hem makkelijk aanvullen dus heb de scope nu iets kleiner gezet. overigens gaat het om een magazijn van het formaat van een klein voetbalveld dus ja daar kunnen aardig wat pallets staan.

ik kan mij voorstellen dat er meer mensen zijn die snel een dergelijk lijstje willen hebben dus maak er een tooltje van zou ik zeggen ;-)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan