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

regel leegmaken met voorwaardelijke opmaak

Status
Niet open voor verdere reacties.

vrouw

Terugkerende gebruiker
Lid geworden
27 mrt 2010
Berichten
1.525
Kan je dmv een voorwaardelijke opmaak een opdracht geven om de betreffende regel (waar de voorwaardelijke opmaak in staat) leeg te maken?
of doe je dit dmv VBA?

Edit:
Gebruik van Excel 2003
 
Dag vrouw,

Dit kan met behulp van VBA.

Heb je een voorbeeld ?
 
vrouw,

als je met leegmaken bedoelt: de inhoud van de cellen verwijderen, dan kan dit NIET met voorwaardelijke opmaak
Daarmee (VWO) kun je de kleur van de voor- en achtergrond identiek maken, waardoor het lijkt alsof de cellen leeg zijn.
 
Regel moet echt leeg gemaakt worden en niet wit.
voorbeeldje erbij gedaan.

Regel 6 zou dus leeggemaakt moeten worden.
 

Bijlagen

Laatst bewerkt:
zie bijlage
 

Bijlagen

Ja TOP Haije, dat werk inderdaad, ook als snap ik niet precies hoe die werkt:o

Ik zie dat hij in cel en kolom 1 eerst de datum van vandaag zet.
Die haalt ie dan weer weg?
en vervolgens gaat hij de rijen naar beneden af tot en met rij 12?(waar staat dat?)
Worden er geen rijen verwijderd uit de sheet? want dan zou na een jaar de rijen op zijn.


Nu is het zo dat er in mijn (master) docment in K2 al de datum staat vermeld, kan de code dan korter/simpeler:rolleyes:
 
In princiep is deze voldoende:

Code:
Sub regelweg()
Rows(Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row).Find(Date).Row).Delete
End Sub
 
Thanks Cobbe, dat is inderdaad ook een mooie en lekker kort.
Echter als deze code niets meer heeft te verwijderen of de datum van vandaag staat niet in het document komt hij met een foutmelding:
Objectvariabele of blokvariabele With is niet ingesteld.
Ook moet je de code steeds starten totdat alle datums van vandaag wegzijn? Hij loopt ze niet allemaal na?
 
Laatst bewerkt door een moderator:
Ik heb nergens gelezen dat er meer dan een geldende datum in stond maarsoit:
Code:
Sub cobbe()
On Error GoTo oeps
With Range("a7:a" & Range("A" & Rows.Count).End(xlUp).Row)
    Set c = .Find(Date, LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            Range(c.Address) = ""
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
Range("a7:a" & Range("A" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeBlanks).Delete
oeps:
End Sub
 
Hij haalt nu inderdaad alle datums weg maar niet zoals eerder de gehele regels?
 
Laatst bewerkt door een moderator:
Sorry, kleine vergetelheid:
Code:
Sub cobbe()
Sub cobbe()
On Error GoTo oeps
With Range("a7:a" & Range("A" & Rows.Count).End(xlUp).Row)
    Set c = .Find(Date, LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            Range(c.Address) = ""
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
oeps:
    .SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
End Sub
 
Laatst bewerkt:
Oké, weer een stukje verder maar geeft nog steeds een foutmelding als er geen datum van vandaag in het document zit.
 
Ja een beetje slordig daarom een kleine aanpassing:

Code:
Sub cobbe()
On Error GoTo oeps
With Range("a7:a" & Range("A" & Rows.Count).End(xlUp).Row)
    Set c = .Find(Date, LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            Range(c.Address) = ""
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
  If c Is Nothing Then
    .SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  End If
oeps:
End With
End Sub
 
Huh, nog geen verschil.
Pas als je 2x op de macro starten hebt gedaan maakt die de regels leeg.
 
Moeilijke bevalling:

Code:
Sub cobbe()
On Error GoTo Verwijderen
With Range("a7:a" & Range("A" & Rows.Count).End(xlUp).Row)
    Set c = .Find(Date, LookIn:=xlValues)
    If c Is Nothing Then GoTo oeps
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            Range(c.Address) = ""
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
Verwijderen:
  If c Is Nothing Then
    .SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  End If
End With
oeps:
End Sub
 
Thanks, Driemaal is scheepsrecht of was het viermaal:thumb:

Ik wil nu de datum van gisteren verwijderen en heb ik deze regel aangepast naar:
Set c = .Find(Date - 1 , LookIn:=xlValues)

Maar als ik gisteren en eergisteren wil doen werkt het niet zo:
Set c = .Find(Date - 1 & Date - 2, LookIn:=xlValues)

Hoe moet die regel er dan uitzien?
 
Doe eens de test met deze:

Code:
Sub cobbe()
On Error GoTo oeps
 For regel = Range("A" & Rows.Count).End(xlUp).Row To 7 Step -1
    If Cells(regel, 1) = Date Or Cells(regel, 1) = Date - 1 Or Cells(regel, 1) = Date - 2 Then
      Rows(regel).EntireRow.Delete
    End If
 Next
oeps:
End Sub
 
TOP hoor Cobbe, ben er helemaal blij mee.:thumb:

1 vraagje nog. Wat doet de -1 in de regel:
.Row To 7 Step -1
 
Code:
For regel = Range("A" & Rows.Count).End(xlUp).Row To 7 Step -1

Betekent zoveel als: Voor regel neem de rij-waarde aan van laatste ingevulde cel in kolom A tot rij-waarde 7
en omdat je regels verwijderd moet hij van beneden naar boven tellen, dus terugtellen, daarom -1.

Hoop dat het een beetje duidelijk is.
 
En als mijn data begint in rij 4 dan pas ik de 7 aan naar 4?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan