Reeks getallen in 16 hokjes, die in elk hokje met 2 vermenigvuldigd

Status
Niet open voor verdere reacties.

ronaldo12

Gebruiker
Lid geworden
10 mrt 2014
Berichten
48
Hey,

Zou iemand me misschien kunnen helpen met een code waarbij links boven(A1) het getal 1 staat, daarnaast(B1) het getal 2, daarnaast(C1) het getal 4, en dat zo in 16 cellen, 8 bij 8. Dus tot H8

Voorbeeld tot H4 :

2d array.png
 
Laatst bewerkt:
Als je een bijlage (Excel werkboek) plaatst in dit forum (en dat is ervoor gemaakt) is je vraag veel duidelijker en makkelijker te beantwoorden.
 
Probeer deze macro eens:
Code:
Sub Tafel()
Dim i As Integer, y As Integer, x As Integer
Dim res As Long
Dim rng As Range
Set rng = ActiveSheet.Cells(1, 1)
For i = 0 To 7
    For y = 0 To 7
        rng.Offset(i, y) = 2 ^ x
        x = x + 1
    Next y
Next i
End Sub
 
Ja die werkt dankjewel, alleen ik was er vergeten bij te zeggen dat ik het in een 2d array wilde leren
 
Je kunt de code simpel omzetten naar een matrix van 7x7. Maakt voor het resultaat verder niet uit, want dat wil je neem ik aan toch terugzien in je werkblad? En omdat je het wilt leren, zal ik je de oplossing niet geven :)
 
Oké jammer, het is idd een opgave uit een oud schooltentamen. Maar het hoeft verder niet te worden ingeleverd, het tentamen heb ik zelf gevonden op internet en probeer hem nu gewoon te maken voor mezelf. Puur om te oefenen, jammer genoeg zonder uitwerkingen.
 
Laatst bewerkt:
Je hoeft in ieder geval geen complete berichten te quooten, want die van mij staat er meer dan goed leesbaar boven. Dus het bericht herhalen heeft nou niet bepaald een grote meerwaarde :). Dus graag verwijderen als het kan. Dat houdt het draadje een stuk leesbaarder :).
Er hoeven, om de getallen op te slaan in een matrix, maar twee regels te veranderen. Eigenlijk maar 1, want de andere regel is een toevoeging. Die zal ik je vast geven:
Code:
Dim res(7, 7) As Variant
En de regel die anders moet is deze:
Code:
        rng.Offset(i, y) = 2 ^ x
Nog meer weggeven is eigenlijk de hele oplossing cadeau doen :)
 
Je kunt er ook anders naar kijken.
Deze staat waarschijnlijk niet bij de oplossingen:

Code:
Sub M_snb()
  [a1:H8] = [index(256^(row(A1:H8)-1)*2^(column(A1:H8)-1),)]
End Sub

evenmin als deze:

Code:
Sub M_snb()
  [a1:H8] = [index(2^(8*(row(A1:H8)-1)+column(A1:H8)-1),)]
End Sub

Net zo min als:

Code:
Sub M_snb()
   ReDim sn(7, 7)
   
   For j = 0 To (UBound(sn) + 1) * (UBound(sn, 2) + 1) - 1
       sn(j \ (UBound(sn, 2) + 1), j Mod (UBound(sn, 2) + 1)) = 2 ^ j
   Next
   
   Cells(10, 1).Resize(UBound(sn) + 1, UBound(sn, 2) + 1) = sn
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan