Kun je me eenvoudige uitleg geven hoe dit werkt?
Voor mij zijn de meeste codes abcadabra .... ik weet alleen in gedachten hoe ik 't hebben wil.
Maar wil dit wel 's onder de knie hebben.
Dus als je stap voor stap is wilt toelichten hoe één en ander werkt?
While Mid(ComboBox1.Value, Tekst, 1) <> "(" And Tekst <= Len(ComboBox1.Value)
Tekst = Tekst + 1
Wend
Range("C" & X).Offset(1, 0) = Trim(Mid(ComboBox1.Value, Pos, Tekst - Pos))
While....Wend is een gedeelte van een programma dat meer dan 1 keer wordt doorlopen.
Dit noemen we een lus (in het Engels een "loop").
Mid(ComboBox1.Value, Tekst, 1) <> "("
Het commando Mid is identiek aan DEEL. Dus DEEL( tekst , start , aantal karakters )
Tekst = waarde van de combobox1.value
start = De positie vanwaar gezocht moet worden. (deze waarde wordt dus steeds met 1 verhoogd zodat de computer naar de volgende letter gaat).
aantal karakters = 1
De computer kijkt wat de gekozen waarde is in Combobox1. De computer zoekt naar (.
Dus elke letter in de tekst van combobox1 wordt gecontroleerd of dat een ( is.
Om te voorkomen dat er oneindig gezocht wordt naar ( als er bijvoorbeeld in de tekst geen ( staat, is het raadzaam een limiet aan de waarde van Tekst te zetten. Vandaar de toevoeging:
And Tekst <= Len(ComboBox1.Value)
Len = lengte ( spaties worden meegeteld !)
De computer gaat dus net zolang zoeken totdat de ( is gevonden OF als de waarde van Tekst groter is dan de lengte van de waarde van de combobox.
Range("C" & X).Offset(1, 0) = Trim(Mid(ComboBox1.Value, Pos, Tekst - Pos))
De volgende regel in de C kolom wordt gevuld met een deel van de waarde van de combobox.
In stukjes:
- Range("C" & X).Offset(1,0) ==> volgende regel (1 regel omlaag, 0 kolommen naar rechts)
- Trim ==> eventuele spaties aan het begin en einde worden verwijderd.
Ik hoop dat ik een klein beetje licht in de duisternis heb gebracht.
Als er vragen zijn, dan hoor ik het wel.
Met vriendelijke groet,
Roncancio