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

Met opties een code genereren.

Status
Niet open voor verdere reacties.

MaikelV70

Gebruiker
Lid geworden
8 sep 2014
Berichten
18
Goedemiddag,

Ik wil graag door middel van een hokjes vinken en de verschillende combinatie daarvan een zo kort mogelijke combinatie krijgen van letters.

Dus dan lijkt mij dat de combinatie een code genereert en vervolgens deze omzet in bijvoorbeeld 2 letters.

Dus bijvoorbeeld rond, groen en lang. dat wordt 456 en dat wordt dan AC.

Is dit mogelijk of kan iemand mij helpen dit op te zetten?
 
Hoeveel opties? wat is de maximale lettercombinatie? Welke letters/cijfers/tekens mogen gebruikt worden? etc. etc. Codering is niet zo heel moeilijk, maar zonder wat meer informatie is het moeilijk om je te helpen.
 
En moet de letter combinatie AC ook terug " rond, groen en lang" herkennen.
 
26 opties waarvan maximaal eigenlijk 7 a 8 worden gecombineerd. Dit dan dus is zo weinig mogelijk karakters, wat mag bestaan uit een combinatie van a tot z en 0 tot 9.
 
A-Z a-z 0-9 (62 combinaties) of alleen a-z 0-9 (36 combinaties)? Dat zijn namelijk belangrijke dingen. A-Z a-Z 0-9 en +- zijn 64 tekens die makkelijk in grote hoeveelheden te coderen zijn. De extra twee tekens (+ en -) zijn dan belangrijk.

Echter is de groepering en eventuele combinaties weer belangrijk voor het kleinste resultaat. Je moet dus een exact voorbeeld geven als je ook een concreet antwoord zoekt.

bijvoorbeeld:
1) kleur, 8 opties, niet optioneel
2) Vorm, 6 opties, niet optioneel
3) grootte, 3 opties, niet optioneel
4) knuffelfactor, 7 opties, optioneel

De uiteindelijke verhouding van optionele/niet optionele opties, opties per type, etc. Geven je de beste encoding scheme. Hoe meer tekens toegestaan, hoe minder tekens je nodig hebt om de opties te encoden. ZIP, RAR en andere compressiemethoden berusten deels op dezelfde techniek. Er is redelijk veel materiaal beschikbaar rond het onderwerp.
 
Het werkt over het algemeen beter als je even excelvoorbeeldje plaatst met hoe je het wil invoeren en wat de uitkomst moet zijn.
 
36 combinaties 0-9 en hoofdletter A t/m Z.

Het gaat uiteindelijk om een sleutel om een artikelcode af te korten. De totale artikelcode bestaat uit meerdere tekens maar de opties nemen de meeste ruimte in beslag en worden daarom op deze manier verkort.

Het moet dus een 26 tal van aanvinkhokjes bevatten. bij dezelfde hokjes moet altijd hetzelfde getal komen.

Hierbij een klein opzetje wat uiteraard dan meer opties moet bevatten uiteindelijk.

Bekijk bijlage Opzet artikelcodering.xlsx
 
36 vinkvakken bedoel je toch ?

Een 36-tallig stelsel lost het voor je op: 36 ^ 2 combinaties weergegeven met 2 karakters.
 
Nee dat bedoel ik niet. met 36 bedoel ik. 36*36 dus AA AB etc tot A9. dan vervolgens AA tot A9 en zo door tot Z9. wat dus de uiteindelijke code weergeeft voor de combinatie van opties. Deze combinatie wordt weergegeven door opties aan te vinken of uit te vinken.
 
26 bits informatie, 36 combinaties per code = minimaal 5 codeplaatsen om al je informatie te vangen.

Let wel op dat zo'n oplossing niet (makkelijk) leesbaar is voor mensen. Daar je eerste letter 5,5 bit informatie bevat is niet direct aan de code te zien wat er allemaal wel en niet inzit.
 
je bedoelt met bits binair tellen? maar ben me er wel van bewust dat je idd 5 codeplaatsen nodig hebt.

Maar het gaat mij er vooral om hoe ik dit kan opzetten op een zo efficiënt mogelijke manier.

waarschijnlijk worden de opties per model verdeelt dus dan worden het er een stuk minder. Maar om opties voor de toekomst open te houden wil ik wel kijken waar de beperkingen zitten.

Ben al wat verder met een opzet maar alles moet wel worden ingevoerd in het 2de tapblad of kan dit eenvoudiger?
Bekijk bijlage Generator.xlsx
 
Ik zou het gewoon met een form doen eigenlijk met een macro. VEEEL eenvoudiger.

Je begrijpt dat je lijst met 26 opties 67miljoen combinaties heeft hè ...? ERRUG lang typen. ;)
 
Ja daarom vraag ik het ook... Zou je misschien een opzetje kunnen laten zien? misschien snap ik het dan ook daadwerkelijk?
 
Overigens heb je met 26 opties net 6 letters nodig (heb ik net getest) Dit in verband met het reserveren van de "0" als er in een blok geen opties zijn aangevinkt.

Mijn voorbeeld kan in principe met een oneindig aantal opties werken en is dus onafhankelijk van hoeveel je werkelijk gebruikt. Zolang je maar opties aan het einde van de lijst toevoegt kun je groeien zo snel je nodig hebt.

Bekijk bijlage codering.xlsm

Dit is puur even om een voorbeeld te geven hoe zoiets kan.
 
Dit is precies wat ik zoek, maar hoe maak ik dit of hoe pas ik het aan?
 
In principe is dit deel de hele logica voor de encodering:

Code:
    Dim letterlist As New Collection
    Dim numberlist As Variant
    Dim lettercode As Long
    Dim total As Double
    
    numberlist = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
    
    For i = 1 To opslag.Count
        If opslag("k" & i).Value = True Then
            total = total + 2 ^ (i - 1)
        End If
    Next i
    While total > 0
        lettercode = total Mod 36
        total = total - lettercode
        total = total / 36
        letterlist.Add lettercode
    Wend
    
    Label2.Caption = ""
    For Each deel In letterlist
        Label2.Caption = Label2.Caption & numberlist(deel)
    Next deel

Maar, hoe je verder moet is een beetje aan jezelf natuurlijk en hoe je de informatie wil gebruiken. Ook het beheer van de opties zul je moeten eerst uit moeten werken. Je hebt ook niet aangegeven hoe je de code verder wil gebruiken in de rest van je sheet / database.

Wat je bijvoorbeeld zou kunnen doen is een kolom "opties" maken en automatisch de form naar boven laten komen op het moment dat je de cel in die kolom aanklikt (of bij dubbelklikken van die cel, of iets dergelijks). Dan de waarde uit de cel decoderen en de juiste vinkjes automatisch weer terugzetten. De namen van de opties kunnen komen uit een aparte tabel eventueel, of je kunt die "hardcoden" in je form. Kijk dus eerst even naar je design en eventueel gebruik in de toekomst en kom dan met een voorstel om het verder uit te werken.
 
Ik ben niet bekend met het opbouwen van een dergelijke codering. Door gegevens aan te passen heb ik wel gezien hoe ik dingen kan aanpassen.
Hoe dit werkt is eigenlijk al bijna wat ik graag zou willen. ik wil alleen de opties nog een unieke naam kunnen geven.

Hoe bouw ik een dergelijke codering op?
 
Ik bedoelde eigenlijk dat ik de opties die zichtbaar worden na het klikken op de knop een eigen naam wil geven. Die in het Userform1 dus.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan