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

Hoe kan ik in VBA bij een kolom er een op tellen

Status
Niet open voor verdere reacties.

mstaijen

Gebruiker
Lid geworden
8 dec 2009
Berichten
17
Ik ben gepensioneerd en in de vrijetijd stoei ik met Excel VBA. Nu zit ik met een probleem. Ik heb 4 kolommen (D,E,F, G) met een waarde resp. ( 6, 6, A, 100,00).
De eerste 6 is een aantal betalingen, de 2e 6 is de maand van het jaar en de derde is een Code ( A voor Anders). Nadat ik in kolom F de code op A zet zou ik het bedrag van 100,00 in kolom 6 geplaatst hebben en dat in de 5 opvolgende maanden ook weer.

Heb het geprobeerd met Range, Cell, Offset. Helaas krijg ik het niet voor elkaar. Heb mijn voorbeeld bestand meegestuurd. Hoop dat er iemand is die me raad kan geven.
 

Bijlagen

Laatst bewerkt:
Ik zie geen voorbeeld bestand?
 
Ik zou gebruik maken van de Worksheet_Change event:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    [COLOR=#008000]'Alleen iets doen als kolom F gewijzigd wordt in een A en kolom D en E gevuld zijn[/COLOR]
    If Target.Column = 6 And Target = "A" Then
        If Target.Offset(0, -1) <> vbNullString And Target.Offset(0, -2) <> vbNullString Then
            MsgBox "Nu moet er iets gebeuren"
            [COLOR=#008000]'Doe hier wat je nodig vindt[/COLOR]
        End If
    End If
End Sub
 
Handiger methode om te gebruiken bij meerdere cellen.
Code:
if application.counta(target.offset(,-2).resize(,2))>0 then
 
@ Ahulpje en @ HSV, bedankt beide voor de reactie.

Begrijp wat jullie hebben geschreven, maar het gaat er juist om dat als in kolom 6 de waarde A staat, dat er een bedrag moet worden weergegeven in kolom 14 tm kolom 19. Kolom 6 komt overeen met de waarde kolom E en het aantal keren dat het moet worden weergegeven is 5 x zoals dit staat in kolom D. Hoe kan ik vanaf Kolom 6 het bedrag 5 keer naast elkaar tonen? Met andere woorden hoe kan ik vanaf kolom 6 er 1 bij optellen om in kolom 7 iets te zetten.

Heb het geprobeerd maar krijg het niet voor elkaar.
For I= 1 to Range("D" & Regel).Value
Range(kolom(Range("E" & Regel).Value = Range("G" & Regel).Value
Next I
2022-10-18 17_26_12-Voorbeeld - Excel.png
 
Resize is het toverwoord.
Code:
range("a2").resize(,5) = 100
 
Bij wijzigen van de betaalfrequentie (kolom F) worden de bedragen automatisch ingevuld.
Zie Worksheet_Change en Sub VerwerkKeuze(ByVal target As Range).

Er moet nog wel e.e.a. aan foutcontroles toegevoegd worden, bijvoorbeeld zijn aantal, maand en bedrag gevuld.
En de MsgBox meldingen moeten er nog uit na het testen.

Met deze opzet is het ook mogelijk om voor alle gevulde rijen in een loopje Sub VerwerkKeuze aan te roepen.
 

Bijlagen

@hulpje. Dit was precies wat ik bedoelde. Ik ga de controles toevoegen. Hartelijk dank.
 
Ben er nog niet aan toegekomen om de controles toe te voegen. Maar het werkt zoals ik wilde dus dit item kan worden afgesloten. Iedereen nogmaals bedankt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan