Gå til innhold

[Løst] Excel 2007 VBA En loop som ekskluderer rader som ikke skal være med ut i fra et gitt kriterie


Anbefalte innlegg

Hei.

 

Jeg har en loop som henter inn informasjon i fra et ark til et annet.

Men det er noen av radene jeg ikke vil ha med.

 

I kolonne A i det arket som loopen henter informasjon ut i fra står Initialene, Jeg tenkte da at man kunne legge det inn sånn at loopen ikke henter inn den raden som har de initialene.

 

Et EKS. på initial: SEK

 

Ark Olfi som informasjonen blir hentet i fra.

Kolonne A Initialer

Kolonne B Navn

Kolonne D Kg

Kolonne F Linjer

Kolonne H Ordre

 

Ark Plukk som informasjonen blir hentet til

Kolonne B Initialer

Kolonne C Navn

Kolonne E Kg

Kolonne G Linjer

Kolonne I Ordre

 

Jeg vet ikke om det fungerer med den koden jeg bruker nå.

Sheets("plukk").Select
Range("b4").Select
   Dim f As Integer
   Dim fntRowCount As Integer
   fntRowCount = Sheets("olfi").Range("A1").CurrentRegion.Rows.Count - 0
   For f = 1 To fntRowCount
   ActiveCell.FormulaR1C1 = "='olfi'!R[-3]C[-1]" 'Kolonne B
   ActiveCell.Offset(0, 1).Select
   ActiveCell.FormulaR1C1 = "='olfi'!R[-3]C[-1]" 'kolonne C
   ActiveCell.Offset(0, 2).Select
   ActiveCell.FormulaR1C1 = "='olfi'!R[-3]C[-1]" 'Kolonne E
   ActiveCell.Offset(0, 2).Select
   ActiveCell.FormulaR1C1 = "='olfi'!R[-3]C[-1]" 'Kolonne G
   ActiveCell.Offset(0, 2).Select
   ActiveCell.FormulaR1C1 = "='olfi'!R[-3]C[-1]" 'kolonne I
   ActiveCell.Offset(0, -7).Select
   ActiveCell.Offset(1, 0).Select
   Next f

 

Hilsen

 

Torbjørn

Lenke til kommentar
Videoannonse
Annonse

Hei.

 

Jeg har tenkt litt og lurer på om det er bedre og få en makro til og slette de radene som ikke skal være med på et tidligere tidspunkt. så trenger ikke koden og ta noe hensyn til de radene som ikke skal være med.

 

Hilsen

 

Torbjørn

Lenke til kommentar

Knepet med å slette rader er å jobbe nedenfra og opp:

 

Sub SlettRader()

 

Dim R As Long

 

Dim S As String

 

Dim oSht As Worksheet

 

Set oSht = ThisWorkbook.Sheets(1)

 

S = "SEK"

 

For R = oSht.Cells(oSht.Rows.Count, 1).End(xlUp).Row To 2 Step -1

 

If oSht.Cells(R, 1).Value <> S Then oSht.Rows®.Delete

 

Next

 

End Sub

 

HTH. Beste hilsen Harald

Lenke til kommentar

Hei.

 

Nå sletter den ja, et lite problem bare. Den sletter alle radene utenom den øverste.

 

Men jeg fant akkurat en annen kode som jeg kan bruke, så du trenger ikke feilsøke på det hvis du ikke absolutt vil da :)

 

 

 

Hilsen

 

Torbjørn

Lenke til kommentar

Hei.

 

Her er koden

 

Dim MyRange As Range
Dim x As Long
Dim MyLastRow As Long


Set MyRange = Intersect(ActiveSheet.UsedRange, Range("A:A"))

MyLastRow = MyRange.Row + MyRange.Rows.Count - 1

For x = MyLastRow To 11 Step -1
If cells(x, 1).Value = False Or cells(x, 1).Value = "SEK" Or cells(x, 1).Value = "HODU" _
Or cells(x, 1).Value = "ANLE" Or cells(x, 1).Value = "CLON" Or cells(x, 1).Value = "RO" _
Or cells(x, 1).Value = "HGR" Or cells(x, 1).Value = "SESO" Or cells(x, 1).Value = "ZAAH" Then
cells(x, 1).EntireRow.Delete
End If
Next x

 

 

Hilsen

 

Torbjørn

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...