Jeg ønsker en måde hvorpå jeg kan slette de rækker hvor værdien er 0, dette er for 700 rækker og hver måned. Så jeg ønsker at lave en makro, dette ønsker jeg at lave i en ikke VPA/kode løsning. De løsninger jeg har kunnet finde skjuler kun 0 værdien, men jeg har behov for at de bliver slettet.
Jeg har et excel med 8 kolonner og 626 rækker, så hvis jeg skal slette det manuelt tager det lang tid. Jeg har pt. lavet det sådan at den sortere tallene, største til mindste, for så kan jeg manuelt slette de rækker med 0 værdi manuelt hurtigere end hvis det ikke var sorteret. Men det ville være meget nemmere hvis 0 værdierne blev slette i den makro i stedet for sorteret. Der bliver hentet data fra A7:H626, der hvor jeg skal have slettet nu starter fra A7:H7 og se ellers bare der ned af.
Håber min lidt uddybende forklaring er til gavn.
PS. dette skal gøres i 5-10 ark hver måned. Så manuel sletning tager for lang tid. Det jeg mener med en ikke VPA/kode løsning, er at jeg ikke ønsker at opfinde koden selv, da jeg slet ikke har nok erfaring.
Det er kasseopgørelser så de slutter d.31, 30 og i februar er der yderligere afvigelser. Men hvis den sletter alle felter hvor F = 0, så er det lige meget om der der kun er 600 felter og den tager 626. Bare alle felter er med, det er det vigtigste.
Ok prøv den her: Public Sub SletRaekker() i = 7 Do While Worksheets("ark1").Range("F" & i).Value <> "" If Range("f" & i).Value = 0 Then Rows(i & ":" & i).Delete shift:=xlUp i = i - 1 End If i = i + 1 Loop End Sub
' Worksheets(Her skal navnet på arket stå" i starter på række 7
Da jeg satte din formel ind skete der da et eller andet og den stoppede ikke før jeg stoppede den i job listen. Jeg har fundet en midlertidig løsning indtil jeg lige får fundet den rigtige formel, min makro ser således ud.
Det der sker er at jeg læser alt data fra et ark over i et andet, her formatere jeg så 3 koloner så dato står som dato, kontonr er uden 1000 tals separator og der er 1000 tals separator på beløb. Som midlertidig løsning, sortere jeg så beløb med største til mindste. Hvilket gør jeg har en række følge i kolonnen der hedder 1. 0<, .2 0, 3.>0, så går jeg ind og sletter alle 0 værdi rækkerne manuelt og så er det sådan set løst. Men tænker der er en formel som sletter 0 værdierne for mig. Hvis der ikke er så er denne også en holdbar løsning.
Tak for spørgsmål og svar indtil videre, har bare ikke helt fået løst problemet endnu.
Hmm den virker upåklageligt her Kører så længe der er noget i F uanset hvad Sletter alle rækker med 0 Går en tur tilbage fordi hvis der kommer 2 eller flere nuller efter hinanden
Så tror jeg bare ikke jeg er helt med på hvordan jeg skal skrive det worksheet korrekt. Eller tager det bare noget tid, fordi der er 626 rækker den skal regne igennem ?
Hvis du altid kører makroen i det rigtige Worksheet , kan du godt undvære den Do Range("F" & i).Value <> ""
Hmmm 626 rækker næ ikke så længe på en nogenlunde pc. kommer an på hvor mange nuller der er
Se den her: Public Sub SletRaekker() Dim start As Date Dim slut As Date Dim i As Integer
start = Now()
i = 7 Do While Range("F" & i).Value <> "" If Range("f" & i).Value = 0 Then Rows(i & ":" & i).Delete shift:=xlUp i = i - 1 End If i = i + 1 Loop slut = Now() MsgBox "Den startede: " & start & vbNewLine & "Den sluttede " & slut & vbNewLine & "Det tog " & Second(slut - start) & " sekunder "
Lige et ekstra spørgsmål, efter at jeg har lavet makro, så hver gang jeg åbner excel så bliver der åbnet et ekstra excel vindue. Hvilket ikke direkte er til gene, men det irritere mig at det åbner. Hvordan får jeg excel til ikke at gøre dette?
Først prøv makro alene Virker den ? Ok har du makroer i Personlig project mappe ? Hvis du går i VBA ALT + F11 kan du se om der er 2 mapper så hedder den ene nemlig personlig makro project mappe det er fordi du ha makroer liggende her Hvis du ønsker ikke at ha det, skal alle makroer her slettes
Næst Lav en makro Sub blabla() SletRaekker end sub Virker den ?
Nu har jeg fået sat alt sammen og det virker næsten, der er 4 rækker med 0 værdi der ikke bliver slettet. Dette er tilfældet i forskellige ark. Men det er de samme 4, jeg ved godt man bare kan slette dem, men hvis man skal slette de sidste 4 manuelt så kan jeg lige så godt undlade slet rækker makroen og så sortere dem selv?
Nogle ide om hvorfor den undlade de 4 rækker. Det er ikke de første i arket den henter fra, de forekommer efter række nr. 10 og så til nr. 20 ca.?
i = 7 Do While Range("F" & i).Value <> "" If Range("f" & i).Value = 0 Then Rows(i & ":" & i).Delete shift:=xlUp i = i - 1 End If i = i + 1 Loop slut = Now() MsgBox "Den startede: " & Start & vbNewLine & "Den sluttede " & slut & vbNewLine & "Det tog " & Second(slut - Start) & " sekunder "
Jeg fandt ud af problemet, vi eller jeg havde misforstået hinanden. Jeg skulle bruge at den slettede 0 værdierne fra rækker 7 i mit data ark, men den gør det i arket hvor tallene er hentet. Så grunden til at jeg havde 4 felter med 0 i værdi var at makroen fjern rækker første startede ved række 7, så de første 6 rækker ikke var med i makroen. Jeg ændrede det til række 2, da række 1 er tekst og så virkede det. Så lordnelson, du får tildelte point for dit svar som virkede, efter jeg lige forstod det og fordi du ihærdigt forsøgte at hjælpe. Jeg siger tusind mange gange tak for hjælpen.
Kan se jeg stadig har point til denne tråd til at hænge, kan du ikke skrive et svar så du kan få de 30 point ?
Synes godt om
Ny brugerNybegynder
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.