Avatar billede lundjepsen Praktikant
29. marts 2007 - 19:35 Der er 6 kommentarer og
1 løsning

Hvis tekst er "INGEN" så slet den række og de næste 2 efter

Hej igen.
Et nyt spørgsmål til de kloge.

kort fortalt:
Hvis tekst = "INGEN" så slet rækken og de næste 2 rækker. og ryk op.

Den lidt længere:
Jeg importere en tekst via makro til excel, den består af 1 x 25 forskellige poster pr. port. Mit Problem er at når der er en port der ikke benyttes ind imellem, så skrives i teksten "INGEN" og der indsættes 2 ekstra rækker med blank.



Mvh Lund
Avatar billede kabbak Professor
29. marts 2007 - 20:28 #1
Kan du ikke luse den af i importen, det komme selvfølgelig an på hvordan du importerer, om det er linie for linie, eller excels automatiske.
Avatar billede lundjepsen Praktikant
29. marts 2007 - 20:36 #2
Hvordan i importen ??

On Error GoTo handleCancel
Application.EnableCancelKey = xlErrorHandler

    Range("I14").Select
    With Selection.QueryTable
        .Connection = _
        "TEXT;C:\cg\excel\*.txt"
        .TextFilePlatform = xlWindows
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = True
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = True
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
        .Refresh BackgroundQuery:=False
    End With
   
handleCancel:
If Err = 18 Then
    MsgBox "Du afbrød"
End If


End Sub
Avatar billede kabbak Professor
29. marts 2007 - 21:24 #3
Nej du kan ikke fange den der, det er en af de automatiske.

Hvilken kolonne skal tjekkes for "INGEN", jeg kan se at du vælger "I14", er I den første kolonne, eller der det bare en celle i QueryTable området. ??
Avatar billede kabbak Professor
29. marts 2007 - 21:31 #4
makroen kan se sådan ud, bare sig til, hvis den skal tilrettes.


Sub Slet3Rækker()
    Dim RW, I
    RW = Range("I65536").End(xlUp).Row
    For I = RW To 14 Step -1 ' tjekker kolonne I fra sidste udfyldte celle til række 14
        If Cells(I, "i") = "INGEN" Then
            Range(Cells(I, "i"), Cells(I + 2, "I")).EntireRow.Delete ' sletter de 3 rækker
        End If
    Next
End Sub
Avatar billede lundjepsen Praktikant
29. marts 2007 - 22:14 #5
Hej igen kabak,
jo den virker, men nu opstod et lille problem mere..
sletter hele rækken,,, kan nu se det kun skulle kun være til og med "M".
Altså fra kolonne I til kolonne M..
Kan du hjælpe endnu engang ?
Avatar billede kabbak Professor
29. marts 2007 - 22:41 #6
Sub Slet3Rækker()
    Dim RW, I
    RW = Range("I65536").End(xlUp).Row
    For I = RW To 14 Step -1 ' tjekker kolonne I fra sidste udfyldte celle til række 14
        If Cells(I, "i") = "INGEN" Then
            Range(Cells(I, "i"), Cells(I + 2, "M")).Delete Shift:=xlUp ' sletter de 3 rækker
        End If
    Next
End Sub
Avatar billede lundjepsen Praktikant
29. marts 2007 - 22:50 #7
Tusinde tak kabak
Nu skal jeg lige prøve den, men den ser rigtig ud..
Godnat
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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