Springen naar inhoud


- - - - -

Dynamische Matrix

excel vba arrays matrix

  • Log in a.u.b. om te beantwoorden
Er zijn 2 reacties in dit onderwerp

#1 7Duwi

7Duwi

    Starting Developer

  • Leden
  • 12 berichten
    Laatst bezocht 19 mrt 2016 18:41

Geplaatst op 14 maart 2016 - 22:28

hej vbib,
ik had iets geschreven waarbij ik een dynamische matrix nodig had. Maar werkt niet volledig. De bedoeling is dat die een groep waarden inleest vanuit het werkblad. Hieronder de code die enkel dat zou moeten doen, maar als ik controleer krijg ik enkel de eerste rij. Het aantal kolommen doet hij wel goed. Ik krijg tijdens het inlezen geen foutmeldingen bij de getallen in de tweede en vedere rijen, maar als ik ze opvraag bestaan ze niet. Ik zie de fout niet.

Visual Basic Code:
Dim dmtrx() As Integer

i = 1
j = 1
x = 1
y = 1

Do While Cells(i, 1) <> ""
Do While Cells(1, j) <> ""
	 ReDim Preserve dmtrx(1 To y, 1 To x)
	 dmtrx(y, x) = Cells(i, j)
	 j = j + 1
	 x = x + 1
Loop
i = i + 1
y = y + 1
Loop

'controle
For k = 1 To UBound(dmtrx, 1)
For l = 1 To UBound(dmtrx, 2)
	 MsgBox dmtrx(k, l)
Next l
Next k



#2 7Duwi

7Duwi

    Starting Developer

  • Leden
  • 12 berichten
    Laatst bezocht 19 mrt 2016 18:41

Geplaatst op 17 maart 2016 - 10:52

hej vbib,
Ik ben het zo gewoon om alles in te lezen met for-nexts dat ik nu pas zie dat ik na de binnenste loop j en x terug op 1 moet zetten. Echter krijgt de redim dan op de tweede rij (1 tot 2, 1 tot 1) terwijl het logischer is dat dit (1 tot 2, 1 tot 6) moet zijn aangezien het aantal kolommen in mijn matrix (meestal dan toch) 6 is. Maar als ik dan de “1 to x” in het redim commando vervang door “1 to 6” (als test), dan geeft hij na de eerste rij een fout op dat redim commando… Ik ben dus wat meer te weten gekomen, maar het is nog niet opgelost.. Iemand die weet wat ik fout doe? Of misschien een betere manier om een matrix met variabele grootte in te lezen?
alvast dank

#3 7Duwi

7Duwi

    Starting Developer

  • Leden
  • 12 berichten
    Laatst bezocht 19 mrt 2016 18:41

Geplaatst op 19 maart 2016 - 18:40

net ontdekt dat je enkel de laatste dimensie kan redimensioneren... das absurd als je nagaat hoeveel programma's daar gebruik van willen maken.. ik zal wel een gewone vaste matrix maken met de maximaal aantal nodige rijen. de ongebruikte zal ik op de één of andere manier wel negeren.





Ook met taq excel, vba, arrays, matrix voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


Untitled 1

Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)