Bekijk de onderstaande video om te zien hoe je onze site als een web app op je startscherm installeert.
Opmerking: Deze functie is mogelijk niet beschikbaar in sommige browsers.
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.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A2" Then
With Application
.EnableEvents = False
nw = Target.Formula
.Undo
old = Target.Formula
Target = nw
If Target.Offset(, 1) = "" Then Target.Offset(, 1) = old
.EnableEvents = True
End With
End If
End Sub
Zet in het bestand een beperkt aantal, gevarieerde voorbeeldgegevens.
Verwijder alle privacy-gevoelige en bedrijfsgevoelige gegevens uit uw voorbeeldbestand.
Verwijder alle verbindingen (Links/Connecties) naar bestanden die voor helpers niet beschikbaar zijn.
Geef informatie
Beschrijf in uw vraag:
- de uitgangssituatie
de gewenste eindsituatie en waarvoor u die nodig hebt
wat u al geprobeerd hebt
Private Sub Worksheet_Change(ByVal Target As Range)
Target.Interior.ColorIndex = 6
End Sub
Een 'beetje' en 'zoiets'? Het is mijn gewoonte dat als ik iets aanbied om het dan te testen, een eigen bestand te plaatsen en wat uitleg te geven. Inderdaad dat mis ik. Ik heb jouw code wel geprobeerd, maar mijn deel werkt en jouw deel niet.Ja dat kan met een beetje code en voorwaardelijke opmaak. De code wordt dan zoiets:
Dat is eenmalig. Oude waarde weer terugzetten? Lees op internet dat het niet kan. Dan moet je voor iedere cel een "geheugen" hebben.
15 werkbladen, 500 rijen * 30 kolommen, wijzigingen bijhouden met een voorwaardelijke opmaak, dat wordt een onwerkbaar trage werkmap.Het is een heel groot bestand, dus ik heb maar 1 tabblad gevuld, maar er zijn ongeveer 15 tabbladen.
Sub vergelijken()
t = Timer
Set sh1 = ThisWorkbook.Sheets("FB Vellerveste") 'huidig werkblad
Set sh2 = ThisWorkbook.Sheets("FB Vellerveste (2)") 'zelfde werkblad, maar backup, in deze werkmap of in een andere !!!
Set ur1 = sh1.UsedRange 'bepalen bereik
Set ur2 = sh2.UsedRange
rijen = Application.Max(ur1.Row + ur1.Rows.Count - 1, ur2.Row + ur2.Rows.Count - 1) 'max aantal rijen
kolommen = Application.Max(ur1.Column + ur1.Columns.Count - 1, ur2.Column + ur2.Columns.Count - 1) 'max aantal kolommen
arr1 = sh1.Range("a1").Resize(rijen, kolommen).Value2 'huidige gegevens -> array
arr2 = sh2.Range("a1").Resize(rijen, kolommen).Value2 'backup-gegevens -> array
Set dict = CreateObject("scripting.dictionary") 'dictionary
For r = 1 To rijen 'alle rijen aflopen
For k = 1 To kolommen 'alle kolommen aflopen
If arr1(r, k) <> arr2(r, k) Then dict.Add dict.Count, Array(Cells(r, k).Address, arr1(r, k), arr2(r, k)) 'indien wijziging, onthouden
DoEvents
Next
Next
MsgBox "werkblad : " & sh1.Name & vbLf & "rijen * kolommen ; " & rijen & " * " & kolommen & vbLf & "wijzigingen : " & dict.Count & vbLf & "tijd : " & Format(Timer - t, "0\s")
With Sheets("gewijzigd")
.UsedRange.ClearContents
If dict.Count Then .Range("A1").Resize(dict.Count, 3).Value = Application.Index(dict.items, 0, 0) 'wijzigingen wegschrijven naar werkblad
End With
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("O222:O417,Q222:Q417")) Is Nothing Then
With Application
.EnableEvents = False
nw = Target
.Undo
old = Target
Target = nw
If Target.Offset(, 20) = "" Then Target.Offset(, 20) = old
.EnableEvents = True
End With
ActiveSheet.Unprotect
Target.Interior.Color = RGB(181, 176, 208)
If Target <> Target.Offset(, 20) Then Target.Interior.Color = vbRed
ActiveSheet.Protect
End If
End Sub
We gebruiken essentiële cookies om deze site te laten werken, en optionele cookies om de ervaring te verbeteren.