For Next Probleem

Status
Niet open voor verdere reacties.

Peterjur

Gebruiker
Lid geworden
25 apr 2011
Berichten
105
Gechte helpers,zit met het volgende probleem ik heb een lange rij vba code maar misschien heb ik het mis maar ik denk dat het korter kan?

Code:
    Range("K8").FormulaR1C1 = "=Jan!R[2]C[-8]"
    Range("L8").FormulaR1C1 = "=Jan!R[2]C[-6]"
    Range("M8").FormulaR1C1 = "=Jan!R[2]C[-6]"
    Range("K9").FormulaR1C1 = "=Feb!R[1]C[-8]"
    Range("L9").FormulaR1C1 = "=Feb!R[1]C[-6]"
    Range("M9").FormulaR1C1 = "=Feb!R[1]C[-6]"
    Range("K10").FormulaR1C1 = "=Mrt!R[0]C[-8]"
    Range("L10").FormulaR1C1 = "=Mrt!R[0]C[-6]"
    Range("M10").FormulaR1C1 = "=Mrt!R[0]C[-6]"

Dit gaat heel lang zo door.Ik heb het met een For next lus geprobeerd.Maar verander ik "=Jan!R[2]C[-8]" dit??Graag een suggestie in dit probleem
bvd Peter.
 
Laatst bewerkt door een moderator:
Dit stukje kan ik geen chocola van maken:
"Maar verander ik "=Jan!R[2]C[-8]" dit??"
 
Geachte hr,edmoor ,Ik bedoelde dat van jan! feb! door For teller next wordt gemaakt en (2) drie word dan (3) en (-8) Wordt dan (-9) en zo verder.Vergeef
mij de onhandige uitleg.:confused:
 
Het zal wel aan de temperatuur liggen maar ik begrijp nog steeds niet wat je nu precies wilt met die cijfers.
 
Het is niets dat het zo warm is, maar ik begrijp er ook geen ene hout van.
 
Dank je. Dacht al dat het aan mij en grote vriend Hertog Jan lag ;)

Sorry dus Peter. Maar een betere uitleg van wat je precies wilt lijkt gewenst.
 
Laatst bewerkt:
Sommige dingen kan ik begrijpen maar lang niet alles.

Jan -> next -> Feb begrijp ik, kan door de index in de for loop te verhogen.
2 -> next -> 3 begrijp ik, kan door de index in de for loop te verhogen.

-8 -> next -> -9 begrijp ik niet. Dit kan alleen door de index te verlagen ipv te verhogen en je hebt maar 1 index volgens mij.
Alternatief is de index van nul aftrekken.

Verder heb ik werkelijk geen idee waar die 2, 3, -8 en -9 voor staan.
Het kunnen indexes zijn in een 3-dimensionaal array maar hier ben ik allerminst zeker van.
 
Het weer doet gekke dingen met mensen, want ik zie nergens een -9 staan... Wél een celverwijzing (Jan!R[2]C[-8]). In een lus kun je inderdaad de index van een tabblad beter met een getal aangeven, dan ben je van de namen van de tabbladen af. Is er een reden waarom je de inhoud van de cellen als formule wilt hebben, en niet de waarden?
 
Laatst bewerkt:
edmoor gast0158,Dank voor de snelle reacties.Een vraag duidelijk stellen is voor mij heel moeilijk.Ik zal nog een poging wagen.In excel heb een map met 12 bladen,
januari t/m december.In die bladen doe ik mijn in en uitgaven,met de Regel ( Range("K8").FormulaR1C1 = "=Jan!R[2]C[-8]") roep ik de posten van de maanden op.
Die posten bv huur wordt neergezet in cel K8 L8 M8 van het huidige blad.Met de Formule "=Jan!R[2]C[-8]" word gekeken naar de regel bv Huur in blad januari en dat werkt prima,
maar omdat er per post naar 3 cellen maal 12 maanden maal 13 posten dus 468 regels?? Dacht ik dat het misschien wel wat eenvoudiger kon.

Nou krijg toch weer het gevoel?? ach laat maar.58 jaar geleden mijn huidige vrouw ten huwelijk gevraagd!! 56 jaar zijn wij nu getrouwd,omdat iemand min Pukky
had verteld wat ik bedoelde.:love:
 
Hoi Peter. Dat kan waarschijnlijk inderdaad wel een stuk handiger. Toch blijft het wat onduidelijk maar ik denk dat het eerder een gebrek aan een goed voorbeeld is dan je laatste uitleg. Is het mogelijk dat je een voorbeeld bestand plaatst? Privacygevoelige informatie kun je uiteraard weg laten.

Daarnaast, 56 jaar getrouwd! Sjonge. Dat is tegenwoordig een hele prestatie.
Gefeliciteerd! :D
 
Octafish. even de reacties op een rij.Het is inderdaad beter de maandnamen te vervangen door numeriek.ga ik ook doen.hoe ik anders dan met een formule
De gegevens kan ophalen is mij niet bekend.en dan weet ik ook nog niet hoe ik (1!R[2]C[-8]) in een lus krijg??

edmoor De schrik slaat mij om het hard,een voorbeeldje?omdat alles met formules aan elkaar hangt krijg ik dat nooit voor elkaar zonder mijn hele boel te vernielen
en dan 12 bladen + de nodige procedures dat is geen sinecure. Ps. 55 jaar getouwd met mijn vrouw is daar een makkie bij.Dank voor de Felicitatie.dit gedeeld
met mijn Neeltje,Je had haar gezicht moeten zien.:P
 
Waarschijnlijk ontgaat mij iets maar ik begrijp de zin van deze oefening niet.
Zoals je zelf stelt heb je een oneindig lange code die niets anders doet dan formules in een werkblad plaatsen. De tijd die je gespendeerd hebt om deze code te maken was toch beter besteed aan het plaatsen van de formules in een werkblad. Dan heb je deze ellenlange code toch voor niets nodig.
Als voorbeeldbestand heb je toch niet meer nodig dan je verzamelblad en 1 maandblad, want ik veronderstel dat alle maandbladen toch identiek zijn van opmaak ?
 
Ik snap ook nog steeds niks van de celverwijzingen die je gebruikt (Jan!R[2].C[-8])?) omdat die relatief gebruikt worden, en derhalve afhankelijk zijn van de huidige cel op het betreffende maandblad. Staat de cel op een andere cel, dan krijg je dus ofwel een heel andere waarde terug, ofwel een foutmelding. Als je in Kolom E staat, kun je namelijk nooit naar kolom -8 verwijzen, want die bestaat gewoon niet. Dus waarom rechtstreeks de cellen aanspreken? Ik heb een simpel testje gedaan met 12 bladen, waarin steeds dezelfde cellen uit het maandblad worden gehaald. Dit omdat ik dus niet kan bedenken waarom je steeds een kolom verder naar links zou willen kijken. Bovendien kijk je in 3 regels per blad 2 keer naar dezelfde cel, wat ik ook vreemd vind. Ik zal eerst de code laten zien:
Code:
Sub testje()
Dim rng As Range
Dim sht As Worksheet
Dim i As Integer, y As Integer, z As Integer

    Set rng = ActiveCell
    For i = 1 To 12
        Set sht = Sheets(i)
        For y = 1 To 3
            z = z + 1
            rng.Offset(z, 0).Value = sht.Cells(2, 8 - y).Value
            'of: rng.Offset(z, 0).Value = sht.Cells(2, 8 - y).Formula
        Next y
    Next i
End Sub
De code loopt dus door de eerste 12 werkbladen, en vervolgens in een lus van 3 cellen door het werkblad. De gelezen waarden (of formules) worden vervolgens onder elkaar in een 13e blad gezet.
Wellicht dat je a.d.h.v. het voorbeeldje je eigen situatie kunt regelen.
 
@ Octafish

De R en C zijn relatief tov de cel waarin de formule geplaatst wordt.
Dus voor K8 2 rijen omlaag en 8 kolommen naar links = C10, voor L8 2 rijen omlaag en 6 kolommen naar links = F10 , voor M8 2 rijen omlaag en 6 kolommen naar links = G10
Dit voor 12 maandbladen.
Dan waarschijnlijk verder voor de andere posten.
Mijn vraag blijft nog steeds "Waarom al die formules in een VBA-code steken" ???
 
Warme bakkertje en Octafish Dank voor deze reactie,Daar ging zowaar bij mij een lampje branden,ik vroeg U om hulp en legde vervolgens de helft van mijn
Probleem bij u neer,met het gevolg dat U daar geen oplossing voor kon vinden,daarvoor mijn welgemeende excuses.

U vroeg mij om een voorbeeldbestandje.Een van de 12 maanden en een en een van de procedure,waarvan ik er ook 14 heb staan nu klaar om aan u te tonen.
Maar ik weet niet hoe? kan ze natuurlijk kopiëren en hier neerzetten.Als dat de manier is dan hoor ik dat graag van U.met vriendelijke groet Peter.
 
Octafish ,Dank voor het program,ik heb geprobeerd het aan het lopen te krijgen maar er gebeurd niets.Maar ik ga door tot hij loopt.
 
@warmebakkertje: ik gaf zelf al aan dat de aanduiding R[2]C[-8] een relatieve celverwijzing is, dus dat principe is mij bekend :). En vanuit K8 kun je best 9 kolommen naar links, maar niet 12. Het is voor TS erg verwarrend om zaken te corrigeren die gecorrigeerd behoeven te worden :).

@TS:
Het is al eerder gezegd: een voorbeeldje doet in dit geval wonderen, want ik geloof niet dat er veel mensen zijn die nu snappen wat de bedoeling is. Een bijlage kun je gewoon uploaden als je de knop <Ga geavancdeerd> gebruikt. Je krijgt dan o.a. een knop <Beheer bijlagen>.
Mijn code is gebaseerd op een eigen voorbeeldje dat ik even snel gemaakt heb. Ook al omdat ik geen flauw benul heb wat er in het betreffende bestand staat. Dus de code moet op zeker worden aangepast :).
 
BeginSaldo 1000,00
**
Kasboek 2014 Januari DE POSTEN NUON ENERGIE

EindSaldo 358,66
Nr Datum Omschrijving Opmrking Ontvangsten Uitgaven Saldo Huur Ontvangen Betaald Datum Elektra Warmte
1-1-2014 Beginsaldo 1000,00 saldo 02-01-14 0,00 616,67 30-4-2014 129,383 335,322
9-1-2014 21-07-14 ziekenfonds 197,50 Aflos 52,37+25,18 1000,00 1 04-02-14 0,00 616,67 21-7-2014 129,840 337,838
Vaetelasten 02-01-14 Huur 641,34 358,66 2 04-03-14 0,00 616,67 82 0,457 2,516
Vaetelasten 21-07-14 Inboedel. 358,66 3 04-04-14 0,00 616,67 463,76 9,14 62,90
Vaetelasten 21-07-14 Verz.PaMa 358,66 4 04-05-14 0,00 1233,34
Vaetelasten 21-07-14 AutoVerz 358,66 5 04-06-14 0,00 0,00
Vaetelasten 21-07-14 Wegenbel 358,66 6 21-07-14 0,00 641,34
Vaetelasten 21-07-14 Water 358,66 7 03-08-14 0,00 0,00
Vaetelasten 21-07-14 Zorgtoeslag 358,66 8 04-09-14 0,00 0,00
Vaetelasten 21-07-14 Huurtoeslag 358,66 9 04-10-14 0,00 0,00
Vaetelasten 21-01-14 AOW 358,66 10 04-11-14 0,00 0,00
Vaetelasten 21-07-14 Huishoudgeld 358,66 11 04-12-14 0,00 0,00
Vaetelasten 21-07-14 De Jongens 358,66 12 Totaal 0,00 4341,36 4341,36
Vaetelasten 21-07-14 NuonEnergie 358,66 13
Vaetelasten 21-07-14 Verz.Kinderen 358,66 14
Vaetelasten 6,1,14 Vez.Tom 358,66 15
Vaetelasten 21-07-14 Tele2 358,66 16 vrij
Diverse 358,66
Diverse 358,66
Diverse 358,66
Diverse 358,66
358,66
358,66
358,66
30-01-14 Diverse Totaal 0,00 17
Comfort spaarrekening
Saldo 21-7-2014 Comfort Nota Reserve 0,00
 
HTML:
Code:
 Sub Huur()
'Goed 2
 Range("K7,K8:M20").ClearContents
 If Range("j24").Value = ("vrij") Then
    Range("C11").FormulaR1C1 = "=TODAY()" ''?
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveSheet.Paste
    Application.CutCopyMode = False
 If ActiveSheet.Name <> "Balans" Then
    Range("G10").FormulaR1C1 = "-641.34" ''?
 End If
End If
 ''Post Naam
    Range("K7").FormulaR1C1 = "=1!R[3]C[-7]" ''?

    Range("K8").FormulaR1C1 = "=1!R[2]C[-8]"
    Range("L8").FormulaR1C1 = "=1!R[2]C[-6]"
    Range("M8").FormulaR1C1 = "=1!R[2]C[-6]"
    Range("K9").FormulaR1C1 = "=2!R[1]C[-8]"
    Range("L9").FormulaR1C1 = "=2!R[1]C[-6]"
    Range("M9").FormulaR1C1 = "=2!R[1]C[-6]"
    Range("K10").FormulaR1C1 = "=3!R[0]C[-8]"
    Range("L10").FormulaR1C1 = "=3!R[0]C[-6]"
    Range("M10").FormulaR1C1 = "=3!R[0]C[-6]"
    Range("K11").FormulaR1C1 = "=4!R[-1]C[-8]"
    Range("L11").FormulaR1C1 = "=4!R[-1]C[-6]"
    Range("M11").FormulaR1C1 = "=4!R[-1]C[-6]"
    Range("K12").FormulaR1C1 = "=5!R[-2]C[-8]"
    Range("L12").FormulaR1C1 = "=5!R[-2]C[-6]"
    Range("M12").FormulaR1C1 = "=5!R[-2]C[-6]"
    Range("K13").FormulaR1C1 = "=6!R[-3]C[-8]"
    Range("L13").FormulaR1C1 = "=6!R[-3]C[-6]"
    Range("M13").FormulaR1C1 = "=6!R[-3]C[-6]"
    Range("K14").FormulaR1C1 = "=7!R[-4]C[-8]"
    Range("L14").FormulaR1C1 = "=7!R[-4]C[-6]"
    Range("M14").FormulaR1C1 = "=7!R[-4]C[-6]"
    Range("K15").FormulaR1C1 = "=8!R[-5]C[-8]"
    Range("L15").FormulaR1C1 = "=8!R[-5]C[-6]"
    Range("M15").FormulaR1C1 = "=8!R[-5]C[-6]"
    Range("K16").FormulaR1C1 = "=9!R[-6]C[-8]"
    Range("L16").FormulaR1C1 = "=9!R[-6]C[-6]"
    Range("M16").FormulaR1C1 = "=9!R[-6]C[-6]"
    Range("K17").FormulaR1C1 = "=10!R[-7]C[-8]"
    Range("L17").FormulaR1C1 = "=10!R[-7]C[-6]"
    Range("M17").FormulaR1C1 = "=10!R[-7]C[-6]"
    Range("K18").FormulaR1C1 = "=11!R[-8]C[-8]"
    Range("L18").FormulaR1C1 = "=11!R[-8]C[-6]"
    Range("M18").FormulaR1C1 = "=11!R[-8]C[-6]"
    Range("K19").FormulaR1C1 = "=12!R[-9]C[-8]"
    Range("L19").FormulaR1C1 = "=12!R[-9]C[-6]"
    Range("M19").FormulaR1C1 = "=12!R[-9]C[-6]"
    
    Range("K20").FormulaR1C1 = "Totaal"
    Range("L20").FormulaR1C1 = "=SUM(R[-12]C:R[-1]C)"
    Range("M20").FormulaR1C1 = "=SUM(R[-12]C:R[-1]C)"
    Range("O20").FormulaR1C1 = "=SUM(RC[-3]:RC[-1])"
  
 If ActiveSheet.Name = "Balans" Then
    Range("O20").Copy
    Range("G10").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
 End If
 End Sub
[/HTML]
 
Laatst bewerkt door een moderator:
Peter,

Zet in een XL-bestand je verzamelblad en op een ander werkblad alles wat je in je vorige post #18 neergepoot hebt zodat we kunnen zien hoe het er op een werkblad uitziet.
Post dan dit bestand op het forum.
Klik op Ga geavanceerd en scroll naar beneden Beheer bijlagen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan