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

Op een rij variabel kolommen springen

Status
Niet open voor verdere reacties.

DutchOirs

Gebruiker
Lid geworden
30 sep 2009
Berichten
720
Goedemorgen,

Zit weer met een vraagje.

Bedoeling is om op dezelfde rij, maar diverse kolommen, bepaalde gegevens neer te zetten.

Probleem is nu dat het mogelijk 2 versprigingen zijn , waarvan één jaar variabele is en één verspringing om de x jaar is.

De variabelen staan op cel I10 en M10 in het vb-tje.

Vanaf kolom Q zou hij om de x kolommen gegevens neer moeten zetten, afhankelijk v/d variabelen.

Dit in een lus.
Heb een voorbeeldje erbij gedaan.

Already thanks

Dutch
 

Bijlagen

  • Kolom_Verspringen #1.xls
    38 KB · Weergaven: 23
Ik heb geen idee wat je bedoelt; in je voorbeeldje staat niks bruikbaars. OK, vanaf Q1 heb je jaartallen staan, maar wat is de relatie met I10 en/of M10? En waar moeten de gewenste gegevens dan worden neergezet? Onbegrijpelijk. Althans voor mij :).
 
Hoi OctaFish,

Wat ik probeer en niet uitkom is dat:
Als je de For - next lus doorloopt van 1 tot 31 = kolom Q t/m AU


Als I10 bv. 1 is een if then kan inbouwen om bepaalde dingen te laten uitvoeren. (dit zou inhouden alle volgende kolommen(Q t/m AU) dus iedere jaar

Als I10 bv. 2 is een if then kan inbouwen om bepaalde dingen te laten uitvoeren. (dit zou inhouden alle volgende kolommen(R-T-V-X-Z-AB enz.) dus iedere 2 jaar


Als dit voor elkaar is dan moet het ook lukken om:
Als M10 bv. 5 is een if then kan inbouwen om bepaalde dingen te laten uitvoeren. (dit zou inhouden alle volgende kolommen(U-Z-AE-AJ-AO enz.) dus iedere 5 jaar

Als M10 bv. 10 is een if then kan inbouwen om bepaalde dingen te laten uitvoeren. (dit zou inhouden alle volgende kolommen(Z-AJ-AT enz.) dus iedere 10 jaar
 
Laatst bewerkt:
Even een update in het vb-tje

Code:
      [B]If .Range("I10") <> "" Then   [/B]' ieder jaar = iets
        MsgBox ("2 =  " & Kol(i))
        .Range(Kol(i) & 10) = .Range("I10")
      End If
Hier gaat het dus om.
In cel I10 staat de variabele, om de hoeveel jaar men iets moet doen..
Als bv. I10 = 3 dan zou men dus iedere 3e jaar iets moeten kunnen doen
dus bv. in S10, V10, Y10, Ab10
 

Bijlagen

  • Kolom_Verspringen #2.xls
    40,5 KB · Weergaven: 15
Wat denk je van dit voorbeeldje met behulp van 'Voorwaardelijk opmaak'
 

Bijlagen

  • Kolom_Verspringen #3.xls
    50 KB · Weergaven: 14
Wat denk je van dit voorbeeldje met behulp van 'Voorwaardelijk opmaak'

Hoi popipipo,

We komen er wel :)

Had het zelf al in excel zelf met een formule, maar de kunst is nu om in het in VBA te verkrijgen.
Je hebt de bedoelingen door :) maar moet dan enige verwerkingen uitvoeren als hij "positief" is zeg maar en dat kan dus niet bij 'Voorwaardelijk opmaak'

Als ik het in Excel zou doen zit er een groot nadeel aan.. Als ik de variabele verander, gaan alle gegevens veranderen en met VBA kan je het zo doen dat ie het alleen vanaf een bepaald jaar doet.
 
Laatst bewerkt:
Code:
Private Sub StartKnop_Click()
  y = Cells(10, 13)
  For j = 17 To 47
      If (j - 17) Mod y = 0 Then Cells(10, j) = "x"
  Next
End Sub
 
misschien bedoel je zo iets met een function in elke cell
 

Bijlagen

  • Kolom_Verspringen svp.xlsm
    36,1 KB · Weergaven: 12
DO, kun je aangeven wat er fout gaat met het bastandje van Willem (popipipe)

Het bestandje van popipipo , kan je alleen de opmaak aanpassen, maar geen vba dingen uitvoeren
Het doel was goed, maar moet op die bewuste cellen (jaren) dingen in die cel kunnen invoerenen dat gaat niet met voorwaardelijke opmaak.

Hoi snb, even je voorstel geprobeerd, maar werkt niet, begrijp de uitvoering ook niet helemaal

Gebruik overigens excel 2003

Posten tegelijk :)


Het gaat om ongeveer bijna 80 a 90 regels. totaal.
 
Laatst bewerkt:
maar moet op die bewuste cellen (jaren) dingen in die cel kunnen invoerenen dat gaat niet met voorwaardelijke opmaak.

In de cellen P10:AU30 kun je invoeren wat je wilt.
 
Je moet de macro natuurlijk wel in de macromodule van het werkblad zetten.
En als je feedback geeft, wees dan specifiek.
 
ja begrijp ik popipipo, maar dat gebeurd dan in de formule..

Dus in die bewuste "jaren" moet er met VBA iets ingevoerd worden
 
popipipo, begrijp ik, maar er zijn tientallen rijen die deze formule gebruiken dus wilde het in de sub houden.

Dit werkt, maar

Code:
Private Sub StartKnop_Click()

  Dim i As Integer, Tel1 As Integer
  
  Run "KolommenMJOB"
  
  With Worksheets("Blad1")
    Tel1 = 0
    For i = 1 To 31
      If .Range("I10") <> "" Then   ' ieder jaar = iets
        Tel1 = Tel1 + 1
        If Tel1 = .Range("I10") Then           'dus 3 jaar later
          MsgBox ("2 =  " & Kol(i))
          .Range(Kol(i) & 10) = .Range("I10")
          Tel1 = 0
        End If
      End If
    Next i
  End With
End Sub

maar omslachtig
 
Op de hurken:
 

Bijlagen

  • __Kolom_Verspringen_snb.xls
    43 KB · Weergaven: 8
helaas snb, werkt niet zoals ik bedoelde.
Kan ook niet want alles moet in desbetreffende cellen gebeuren op één rij.

Heb iets uitgewerkt zie vb-tje4
Code:
Private Sub StartKnop_Click()

  Dim i As Integer, Tel1 As Integer, Tel2 As Integer
  
  Run "KolommenMJOB"
  
  With Worksheets("Blad1")
    Tel1 = 0: Tel2 = 0
    For i = 1 To 31
      If .Range("I10") <> "" And .Range("M10") <> "" Then
        Tel1 = Tel1 + 1: Tel2 = Tel2 + 1
        If Tel1 = .Range("I10") Then
          .Range(Kol(i) & 10) = .Range("I10")
          Tel1 = 0
        End If
        If Tel2 = .Range("M10") Then
          .Range(Kol(i) & 10) = .Range("I10").Value + .Range("M10").Value
          Tel2 = 0
        End If
        If i = 31 Then Exit For
        GoTo Door1
      End If
      
      If .Range("I10") <> "" Then   ' ieder jaar = iets
        Tel1 = Tel1 + 1
        If Tel1 = .Range("I10") Then
          .Range(Kol(i) & 10) = .Range("I10")
          Tel1 = 0
        End If
      End If
      
      If .Range("M10") <> "" Then   ' om de x jaren = iets
        Tel2 = Tel2 + 1
        If Tel2 = .Range("M10") Then
          .Range(Kol(i) & 10) = .Range("M10")
          Tel2 = 0
        End If
      End If
Door1:
    Next i
  End With
End Sub

Dit werkt, maar had gehoopt voor iets simpeler en korter.
Zijn een kleine 100 rijen die zo bewerkt moeten worden.
 

Bijlagen

  • Kolom_Verspringen #4.xls
    42,5 KB · Weergaven: 16
kijk eens of deze ongeveer doet wat je bedoeld. (alle gele vakjes zijn invoer vakjes)
als je wil , is het zo omgebouwd naar iets met een knopje
 

Bijlagen

  • Kolom_Verspringen svp .xlsm
    22,8 KB · Weergaven: 12
Laatst bewerkt:
Goedenavond sylvester-ponte,

Sorry en excuses, maar laatste dagen druk dus even wat minder tijd.

Het verspringen op kolommen heb ik voor elkaar, maar zit met 2 verschillende variabelen.

Het file betreft een MJOB. Gaat om bedragen jaarlijks of meerjarig terug te laten komen.
Dat heb ik voor elkaar, maar zit nog met de inflatie te berekenen en jaar van inflatie verandering.

Zo gauw ik dat rond heb zet ik definitieve testfile hier neer.

Dus het testfile #7 is nog niet klaar en ben er mee bezig.

Thanks voor het meedenken.
 

Bijlagen

  • Kolom_Verspringen #7.xls
    70,5 KB · Weergaven: 22
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan