sannevanzijl
Gebruiker
- Lid geworden
- 10 dec 2013
- Berichten
- 17
Hallo allemaal
Ik heb een stukje code gemaakt die de generatie van een persoon in een stamboom moet uitrekenen.
Deze sub is gebaseerd op cellen in een sheet.
Cel persoon_aktief1 (begint met de ID van de vader van de actieve persoon)
Cel persoon_aktief2 (bevat een vlookup formule om de ID van de vader van persoon_aktief1)
Cel parent_count moet de waarde krijgen van de VBA teller.
De code bevat een tellertje die begint met waarde 1.
Dan wordt er een Do while benoemd totdat er geen waarde is persoon_aktief1, dan heb je dus de stamvader bereikt en moet de loop stoppen.
Mijn probleem is dat deze waarde "#N/B" is en de foutafhandeling zegt dan dat de typen niet overeen komen.
Ik weet niet hoe ik dit op moet lossen. Ik heb al geprobeerd om de while aan "#N/B" op te hangen maar dat werkt niet.
Wat doe ik verkeerd?
Zie hier de code:
Ik heb een stukje code gemaakt die de generatie van een persoon in een stamboom moet uitrekenen.
Deze sub is gebaseerd op cellen in een sheet.
Cel persoon_aktief1 (begint met de ID van de vader van de actieve persoon)
Cel persoon_aktief2 (bevat een vlookup formule om de ID van de vader van persoon_aktief1)
Cel parent_count moet de waarde krijgen van de VBA teller.
De code bevat een tellertje die begint met waarde 1.
Dan wordt er een Do while benoemd totdat er geen waarde is persoon_aktief1, dan heb je dus de stamvader bereikt en moet de loop stoppen.
Mijn probleem is dat deze waarde "#N/B" is en de foutafhandeling zegt dan dat de typen niet overeen komen.
Ik weet niet hoe ik dit op moet lossen. Ik heb al geprobeerd om de while aan "#N/B" op te hangen maar dat werkt niet.
Wat doe ik verkeerd?
Zie hier de code:
Code:
Sub generatiecode()
'
' generatiecode Macro
'
' We berekenen het aantal stappen naar de oudste voorvader
Dim genCount As Integer
genCount = 1
Range("persoon_aktief1").Select
ActiveCell.FormulaR1C1 = "=vader_id"
Range("persoon_aktief2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(persoon_aktief1,personen!C[-1]:C[11],13,0)"
Do Until Range("persoon_aktief1").Value = """"
genCount = genCount + 1
Range("persoon_aktief2").Select
Selection.Copy
Range("persoon_aktief1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Loop
Range("parent_count").Select
ActiveCell.Value = "genCount"
End Sub