Avatar billede mefa Seniormester
Oprettet i dag kl. 12:45 Der er 12 kommentarer

Hjælp til vba

Hjælp til vba

Det er min debut i vba

Jeg har tekst a5, b5 og c5 og så er mit store ønske, at hvis jeg skriver "løst" i e5 så slettes række 5.

På forhånd tak
Avatar billede kulawig Guru
Skrevet i dag kl. 13:06 #1
skal linje 5 slettes så linje 6 bliver den nye 5 ... eller skal indholdet bare ryddes ??
så der er en tom linje 5

mvh
Avatar billede mefa Seniormester
Skrevet i dag kl. 13:16 #2
Linie 6 skal blive linie 5
Avatar billede kulawig Guru
Skrevet i dag kl. 13:21 #3
altså det kan godt lade sig gøre , men VBA kan ikke køre aktivt hele tiden ... det vil koste for mange ressourcer.

der er to muligheder
1. VBA køre en gang i minuttet og fjerner linjer med løst
2. du skriver løst i dine linjer og trykker på en Marko knap der fjerner alle linjer med løst (den mest resurse venlige)
Avatar billede madklub Guru
Skrevet i dag kl. 13:25 #4
Kan makroen ikke køre når der trykkes ENTER ?
Eller man kunne vælge 'løst' fra en liste.
Avatar billede mefa Seniormester
Skrevet i dag kl. 13:37 #5
Det skal være den ressourcevenlige version
Avatar billede kulawig Guru
Skrevet i dag kl. 13:40 #6
Det her virker :


Sub SletLøstRækker()
    Dim ws As Worksheet
    Dim rng As Range
    Dim cell As Range
    Dim lastRow As Long
   
    ' Vælg det aktive ark
    Set ws = ActiveSheet
   
    ' Find den sidste brugte række i kolonne E
    lastRow = ws.Cells(ws.Rows.Count, 5).End(xlUp).Row
   
    ' Gennemgå rækker baglæns for at undgå problemer med rækkeindekset
    For i = lastRow To 1 Step -1
        If LCase(ws.Cells(i, 5).Value) = "løst" Then
            ws.Rows(i).Delete
        End If
    Next i
   
    MsgBox "Rækker med 'løst' i kolonne E er blevet slettet.", vbInformation, "Færdig"
End Sub
Avatar billede mefa Seniormester
Skrevet i dag kl. 13:43 #7
Glædelig mig til prøve det i aften
Avatar billede kim1a Ekspert
Skrevet i dag kl. 14:17 #8
Må jeg spagfærdigt foreslå at den kopiere linjen et andet sted hen, f.eks. en skjult fane - ellers vil det jo være nemt at påstå det er løst når det ikke er der :-)
Avatar billede kulawig Guru
Skrevet i dag kl. 14:21 #9
slet ikke dumt ... du tænker klippe den ud af "ARK1" og flytte over i et skjult ark der hedder "LØST"
Avatar billede mefa Seniormester
Skrevet i dag kl. 14:29 #10
Det er kun mig selv som bruger arket,  så der ikke mulighed for snyd.
Det skal bruges i  en "opgaveliste" med forskellige deadline.
Avatar billede kulawig Guru
Skrevet i dag kl. 14:42 #11
den her kan godt renses lidt ud .. det er en copy/paste fra noget andet ... fjern evt ark oprettelsen og kontrollen af tilstedeværelsen af "LØST"  så bliver det lidt pænere

Sub FlytLøstRækker()
    Dim wsSource As Worksheet
    Dim wsDest As Worksheet
    Dim rng As Range
    Dim cell As Range
    Dim lastRow As Long
    Dim destRow As Long
    Dim i As Long
   
    ' Definer kildearket (det aktive ark)
    Set wsSource = ActiveSheet
   
    ' Tjek om arket "LØST" findes, ellers opret det
    On Error Resume Next
    Set wsDest = ThisWorkbook.Sheets("LØST")
    If wsDest Is Nothing Then
        Set wsDest = ThisWorkbook.Sheets.Add
        wsDest.Name = "LØST"
    End If
    On Error GoTo 0
   
    ' Find den sidste brugte række i kildearkets kolonne E
    lastRow = wsSource.Cells(wsSource.Rows.Count, 5).End(xlUp).Row
   
    ' Find den næste ledige række i "LØST"-arket
    destRow = wsDest.Cells(wsDest.Rows.Count, 1).End(xlUp).Row + 1
   
    ' Gennemgå rækker baglæns for at undgå problemer med rækkeindekset
    For i = lastRow To 1 Step -1
        If LCase(wsSource.Cells(i, 5).Value) = "løst" Then
            ' Kopier hele rækken til "LØST"
            wsSource.Rows(i).Copy wsDest.Rows(destRow)
            ' Slet rækken fra kildedokumentet
            wsSource.Rows(i).Delete
            ' Opdater næste ledige række i "LØST"
            destRow = destRow + 1
        End If
    Next i
   
    MsgBox "Rækker med 'løst' i kolonne E er blevet flyttet til arket 'LØST'.", vbInformation, "Færdig"
End Sub
Avatar billede kim1a Ekspert
Skrevet i dag kl. 14:44 #12
Jeg holder fast, ikke pga snyd, men sletning er nok ikke bedste vej frem på lang bane. Så kan du jo år til år slette i den anden fane manuelt en gang for alle.
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
Stort udvalg af Excel kurser til alle niveauer og jobfunktioner

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



Seneste spørgsmål Seneste aktivitet
33 min siden Skjule rækker i Excel Af hbl i Excel
I dag 12:45 Hjælp til vba Af mefa i Excel
I dag 10:07 Outlook Af jdann i Office & Kontorpakker
I går 22:33 Defekt laptop - hvad kan være galt? Af ErikJ i PC
I går 17:43 Kan ikke opdatere Af Tim i Windows