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

cells.offset

Status
Niet open voor verdere reacties.

rg027

Gebruiker
Lid geworden
30 jun 2005
Berichten
161
Stel dat in het bereik a1:c25 in de cellen b10:c13 de waarden X staan, maar door verandering komen de xwaarden in cellen b15:c18 te staan. Hoe kan ik via de code cells.offset de waarden in b10:c13 leegmaken door ipv cells.offeset (0,1) enz... te moeten typen een code schrijven dat ie alle cellen van het bereik doorzoekt waar de waarden x staan en deze verwijderd , behalve in de veranderde cellen.Voor alle duidelijkheid een voorbeel bijgevoegd
 

Bijlagen

Kan je mooi met de macrorecorder opnemen:

Sub Macro1()

Cells.Replace What:="x", Replacement:="", LookAt:=xlWhole, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub

Luc
 
Luc,

Deze macro verwijderd alle waarden "x" uit het bereik terwijl het de bedoeling is enkel de waarden te verwijderen uit de geel gekleurde cellen.
 
Tja, ik heb je bestand niet geopend. Op de computer waar ik hier zit, kan ik geen rar bestanden openen.

Maar geef je cellen die doorzocht moeten worden een naam.

En dan kan je de macro starten met:

Range("Naam"). enz.

Luc
 
als de waarde gelijk is aan "x" was ik vergeten te vermelden
 
Luc,

Het volledige bereik moet doorzocht worden. maar de plaats waar de invulling van de waarden "x" nu staan veranderen . Deze veranderingen mogen niet gewist worden enkel de "oude waarden"
 
Het lijkt me dat je foutief werkt.
Kleurtjes gebruiken, om ze nadien te wissen lijkt me zo onhandig.

Je zou het bereik kunnen doorlopen via een If-constructie:

If Cells.Interior.ColorIndex = ??? Then

Maar je kan natuurlijk net zo goed de cel wissen i.p.v. een kleurtje te geven. Desnoods verander je de x in een o (Kan je mooi oxo spelen), en verwijder je nadien die o's.

Cellen kan je kleuren met voorwaardelijke opmaak, afhankelijk van de waarde (x of o)

Luc
 
Luc,

Ik werk niet met gekleurde cellen . Heb dit enkel maar gedaan om aan te tonen welke cellen er moeten gewist worden . Ook de waarden x zijn geen realiteit. De x staat voor dezelfde waarden (woorden) die in cellen ingevuld worden aan de hand van een bepaald begin. En dat begin verschilt van dag tot dag Vandaar de vraag of er met cells offset een volledig bereik kan doorzocht worden naar cellen die een veroudere waarde en deze te verwijderen bevatten.
 
Rechtsklikken op je bladtab, en deze code er in kleven:

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim s As String
s = Target.Value
Cells.Replace What:=s, Replacement:="", LookAt:=xlWhole
Target.Value = s
Application.EnableEvents = True
End Sub

Luc
 
Luc,

Zoiets bedoel ik dus. Alleen worden waarden buiten het bereik ook verwijderd of andere beriken ook verwijderd en dat is niet de bedoeling
 
Je moet het woordje Cells vervangen door je bereik.

Bijvoorbeeld:

Range("A1:D20").Replace enz.

Luc
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan