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

Celwaarde plus 1 in andere cel

Status
Niet open voor verdere reacties.
ziet er veelbelovend uit!
krijg alleen nu uit het niets een foutmelding:
Code:
Sub final()
 For i = 0 To 100
waarde = waarde & "," & i
Next i
    For Each cell In Range("B1:B18")
    If cell.Value = waarde Then
    b = cell.Offset(0, 1)
End If
  [B]  If cell.Value = waarde + 1 Then[/B]
    cell.Offset(0, 2) = b
End If
Next
    
End Sub
Run-time error '13':
Type mismatch

foute regel is dikgedrukt
 
Je moet ook controleren of cell.Value in waarde voor komt, niet of cell.Value gelijk is aan waarde.
 
Wat raad je mij aan?

Voor nu: weekend. Bedankt tot alle hulp en tot volgende week!
 
Ik snap nog steeds de bedoeling niet maar de controle zou zoiets moeten zijn:
Code:
Sub finale()
    For i = 0 To 100
        waarde = waarde & "," & i
    Next i
    
    For Each cell In Range("B1:B18")
        If InStr(1, "," & cell.Value, waarde) > 0 Then
            b = cell.Offset(0, 1)
        End If
        If InStr(1, "," & cell.Value + 1, waarde) > 0 Then
            cell.Offset(0, 2) = b
        End If
    Next
End Sub

NB:
Kijk ook eens waar inspringpunten toe dienen. Je gebruikt ze volledig willekeurig en totaal verkeerd.
Tevens mag je je Sub niet final noemen omdat dat een Reserved word in VBA is.
 
@edmoor,

In post #6 kun je zien een na laatste kolom van het plaatje wat er bij mij uitkwam. (als amateur)
In het de laatste kolom van het plaatje zie je wat hij wil dat er uit komt.

Volgens mij doet je code dit ook niet. (Zit er beter uit dan wat ik gemaakt had)
Ik moest het wel een beetje aan passen, anders gebeurde er niets.
Zie het bestandje van hem. (bij geplaatst met je code in Module2)
 

Bijlagen

  • example(TimExcel).xlsm
    23 KB · Weergaven: 31
Goedemorgen, ik hoop dat iedereen een fijn weekend gehad heeft.

om mijn idee nog wat verder uit te leggen, dit is wat ik uiteindelijk ongeveer wil hebben:
Code:
Niveau             Component              Parent
0                  0000
1                  1000                    0000
  2                1001                    1000
     3             1002                    1001
1                  1003                    0000
  2                1004                    1003
    3              1005                    1004 
  2                1006                    1003
    3              1007                    1006
      4            1008                    1007

Hierin kunnen de cijfers in 'component' geheel willekeurige cijfers zijn. Het getal in 'parent' is dus het dus het component van het voorgaande bovenliggende niveau.

Vandaar mijn code; ik probeer de component van een niveau te kopiëren zodra het volgende niveau het oude niveau +1 is.

Code:
Sub test3()
waarde= hier moet een getallenreeks van 0 tot 100 komen
    For Each cell In Range("B:B")
    If cell.Value = waarde Then
    b = cell.Offset(0, 1)
End If
    If cell.Value = waarde+ 1 Then
     cell.Offset(0, 2) = b
 End If
 Next
 End Sub

De code werkt alleen niet, omdat je niet 1 kan optellen bij een getallenreeks. Hier moet ik dus een omweg voor verzinnen. Ideeën?
 
MEt dank aan het Mr.Excel forum is mijn vraag opgelost. De uiteindelijke code is als volgt:
Code:
Sub testing()

Dim waarde As Integer 'need to declare if option explicit.

For waarde = 0 To 100
    For Each cell In Range("B1:B20")
        If cell.Value = waarde Then
            b = cell.Offset(0, 1)
        End If
        If cell.Value = waarde + 1 Then
             cell.Offset(0, 2) = b
         End If
    Next
 Next waarde
    
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan