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

De foutmelding #VERW! niet weergeven

Status
Niet open voor verdere reacties.

toverkamp

Gebruiker
Lid geworden
11 sep 2006
Berichten
403
Hallo forumleden,

Ik heb een werkblad waar de openstaande storingen worden vermeld. Aan dit werkblad zit een koppeling naar verschillende regio's, bijvoorbeeld "Noord" en "Limburg". Dus als een storing word gemeld komt er automatisch een bepaalde regio te staan, en word deze ook in het juiste werkblad gezet.
Het probleem is echter wanneer je de storing gereed meld. Wanneer je dit doet dan worden de gegevens verwijderd uit het werkblad "openstaande storingen" en weggeschreven naar het werkblad "reactietijden. Maar omdat er in het werkblad "openstaande storingen" een verwijzing zit naar bijvoorbeeld werkblad "Noord" worden hier de gegevens weergegevens als #VERW! Dit wordt er zo niet overzichtelijker op wat er nog open staat aan storingen per regio.

Heeft iemand een idee wat ik zou moeten veranderen aan de formules die ik gebruik? Ik heb een voorbeeldbestandje bijgevoegd voor de duidelijkheid.

Alvast bedankt!
 

Bijlagen

Probeer eens met de formule :
ALS(ISFOUT(jouw formule);"";jouw formule)

Of
Opmaak --> Voorwaardelijke opmaak
kies voor Formule =ISFOUT(A1) (A1 aanpassen voor actieve cel)
Opmaak = Lettertype als achtergrond kleur.

Pierre
 
Laatst bewerkt:
Pierre,

bedankt voor je reactie! De formule die je gaf, bleek niet te werken ik kreeg namelijk een foutmelding. De voorwaardelijke opmaak werkt wel, maar ik vind dit toch niet echt een ideale oplossing, omdat ik ook met een autofilter werk en selecteer op de niet-lege cellen. Dus hij vindt dan ook de gegevens met die foutmelding (die dan wel niet zichtbaar zijn door de voorwaardelijke opmaak), zodoende heb ik nog witte regels ertussen staan.

Ik heb een voorbeeldbestandje bijgevoegd met jou uitwerkingen, misschien dat iemand er iets aan kan veranderen zodat die foutregels op een één of andere manier worden verwijderd?

groeten,
toverkamp
 

Bijlagen

Hi Toverkamp,

De foutmelding komt volgens mij voort uit een #N/B die te vinden is op het werkblad "Openstaande storingen" in cel AB6.
Joske
 
Ik heb de foutmelding weggehaald, maar de formule doet het dan nog steeds niet. Ik voeg het wel ff als bijlage toe, misschien dat jij wat kan vinden wat ik fout doe?
 

Bijlagen

Wat heb je precies veranderd aan de formule?
 
Laatst bewerkt:
Hi Toverkamp,

De formule in H6 was de volgende :

=ALS('Openstaande storingen'!#VERW!="Noord";'Openstaande storingen'!#VERW!;"")

gewijzigd in :

=ALS('Openstaande storingen'!X5="Noord";'Openstaande storingen'!AB5;"")

Joske
 
Joske dat klopt, maar dat komt doordat de gegevens uit het werkblad "openstaande storingen" automatisch worden verwijderd als je de storing gereed meld. Probeer dat maar eens door op de button "meld storing gereed" te klikken. Kies bij ordernummer een openstaande storing en vul de lege velden in. Klik vervolgens op "Opslaan" en de gegevens zijn weggeschreven in het werkblad "reactietijden". De gegevens zijn verwijderd uit het werkblad "openstaande storingen", en omdat die gegevens verwijderd zijn klopt de verwijzing niet en komt er automatisch #VERW! te staan.

De code die ervoor zorgt dat de gegevens verwijderd worden is:
Code:
 Dim MyRange             As Variant
Dim c                   As Range
Dim LastRow As Long
LastRow = Cells.SpecialCells(xlCellTypeLastCell).Row

Set MyRange = Worksheets("openstaande storingen")

Function FindOnSheet(sSheet As String, ByVal Zoek As String, RowOrCol As String) As String
            
    Dim Row, column As Long
    Dim FilledRows, RowCol As String
    FindOnSheet = -1
    FilledRows = Sheets(sSheet).UsedRange.Address
    With Sheets(sSheet).Range(FilledRows)
        Set c = .Find(Zoek, LookIn:=xlValues, MatchCase:=False)
        If Not c Is Nothing Then
            Row = c.Row
            col = c.column
            RowCol = c.AddressLocal
        End If
    End With

    If LCase(RowOrCol) = "r" Then FindOnSheet = CStr(Row) ' Geeft als resultaat de Rij
    If LCase(RowOrCol) = "c" Then FindOnSheet = CStr(col) ' Geeft als resultaat de kolom
    If LCase(RowOrCol) = "rc" Then FindOnSheet = RowCol ' Geeft als resultaat de Rij en kolom

End Function

Function RemoveOnCondition(sSheet As String, Condition As String, RowColOrCell As String) As Boolean

    Dim ToRemove As String
    ToRemove = FindOnSheet(sSheet, Condition, RowColOrCell)
    Select Case LCase(RowColOrCell)
        Case "r"
            Sheets(sSheet).Range("A" & ToRemove).EntireRow.Delete xlShiftUp
        Case "c"
            Sheets(sSheet).Range("A" & ToRemove).EntireColumn.Delete xlShiftToLeft
        Case "rc"
            Sheets(sSheet).Range(ToRemove).Value = ""
    End Select
End Function

Het probleem is dus iets ingewikkelder dan het in eerste instantie lijkt.
 
Hi Toverkamp,

Het leek mij al iets te voor de hand liggend. :o :o :o
Ik denk verder mee met je.

Joske
 
MIsschien alles in een Access toepassing zetten.
Is veel meer mogelijk.
 
Ik heb al wel een oplossing, hoewel ik deze zelf niet echt optimaal vind:
Naast elke kolom voeg ik een kolom toe. In die kolom die ik toevoeg zet ik de volgende formule:
=ALS(ISFOUT(A5);"";A5)
Dus als A5 een foutmelding weergeeft, dan komt er niets te staan en anders zet hij de waarde van A5 in de cel. En door middel van de autofilter op niet-lege cellen komt alles toch netjes onder elkaar te staan.

Het werkt wel, maar als iemand een betere oplossing heeft hoor ik dat graag!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan