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

#WAARDE! na sorteren

Status
Niet open voor verdere reacties.

whiteboy

Gebruiker
Lid geworden
10 jan 2008
Berichten
35
Altijd als ik op de button sorteren klik, krijg ik deze fout vanaf de 2de lijn.
Hoe kan ik dit oplossen?

Code:
Private Sub CommandButton1_Click()
    Overzetten
    Range("A2:E65536").Select
    Selection.Sort Key1:=Range("E2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

End Sub
 
Laatst bewerkt:
In een formule wordt naar een waarde verwezen waar de formule niets mee kan.

Met een beetje meer info (de formule en welke button sorteren) valt er misschien meer te zeggen.
Nog mooier is een voorbeeldbestandje.
mvg leo
 
Oh de vraag is aangepast.

In deze routine zelf zie ik geen aanleiding voor de foutmelding.
Of het zou in de sub overzetten moeten zitten (ik neem tenminste aan dat overzetten naar een andere sub verwijst)
 
Beste Leofact,
De file is te groot.
Maar dit is de code.

Code:
Sub Overzetten()

Dim WrRij As Long
Dim StRij As Long
Dim LtRij As Long
Sheets("stoppersoverzicht").Range("A2:E65536").Delete
    WrRij = 2
    StRij = 11
    LtRij = Worksheets("stoppersoverzicht").Range("A65536").End(xlUp).Row + 1
    
    While Worksheets("workload").Cells(StRij, "A") <> ""
     If Worksheets("workload").Cells(StRij, "BO").End(xlToLeft).Value = "uit dienst" Then
      WrRij = WrRij - 1
      Else
        Worksheets("stoppersoverzicht").Cells(WrRij, "A") = Worksheets("workload").Cells(StRij, "A")
        Worksheets("stoppersoverzicht").Cells(WrRij, "B") = Worksheets("workload").Cells(StRij, "F")
        Worksheets("stoppersoverzicht").Cells(WrRij, "C") = Worksheets("workload").Cells(StRij, "D")
        Worksheets("stoppersoverzicht").Cells(WrRij, "D") = Worksheets("workload").Cells(8, Worksheets("workload").Cells(StRij, "BO").End(xlToLeft).Column)

        Sheets("stoppersoverzicht").Cells(WrRij, "E") = "=left(RC[-1],cijfers(RC[-1]))"
      End If
        StRij = StRij + 1
        WrRij = WrRij + 1
    Wend
    Sheets("Stoppersoverzicht").Activate
End Sub

Code:
Private Sub CommandButton1_Click()
    Overzetten
    Range("A2:E65536").Select
    Selection.Sort Key1:=Range("E2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

End Sub

Code:
Function cijfers(Rng As Range) As Integer
Dim i As Integer, karakter, txt As String
txt = Rng.Text
cijfers = 0
For i = 1 To Len(txt)
    karakter = Mid(txt, i, 1)
    If IsNumeric(karakter) Then cijfers = cijfers + 1
Next
End Function

Ik krijg dus steeds vanaf de 2de lijn een #WAARDE!.
Als ik op de cel klik, en daarna enter in de functie. Werkt het wel.
 
Laatst bewerkt:
Wat ik er in de gauwigheid uit haal is het volgende
Dim i As Integer, karakter, txt As String

Deze declartaie werkt volgens mij niet. karakter en txt worden zo niet benoemd
Volgens mij moeten deze apart gedeclareerd worden.
verder zou ik cijfers declareren

Nou nu even de keuken, er moet gekookt worden;)
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan