Avatar billede tummes1983 Mester
08. august 2022 - 09:35 Der er 2 kommentarer og
1 løsning

Hjælp til Macrofejl

Hej

Jeg har optaget nedenstående macro, men den driller...

Jeg har nogle formler stående i A1:I1

De bliver kopieret ned i A3:I3 og derefter fyldt ud i alle celler helt ned til 6000.

Derefter skal den markere og fjerne alle der ikke har X eller er tomme i G og derefter alle der er tomme eller 0 i kolonne H.

Macroen kører, men der ender med alligevel med at være værdier med 0 i kolonne H...

Jeg kan ikke kode, så det er en macro jeg har optaget og så forsøgt rydde op i...

Håber i kan hjælpe, tak!

Sub Fjern()
'
' Fjern Makro
'

'
    Application.ScreenUpdating = False
    Range("A1:I1").Select
    Selection.Copy
    Range("A3").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Selection.Copy
    Range("A4:I6000").Select
    ActiveSheet.Paste
    Rows("2:2").Select
    Application.CutCopyMode = False
    Selection.AutoFilter
    ActiveSheet.Range("$A$2:$I$6000").AutoFilter Field:=7, Criteria1:="=0", _
        Operator:=xlOr, Criteria2:="="
    Rows("3:3").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Delete Shift:=xlUp
    ActiveSheet.Range("$A$2:$I$6000").AutoFilter Field:=7
    ActiveSheet.Range("$A$2:$I$6000").AutoFilter Field:=8, Criteria1:="0"
    Rows("21:21").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Delete Shift:=xlUp
    ActiveSheet.Range("$A$2:$I$6000").AutoFilter Field:=8
    Range("A2").Select
    Selection.AutoFilter
    Application.ScreenUpdating = True
End Sub
Avatar billede jens48 Ekspert
08. august 2022 - 10:53 #1
Kunne problemet ikke være, at når du sletter en linie, så refererer formelen til en anden celle end oprindeligt? Hvordan ser formelerne ud i G1 og H1?
Avatar billede Dan Elgaard Ekspert
09. august 2022 - 10:58 #2
Sub Fjern()

      Application.ScreenUpdating = False
   
      Range("A1:I1").Copy Destination:=Range("A3:I6000")
   
      Dim Counter As Long
      For Counter = 6000 To 3 Step -1
            If Range("H" & Counter).Value = 0 Then Rows(Counter).Delete
            If Range("H" & Counter).Value = "" Then Rows(Counter).Delete
            If Range("G" & Counter).Value = "" Then Rows(Counter).Delete
            If Range("G" & Counter).Value <> "X" Then Rows(Counter).Delete
      Next

      Application.ScreenUpdating = True

End Sub
Avatar billede tummes1983 Mester
09. august 2022 - 14:25 #3
Tak Dan & jens48
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



IT-JOB

Netcompany A/S

IT Consultant

Metroselskabet og Hovedstadens Letbane

IT-løsningsarkitekt

Udviklings- og Forenklingsstyrelsen

Business Analyst med flair for test til tolddomænet

Danske Commodities A/S

Operations and process controller

ORTEC Nordic A/S

Implementation Consultant