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

Niveaus vertalen naar parent-child relatie

Status
Niet open voor verdere reacties.

Tomzel

Gebruiker
Lid geworden
30 sep 2006
Berichten
16
Hoi,

Ik heb een werkblad die ik graag wil vertalen naar een parent-child relatie. Mijn werksheet ziet er als volgt uit.
Problem.png

Ik zou graag bij elk part de parent-child relatie willen weergeven, zoals hier is afgebeeld:
Problem2.png

Hiervoor gebruikt ik het volgende script:
Sub rebuild()

' initialize constant for your excel file '
Dim StartingLine As Integer
StartingLine = 3
Dim Column_Level As Integer
Column_Level = 1
Dim Column_ParentRef As Integer
Column_ParentRef = 2
Dim Column_PartRef As Integer
Column_PartRef = 3

' other technical variables '
Dim j As Integer
Dim StoreParents(40) As String

'initialize first parent Part Number '
initParent = Cells(StartingLine, 5)

' Start rebuilding BOM '
j = StartingLine
While Cells(j, Column_Level) <> ""

If (CInt(Cells(j, Column_Level)) > CInt(Cells(j - 1, Column_Level))) Then

' level has increased so parentref is previous line part ref '
StoreParents(Cells(j - 1, Column_Level)) = Cells(j - 1, Column_PartRef)
Cells(j, Column_ParentRef) = Cells(j - 1, Column_PartRef)

ElseIf (CInt(Cells(j, Column_Level)) < CInt(Cells(j - 1, Column_Level))) Then

' level has decreased so parentref is the stored partRef of new level - 1 '
Cells(j, Column_ParentRef) = StoreParents(Cells(j, Column_Level) - 1)

Else

' no level change, we keep the same ParentRef '
Cells(j, Column_ParentRef) = Cells(j - 1, Column_ParentRef)

End If

' move to next line '
j = j + 1

Wend
End Sub

Dan krijg ik de volgende error:
error.png

Iemand suggesties waar de error vandaan komt en hoe ik dit moet oplossen?

Groet,
Tom
 

Bijlagen

  • Problem.png
    Problem.png
    7,9 KB · Weergaven: 27
Laatst bewerkt:
Verander dit: While Cells(j, Column_Level) <> ""
In dit: While Cells(j, Column_Level)

Dan zal die specifieke fout weg zijn.
Haal in de rest van de code ook alle > en < weg.
 
Laatst bewerkt:
Hoi Edmoor,

Dat haalt inderdaad de fouten weg. Maar nu geeft de VBA niet het gewenste resultaat.
Dus ik verwacht dat functies > en < toch nodig zijn?

Groet,
Tom
 
Nee. Die horen er niet in. Heb je die code gekopieerd van een website? Want dat zijn HTML codes die niets met VBA van doen hebben.

Andere mogelijkheid:
Wijzig in de originele code de &lt; in < en de &gt; in >

Dus bijvoorbeeld dit: While Cells(j, Column_Level) &lt;&gt; ""
In dit: While Cells(j, Column_Level) <> ""
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan