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

String omzetten naar getal met Macro

Status
Niet open voor verdere reacties.

ExcelAmateur

Terugkerende gebruiker
Lid geworden
25 aug 2010
Berichten
3.333
Beste helpers,

Aller eerst de beste wensen voor 2019

Ik ben al een paar dagen aan het zoeken naar een oplossing,
om in de macro de inhoud van een cel gevuld met letters om te zetten naar cijfers.
Dit wil me niet lukken, anders had ik geen hulp hoeven vragen.

In het bestandje word het wel duidelijk denk ik en misschien is dit wel niet mogelijk.

Als het niet kan wat ik wil, dan is het geen probleem maar dacht dat dit sneller zou gaan,
rechtstreeks met de macro een oplossing zoeken.

Alvast hartelijk bedankt voor het bekijken van het bestandje en eventuele oplossing.
 

Bijlagen

  • Test Zoeken.xlsm
    19,4 KB · Weergaven: 101
A2, C2 en E2 zijn al getallen en kan je dus gewoon mee rekenen.
Ik begrijp dus niet wat je precies bedoelt.
 
Beetje meer uitleg zou fijn zijn. Wat stellen de getallenreeksen voor in R1 t/m R3?
 
@edmoor,

A2 en de andere zijn wat het moet worden.

@SjonR,

Dit is maar een klein stukje van het geheel.
R1:R3 de kolom is veel langer, daar staat eigenlijk de juiste oplossing tussen, die moet hij vinden.
Dus ben hiermee aan het proberen, wat niet wil lukken.

Misschien is het nu wat duidelijker.

Het is een deel van een puzzel.
 
Laatst bewerkt:
Die string getallen kan je omzetten met de functie Integer:
PHP:
=INTEGER(R1)

Of:
=R1*1
 
Laatst bewerkt:
Bij getallen staat er nooit een 0 vooraan.
Je wilt dus de letters FD, HG en HB omzetten naar cijfers?
Maar wat maakt FD dan 93, HG 54 en HB 45?
 
Ik heb mijn vorige bericht een beetje aangepast.
Op de link die daar staat doet er ongeveer 30 sec. over de oplossing.
Bij mij is dat 8:30 uur, dus dacht ik het zo sneller te maken.
De letter krijgen steeds een andere waarde.

Het is verder geen probleem, ik kan namelijk op het net er niets over vinden, hoe men te werk gaat. De juiste combinatie staat tussen 3628000 combinaties.
 
Laatst bewerkt:
Sorry hoor, maar ik heb werkelijk geen idee waar je het nu over hebt en wat precies je bedoeling.
En welke link?
 
Ik stop er maar mee, zet de vraag als opgelost, denk dat het niet gaat.
Beiden hartelijk bedankt voor het proberen te begrijpen.
Het is lastig om uit te leggen aan een ander.
 
Die ken ik niet en kan ik dus qua VBA niets mee.
Wellicht dat iemand anders je er mee kan helpen.
 
En welke link?
Bij de link staat de volgende informatie:
De breinbreker staat al sinds jaar en dag regelmatig op de dinsdag en zaterdag in het dagblad De Telegraaf. Het is een cijferpuzzel van drie maal drie getallen met een wiskundige of logische relatie, letters moeten worden omgezet in cijfers.

De onbekende grootheden zijn 10 letters A,B,C,D,E,F,G,H,J en K die door een cijfer 0,1,2,3,4,5,6,7,8 of 9 vervangen moeten worden om de algebraïsche vergelijkingen te doen kloppen. Elke letter stelt één van de cijfers voor. Elke letter wordt gebruikt, het vraagtsuk heeft daarbij 1 oplossing. In principe hoeft dit mathematisch niet zo te zijn als bijvoorbeeld alleen de letters A, B en C zijn gebruikt waarbij meerdere oplossingen mogelijk zijn.

Breinbreker Telegraaf De breinbreker solver evalueert met "brute force" alle mogelijke cijfer combinaties d.m.v. permutatie. Met 10 cijfers is dit 10 faculteit. 10! = 3.628.800, een lange lijst met meer dan 3½ miljoen aan mogelijkheden.

Permutaties:
0 1 2 3 4 5 6 7 8 9
1 0 2 3 4 5 6 7 8 9
0 2 1 3 4 5 6 7 8 9
. . . . . . . . . . . .
9 7 8 6 5 4 3 2 1 0
8 9 7 6 5 4 3 2 1 0
9 8 7 6 5 4 3 2 1 0

Dit kost veel seconden. In de volgende versie zal dit sneller gaan met een betere strategie door de zoekruimte te beperken. Zo is vaak het cijfer 0 eenvoudig te beredeneren. Er rest dan 9 faculteit mogelijkheden, 10 keer zo snel! Wellicht zijn ook binomiaal stappen te maken. Dus bijvoorbeeld 5 letters uit 10 op maximaal 6 vergelijkingen uit te proberen = binomiaal 252 x 6 = 1512 mogelijkheden.

Door het lege vakje bij de breinbreker oplosser aan te vinken kan men een overgenomen breinbreker uit de krant naar de online breinbreker transporteren. Uiteraard wordt eerst 'achter de wolk' een oplossing berekend voordat men online met wat gissen kan gaan puzzelen.

Bij de online breinbreker wordt het aantal "checks" geteld met daarbij de fouten. Elk rood vakje telt als fout. Dubbel ingevoerde (oranje) cijfers wordt als 1 fout gerekend. Met wat slim gokken is de algebraïsche puzzel vrij eenvoudig met zo min mogelijk rode punten op te lossen.

De random breinbrekergenerator heeft 19 verschillende rekenkundige patronen verdeeld in 4 blokken met elk 60 breinbrekers waarvan de oplossing bekend is.
 
mogelijks via "Oplosser" ???
 
Op de valreep een poging:
Vul cel: A1, C1 eb E1 in
Klik op button.
Et voila.....?
Code:
Sub Bruut()
  txt1a = Left([A1], 1): pos1a = Asc(txt1a) - 64
  txt1b = Right([A1], 1): pos1b = Asc(txt1b) - 64
  txt2a = Left([C1], 1): pos2a = Asc(txt2a) - 64
  txt2b = Right([C1], 1): pos2b = Asc(txt2b) - 64
  txt3a = Left([E1], 1): pos3a = Asc(txt3a) - 64
  txt3b = Right([E1], 1): pos3b = Asc(txt3b) - 64
  For i = 1 To 3
    kode = Range("R" & i).Value
    txt1 = Mid(kode, pos1a, 1) & Mid(kode, pos1b, 1)
    txt2 = Mid(kode, pos2a, 1) & Mid(kode, pos2b, 1)
    txt3 = Mid(kode, pos3a, 1) & Mid(kode, pos3b, 1)
    cyf1 = CLng(txt1)
    cyf2 = CLng(txt2)
    cyf3 = CLng(txt3)
    Cells(5 + i, 1).Value = cyf1
    Cells(5 + i, 3).Value = cyf2
    Cells(5 + i, 5).Value = cyf3
    Cells(5 + i, 7).Value = cyf1 - cyf2
    If cyf1 - cyf2 = cyf3 Then MsgBox "Oplossing gevonden voor i=" & i
  Next i
End Sub
 

Bijlagen

  • Test Zoeken(pcb).xlsm
    23,7 KB · Weergaven: 45
Laatst bewerkt:
@PIET Bom,

Hartelijk bedankt voor uw poging. :thumb:
Ik ga het in mijn bestand invoeren en testen.
 
@PIET Bom,

In zulk soort puzzels word de letter I niet gebruikt.
Dus daar geeft hij nu een fout, en ik heb van alles al geprobeerd maar krijg het er niet uit.

De letters die gebruikt worden zijn;
A B C D E F G H J K

Hoe kan ik de I verwijderen zodat hij wel van de goede Letter het cijfer pakt.
Zie bestandje, de rode cijfers zijn de goede.

Alvast hartelijke bedankt.
 

Bijlagen

  • Test Zoeken(pcb).xlsm
    31 KB · Weergaven: 41
Naar mate ik er langer naar kijk, kom ik tot de conclusie dat het oplossen van breinbreker 82 heel lastig is.
Ik ga er vanavond nog eens op broeden en zien of ik het geheel in kleinere deel vraagstukken kan hakken.
Ik heb aan brute force zitten denken, maar ook aan Lineair Programmeren (zoals de Solver).
Als ik een stapje verder kom, laat ik het weten.
 
@Piet Bom,

Alvast hartelijk bedankt dat je er nog wat aandacht aan wil besteden. :thumb:
Ik heb op het www net gezocht maar kan er niets over vinden.

Op de site van breinbreker gaat het zo snel, is dit wel met Excel gedaan?
Van andere software programma's weet ik helemaal niets, Java of C+

Ik wacht geduldig af en zoek nog verder op het www net, je moet net de goede zoek vraag hebben.
Anders kan de zoekmachine het niet vinden.
 
Ik heb de oplossing gevonden voor BreinBreker nr.82 :)
Zie bijlage voor de weg erheen:
Eerst wat uitleg vooraf:
In principe kan iedere letter gelijk zijn aan de getallen 0 t/m 9
Echter door eens goed naar de afzonderlijke formules te kijken,
kun je de reeks beperken. Hierdoor is de brute force methode sneller gedaan.
Bijvoorbeeld de formule: CKA + DA = CGA
A kan alleen 0 zijn, omdat je 2 getallen moet optellen die eindigen op A,
dan zal de uitkomst alleen A kunnen zijn als A gelijk aan 0 is:
231 + 41 = 272 en eindigt dus niet op 1
342 + 52 = 394 en eindigt dus niet op 2
en zo verder tot 9.
780 + 10 = 790 en eindigt wel op 0
 

Bijlagen

  • BreinBreker082.xlsb
    95 KB · Weergaven: 57
Piet Bom,

Hartelijk bedankt voor deze oplossing. :thumb:
Bedankt dat je er zoveel tijd in heb gestoken. :thumb::thumb:
IK ga hem eens goed bekijken en met andere waardes testen.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan