Just nu i M3-nätverket
Gå till innehåll

Villkorstyrd radering av värde i range med VBA


bonjati
 Share

Rekommendera Poster

Jag har en tidsplaneringstabell där antal arbetstimmar anges i kolumn L:S för medarbetare. I kolumn U sätts status. 

 

Jag vill ha ett makro som raderar värdet i range L:S så fort värdet "klar" sätts i kolumn U, däremot viktigt att raden är kvar. Men blir inte riktig klok på hur. Det är ett rätt stort dataark med många rader. För att göra det värre är det också inte formaterat som tabell (går inte att göra den till tabell pga andra funktioner i verktyget som lagts in). Om det blir en loop kod typ for each row så lär väl koden sagga ner prestandarden nått fruktansvärt?

 

Jag har testat med denna men det gick inte alls.

Sub DelUnique()

Dim i As Integer
For i = Range("L:S" & Rows.Count).End(xlUp).Row To 2 Step -1

If Cells(i, 3) = "klar" Then
Range("L6:S6").Select
Selection.ClearContents

End If
Next
End Sub

 

Några förslag?

Länk till kommentar
Dela på andra webbplatser

Två tankar, utan VBA:

Värdet du vill radera, är det ett inskrivet värde eller är det ett resultat av en formel? Om formel kan du "ta bort det" med en enkel om:

=OM(U1="klar";"";"Värde")

Eller om du nöjer dig med att värdena inte finns, applicera en vanlig villkorsstyrd formatering där du sätter färgen på texten till samma som bakgrunden. Texten finns kvar men syns inte.

 

Vad gäller VBA-lösning KANSKE:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim activeRange As Range
    Set activeRange = Me.Range("F:F")
    
    If Intersect(Target, activeRange) Is Nothing Then Exit Sub
      
    If (Target.Text = "klar") Then
        Target.Offset(0, -(activeRange.Column - 1)).Resize(1, activeRange.Column - 1).Value = ""
    End If
    
End Sub

Notera dock att den funktion körs varje gå något ändras i bladet. Funktioner som denna kan slöa ned och notera även att det finns INGEN undo, möjlighet att rätta, om denna går fel.

Anpassa referensen efter ditt arbetsblad, nu raderas allt till vänster om activeRange om värdet på denna sätta till exakt "klar".

 

Länk till kommentar
Dela på andra webbplatser

 Share

×
×
  • Skapa nytt...