Avatar billede ab58 Novice
26. april 2016 - 19:56 Der er 6 kommentarer og
1 løsning

Slette hele rækker, hvor cellen i kolonne A indeholder ord fra række 1 & 2

Hej eksperter,

Søger en makro, som gennemgår alle ordene i første og anden række, og sletter hele efterfølgende rækker, som indeholder samme ord (nøjagtigt eller i en sætning) i første kolonne.


Eksempel:

æbler          pærer      bananer    osv.
tomater      agurker    osv.
chokolade
små agurker
brød
pærer
osv.

Resultat efter makro afspilning:

æbler          pærer      bananer    osv.
tomater      agurker    osv.
chokolade
brød


På forhånd tak.
Avatar billede jens48 Ekspert
27. april 2016 - 06:43 #1
Prøv med denne makro:

Sub DeleteRows()
Dim CRow1, CRow2, CColumn1, R, x, y As Integer
CRow1 = Application.CountA(Rows(1))
CRow2 = Application.CountA(Rows(2))
CColumn1 = Application.CountA(Columns(1))
For R = CColumn1 To 3 Step -1
For x = 1 To CRow1
If InStr(1, Cells(R, 1), Cells(1, x)) Then
Cells(R, 1).EntireRow.Delete
GoTo A:
End If
Next
For x = 1 To CRow2
If InStr(1, Cells(R, 1), Cells(2, x)) Then
Cells(R, 1).EntireRow.Delete
GoTo A:
End If
Next
A:
Next
End Sub
Avatar billede ab58 Novice
27. april 2016 - 09:35 #2
Tusind tak (igen) jens48!

Gider du smide et svar ind, som jeg kan acceptere og levere point?

Håbede at netop du ville svare da jeg havde et lignende spørgsmål her:
www.eksperten.dk/spm/1009459#reply_8213870

...hvor du leverede et lige så perfekt svar.

Kan jeg være fræk at stille et tillægsspørgsmål?
=====================================
Spørgsmålet er det samme som før, med følgende lille justering:

1) data fra række 1 og 2 er rykket én celle mod højre
2) jeg indsætter en tom række som 3. række.

eksempel:

(tom)        æbler          pærer      bananer    osv.
(tom)        tomater        agurker    osv.
(tom)        (tom)          (tom)      (tom)      ...
chokolade
små agurker
brød
pærer
osv.

... fordi jeg har lavet formler der tæller ordene i A1 og A2 og rækkerne fra A4 ned.
Avatar billede jens48 Ekspert
27. april 2016 - 19:14 #3
Det burde kunne virke med denne:

Sub DeleteRows()
Dim CRow1, CRow2, CColumn1, R, x, y As Integer
CRow1 = Cells(1, 16384).End(xlToLeft).Column
CRow2 = Cells(2, 16384).End(xlToLeft).Column
CColumn1 = UsedRange.Rows(UsedRange.Rows.Count).Row
For R = CColumn1 To 3 Step -1
For x = 1 To CRow1
If InStr(1, Cells(R, 1), Cells(1, x)) And Cells(1, x) <> "" Or Cells(R, 1) = "" Then
Cells(R, 1).EntireRow.Delete
GoTo A:
End If
Next
For x = 1 To CRow2
If InStr(1, Cells(R, 1), Cells(2, x)) And Cells(1, x) <> "" Or Cells(R, 1) = "" Then
Cells(R, 1).EntireRow.Delete
GoTo A:
End If
Next
A:
Next
End Sub
Avatar billede ab58 Novice
28. april 2016 - 01:20 #4
Er ikke stolt af mig selv jens48!

Troede at min lille-bitte justering ville give dig en lige så lille-bitte ændring.

Resultatet af den 2. makro gav:

Run-time error '424':
Object required.

... og følgende linie var fremhævet med gult.
CColumn1 = UsedRange.Rows(UsedRange.Rows.Count).Row


Det var IKKE cool af mig at smide et ekstra spørgsmål!
På den ene side vil jeg gerne give dig pointene...
På den anden side tør jeg ikke acceptere, når der er et "forkert" svar.
Har lyst til at acceptere, og efterfølgende starte et nyt indlæg/spørgsmål med tillægsspørgsmålet og 60 nye point, men ved ikke om det er OK.
Kan du hjælpe mig ud af dette dilemma?
Venter på råd fra dig.
Avatar billede ab58 Novice
28. april 2016 - 01:31 #5
Til orientering, sådan ser mit projekt ud i øjeblikket:
https://www.dropbox.com/s/2tenlswzvz70p20/Eksempel.JPG?dl=0
Avatar billede jens48 Ekspert
28. april 2016 - 02:25 #6
Den eneste grund jeg kan se til at du får fejl er at du har en gammel version Excel. Den linie der giver fejl virker kun på Excel 2003 eller senere. Prøv med denne linie i stedet:

CColumn1 = Cells(65536, 1).End(xlUp).Row
Avatar billede ab58 Novice
28. april 2016 - 08:38 #7
Har Excel version: 14.0.7166.5000 (32-bit) fra MS Office Home and Student 2010 på Windows 7. Burde måske opgradere...?

Anyway, makroen virkede efter at jeg udkiftede linien med den linie du foreslog.

Kan ikke takke dig nok. Du gjorde mit arbejde/projekt meget nemmere.

Takker og bukker og accepterer dit svar med fornøjelse.
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

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