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

Macro optellen

Status
Niet open voor verdere reacties.

Hoornvan

Terugkerende gebruiker
Lid geworden
10 feb 2002
Berichten
3.333
Hallo,
Ik ben een beetje aan het proberen om een macro te maken.
Ik heb een boekje basiscursus macro en krijg al voorelkaar dat hij b.v. 1 tot 10 onderelkaar zet.
Maar nu wil ik dat hij b.v. 5 en 5 in de volgende cel dit erbij optelt, dus 5 + 5 en de volgende word dan 15 enz.
Is dit mogelijk?
Alvast bedankt
 
Zo iets misschien:
Code:
Sub test()
Dim i As Integer
  For i = 5 To 50 Step 5
    ActiveCell = i
    ActiveCell.Offset(1, 0).Select
  Next i
End Sub
 
Hallo Ingrid,
Bij mij in het boekje staat het zo;
For i = 1 To 10
ActiveCell.FormulaR1C1 = "" & CStr(i)
Selection.Offset(1, 0).Select
Next i

Het geen jij schreef werkt.
 
Als je VBA leert vanuit een boek, klik dan ook bij elke nieuwe instructie eens op F1 zodat je ook de extra mogelijkheden hiervan kan bekijken in de Help.
 
Hoi Hoornvan,

In Vba is veel mogelijk en op veel verschillende methoden, zonder onderscheid te maken in wat een betere of slechtere methode is.

Ik heb eerder op dit forum al aangegeven dat bijvoorbeels de functies Range("B6") ongeveer hetzelfde doet als Cells(2,6).

In beide gevallen kun je een getal, tekst of formule uit excel inlezen in Vba of vanuit Vba in Excel zetten.

Met Cells(6,2) = "=sum(B1:B5)" zet je in B6 de formule som(B1:B5) in Excel.

Zo zijn er veel leuke en handige mogelijkheden in Vba. Kijk naar een aantal oude discussies op dit forum en probeer na te bouwen wat er gebeurt.

Ook kun je de macroopnemer gebruiken. Maak wat in excel en bekijk de macro en bouw deze daarna na in Vba.

Computeridee is vooral handig om ideeen op te doen met Excel. Vba komt zeer weinig aan de orde.

Jeroen
 
Hallo,
Ik ben al een klein beetje verder gekomen na veel proberen.
F6 geeft 60
F7 geeft 120
F8 geeft 180
F9 geeft 180 enz
Na dat ik = Range("F7") + graden had gezet kreeg ik het tot zover voorelkaar.
Hij moet dus eigenlijk steeds de vorige cel hebben en daar dan de graden bij optellen.
= - Range of - cel heb ik geprobeerd maar dat werkt niet.
Waarom doet hij F8 wel goed en verder niet?
Groetjes hoornvan

gat = Range("C5")
graden = Range("C7")

Range("E6").Select 'begin in E6
'lus
For g = 1 To gat
ActiveCell.FormulaR1C1 = "" & CStr(g)
Selection.Offset(1, 0).Select
Next g

Range("F6").Select 'begin in F6
'lus
For gr = 1 To gat
ActiveCell.FormulaR1C1 = graden
ActiveCell.FormulaR1C1 = Range("F7") + graden
Selection.Offset(1, 0).Select
Next gr
 
Hoornvan,

ipv telkens met ActiveCell te werken moet je ook eens proberen om gebruik te maken van Cells. De macro kan dan verkort worden tot dit:
Code:
Sub test()
Dim i As Integer
  For i = 1 To Range("C5")
    Cells(5 + i, 5) = i
    Cells(5 + i, 6) = i * Range("C7")
  Next i
End Sub
 
Hallo Ingrid,

Hartelijk bedankt voor je inzet.
Het werkt precies zo als ik bedoelde.
Ik zat helemaal in de verkeerde hoek te zoeken, zoals jij het gedan heeft , lijkt het zo simpel.
Zulke dingen staan volgens mij niet in een boek.
Ik heb het boek Basiscursus Macro's in Office 2000 daar had ik het van 1 tot 10 uit en ben daar verder mee gegaan.
Groetjes Hoornvan
 
Veel oefenen is het belangrijkste. En probeer er ook af en toe de tijd voor te nemen om vroeger gemaakte macro's terug te bekijken en aan te passen (verbeteren) met wat je ondertussen hebt geleerd. Dit lijkt misschien tijdverlies, maar je zal merken dat je daar veel uit kan leren.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan