Oneven getallen in Excel werkblad plaatsen via VBA

Status
Niet open voor verdere reacties.

ludo57

Gebruiker
Lid geworden
26 jul 2012
Berichten
18
Hallo, ik vraag via een InputBox een positief geheel getal.
Vanaf 1 tot dat getal worden de oneven nummers opgeteld.
Dit gaat perfect met deze code:
Sub OddIntegers()
Dim posint As Integer
Dim i As Integer
Dim sum As Integer
posint = InputBox("Geef een positief geheel getal")
sum = 0
For i = 1 To posint Step 2
sum = sum + i
Next i
MsgBox sum
End Sub
Het probleem is: die oneven nummers moeten in een werkblad geplaatst worden, beginnende in vak "A1" en zo naar beneden.
Heb al van alles geprobeerd, maar het lukt me niet.
Iemand een oplossing ?
Dank bij voorbaat.
Groetjes, Ludo
 
Laatst bewerkt:
Je bedoelt dit?
Code:
Sub OddIntegers()
    Dim posint As Integer
    Dim i As Integer
    Dim r As Integer
    
    posint = InputBox("Geef een positief geheel getal")
    For i = 1 To posint Step 2
        r = r + 1
        Cells(r, 1) = i
    Next i
End Sub
 
of

Code:
Sub M_snb()
    y = abs(InputBox("getal"))
    Cells(1).Resize(y \ 2) = Evaluate("2*row(1:" & y \ 2 & ")-1")
End Sub
 
Je bent me net voor.
Code:
Sub OddIntegers()
Dim posint As Integer
 posint = InputBox("Geef een positief geheel getal")
 Range("a1:a" & posint \ 2 + 1) = Evaluate("row(1:" & posint \ 2 + 1 & ")*2-1")
End Sub
 
@snb,

Insgelijks. :cool:
 
Je bedoelt dit?
Code:
Sub OddIntegers()
    Dim posint As Integer
    Dim i As Integer
    Dim r As Integer
    
    posint = InputBox("Geef een positief geheel getal")
    For i = 1 To posint Step 2
        r = r + 1
        Cells(r, 1) = i
    Next i
End Sub
 
Ik was nog iets vergeten.
Onderaan zou dan de som van die getallen moeten komen, hoe doe je dat ?
 
Zo bijvoorbeeld:
Code:
Sub OddIntegers()
    Dim posint As Integer
    Dim i As Integer
    Dim r As Integer
    Dim s As Integer
    
    posint = InputBox("Geef een positief geheel getal")
    For i = 1 To posint Step 2
        s = s + i
        r = r + 1
        Cells(r, 1) = i
    Next i
    Cells(r + 2, 1).Formula = "=SUM(A1:A" & r & ")"
End Sub

Zoals je eerder hebt gezien zijn er meer mogelijkheden ;)
 
Laatst bewerkt:
Zoals jij het doet, lijkt het simpel.
Ik was al bezig met Range en Offset, maar het werkte niet.
Thx voor deze oplossing die wel werkt.
Toppie !!!
 
Code:
Sub M_snb()
    y = InputBox("getal")
    Cells(1).Resize(y \ 2) = Evaluate("2*row(1:" & y \ 2 & ")-1")
    Cells(1).Offset(y \ 2) = Application.Sum(Cells(1).Resize(y \ 2))
End Sub
 
Of
Code:
Sub rebmog()
    y = InputBox("getal")
    Cells(1).Resize(y \ 2) = [2*row(a:a)-1]
    Cells(1).Offset(y \ 2) = Application.Sum(Cells(1).Resize(y \ 2))
End Sub
 
@Reb

Kan ik mee leven :thumb:

Maar is wel een hoop rekenwerk:

Code:
Sub M_snb()
  sn = [2*row(a:a)-1]
  msgbox UBound(sn) & vbtab & UBound(sn, 2)
End Sub

De som van getallen kan eenvoudiger:

Code:
Sub M_snb()
    y = InputBox("getal")
    Cells(1).Resize(y \ 2) = Evaluate("2*row(1:" & y \ 2 & ")-1")
    Cells(1).Offset(y \ 2) = (y \ 2) ^ 2
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan