Ik heb op een werkblad een overzicht van een paar (zoek)cellen die diverse waarden van cellen op een werkblad samenvoegen en bij elkaar optellen. Het punt is echter dat deze werkbladen soms veranderd moeten worden en er veel cellen zijn die bij elkaar opgeteld moeten worden dus handwerk is teveel werk.
Nu heb ik een marco gemaakt waarbij dit mogelijk is. Echter, als de naam in de zoekcellen niet overeenkomen met de naam van het werkblad (want het werkblad bestaat niet), krijg ik als resultaat #VERW! te zien.
Dit is daarna niet meer terug te draaien en levert mij meer werk op om het ongedaan te maken.
Nu ben ik dus een code aan het schrijven die de oude waarde moet herstellen als de nieuwe waarde resulteert in '#VERW!', maar VBA herkent het resultaat #VERW! niet...
Graag jullie mening erover. Indien jullie nog wat anders zien, laat het weten, ik ben nieuw in het VBA gebeuren en zit continu op het helpmij forum met vragen.
Om een beetje duidelijkheid te scheppen heb ik ' code oud & ' code nieuw aan gegeven zodat je snel kan zien wat onder de '' test case'' valt en wat al goed werkt.
Nogmaals, ik weet niet of de code werkt, maar het is de bedoeling dat hij eerst moet controleren of het werkblad met de naam van F27 bestaat. Indien die niet bestaat, moet de marco niet doorgaan en afbreken.
Je kan ook zeggen dat de marco d.m.v. F27 gaat controleren of het werkblad wel bestaat. Als die bestaat dat de marco dán de cells.replace functie gaat uitvoeren. Ik weet alleen niet hoe die code heet en in VBA moet verwerken...
Nu heb ik een marco gemaakt waarbij dit mogelijk is. Echter, als de naam in de zoekcellen niet overeenkomen met de naam van het werkblad (want het werkblad bestaat niet), krijg ik als resultaat #VERW! te zien.
Dit is daarna niet meer terug te draaien en levert mij meer werk op om het ongedaan te maken.
Nu ben ik dus een code aan het schrijven die de oude waarde moet herstellen als de nieuwe waarde resulteert in '#VERW!', maar VBA herkent het resultaat #VERW! niet...
Graag jullie mening erover. Indien jullie nog wat anders zien, laat het weten, ik ben nieuw in het VBA gebeuren en zit continu op het helpmij forum met vragen.
Om een beetje duidelijkheid te scheppen heb ik ' code oud & ' code nieuw aan gegeven zodat je snel kan zien wat onder de '' test case'' valt en wat al goed werkt.
Code:
Sub Jaar_Verlagen_test()
[B]' Code oud[/B]
ActiveSheet.Unprotect
Range("F27") = Range("F27") - 1
[B]' Code nieuw[/B]
Range("I24").Select
target = Range("I24").Select
Value = target
ActiveCell.Replace What:=Range("I24"), Replacement:=Range("F27"), LookAt:=xlPart, _
SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Cells.Find(What:=Range("H29"), After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
If Range("I24") = ("#VERW!") Then
getoldvalue = True
MsgBox ("Werkblad niet gevonden!")
Range("F27") = Range("F27") + 1
Else
getoldvalue = False
[B]' Zoekopdracht oud[/B]
Cells.Replace What:=Range("H29"), Replacement:=Range("F27"), LookAt:=xlPart, _
SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End If
[B]' Code oud[/B]
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Nogmaals, ik weet niet of de code werkt, maar het is de bedoeling dat hij eerst moet controleren of het werkblad met de naam van F27 bestaat. Indien die niet bestaat, moet de marco niet doorgaan en afbreken.
Je kan ook zeggen dat de marco d.m.v. F27 gaat controleren of het werkblad wel bestaat. Als die bestaat dat de marco dán de cells.replace functie gaat uitvoeren. Ik weet alleen niet hoe die code heet en in VBA moet verwerken...