Avatar billede clauswobbe Nybegynder
03. september 2007 - 16:28 Der er 12 kommentarer og
2 løsninger

Slette linjer, hvori der findes tekst med en given farve

Jeg har 3 kolonner med hhv. varenr (tekst), salgspris (decimaltal) og kostpris (decimaltal). Nogle af tallene er farvet rød eller blå. Linjer med disse tal vil jeg gerne udvælge og have slettet, så kun linjer, der står med sort skrift står tilbage. Hvordan gør jeg nemmest dette?
Ps: Dette skal gøres et par gange hver måned i 10-15 regneark, så processen skal kunne gentages. Jeg vil helst undgå for avancerede makroer, så løsninger med evt. flere manuelle trin foretrækkes.
På forhånd tak.
Avatar billede gider_ikke_mere Nybegynder
03. september 2007 - 17:03 #1
Må der sorteres i arket?
Avatar billede kabbak Professor
03. september 2007 - 17:38 #2
marker det område, der skal tjekkes, kun en kolonne af gangen, kør så makroen.

Sub DeleteRedAndBlueRows()
    Dim X As Long, Seller As Variant
    Seller = RangeRowColumns(Selection)
    For X = Val(Seller(4)) To Val(Seller(2)) Step -1
          If Cells(X, Seller(1)).Font.ColorIndex = 5 Or _
          Cells(X, Seller(1)).Font.ColorIndex = 3 Then
          Rows(Cells(X, Seller(1)).Row).Delete
        End If
    Next
End Sub

Function RangeRowColumns(rtest As Range) As Variant
    Dim st As String
    Dim X As Integer
    st = rtest.Address
    st = Replace(st, ":", "")
    RangeRowColumns = Split(st, "$")
End Function
Avatar billede kabbak Professor
03. september 2007 - 17:51 #3
Nu kan den klare området Fra A til Z

Sub DeleteRedAndBlueRows()
    Dim X As Long, Y As Integer, Seller As Variant
    Seller = RangeRowColumns(Selection)
    For Y = Asc(Seller(1)) - 64 To Asc(Seller(3)) - 64
    For X = Val(Seller(4)) To Val(Seller(2)) Step -1
          If Cells(X, Y).Font.ColorIndex = 5 Or _
          Cells(X, Y).Font.ColorIndex = 3 Then
          Rows(Cells(X, Seller(1)).Row).Delete
        End If
    Next
    Next
End Sub

Function RangeRowColumns(rtest As Range) As Variant
    Dim st As String
    Dim X As Integer
    st = rtest.Address
    st = Replace(st, ":", "")
    RangeRowColumns = Split(st, "$")
End Function
Avatar billede kabbak Professor
03. september 2007 - 17:53 #4
en lille rettelse til den første.

Sub DeleteRedAndBlueRows()
    Dim X As Long, Y As Integer, Seller As Variant
    Seller = RangeRowColumns(Selection)
    For Y = Asc(Seller(1)) - 64 To Asc(Seller(3)) - 64
    For X = Val(Seller(4)) To Val(Seller(2)) Step -1
          If Cells(X, Y).Font.ColorIndex = 5 Or _
          Cells(X, Y).Font.ColorIndex = 3 Then
          Rows(Cells(X, Y).Row).Delete
        End If
    Next
    Next
End Sub
Avatar billede clauswobbe Nybegynder
03. september 2007 - 22:12 #5
Ja, der må gerne sorteres - rækkernes rækkefølge er ligegyldig. (I øvrigt er jeg IMPONERET over så hurtige kommentarer/løsninger! Jeg vil afprøve det straks i morgen.
Avatar billede clauswobbe Nybegynder
03. september 2007 - 22:13 #6
Btw: er der et "manuelt" alternativ til koden, altså fx : 1)vælg alle rækker, 2) klik xx og vælg yy, 3)???
Avatar billede kabbak Professor
03. september 2007 - 23:26 #7
Nu er koden ændret, så hvis du kun aktivere 1 celle, vil den vælge hele dataområdet fra A1 af, ellers kører den det du har markeret.


Sub DeleteRedAndBlueRows()
    Dim X As Long, Y As Integer, Seller As Variant
    If Selection.Cells.Count = 1 Then Range(Range("A1"), Range("A1").SpecialCells(xlLastCell)).Select
    Seller = RangeRowColumns(Selection)
    For Y = Asc(Seller(1)) - 64 To Asc(Seller(3)) - 64
    For X = Val(Seller(4)) To Val(Seller(2)) Step -1
          If Cells(X, Y).Font.ColorIndex = 5 Or _
          Cells(X, Y).Font.ColorIndex = 3 Then
          Rows(Cells(X, Y).Row).Delete
        End If
    Next
    Next
End Sub
Avatar billede clauswobbe Nybegynder
04. september 2007 - 00:19 #8
Det virker ski da! :-) Kan jeg skrive noget i stil med "If Cells(X, Y).Font.ColorIndex <> vbBlack" i stedet for den kontrol, du foreslår?
Avatar billede kabbak Professor
04. september 2007 - 09:33 #9
If Cells(X, Y).Font.ColorIndex <> xlAutomatic Then

skal det være
Avatar billede clauswobbe Nybegynder
04. september 2007 - 09:58 #10
SUPER!
Avatar billede clauswobbe Nybegynder
04. september 2007 - 10:00 #11
Hmm, har jeg fået lukket korrekt af og givet point?
Avatar billede kabbak Professor
04. september 2007 - 10:58 #12
nej, du skal markere mit navn i boksen til venstre og så tryk accepter
Avatar billede clauswobbe Nybegynder
04. september 2007 - 11:03 #13
Tak :-)
Avatar billede kabbak Professor
04. september 2007 - 11:05 #14
tak for point ;-))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester