Avatar billede Rawrcakes Nybegynder
21. september 2011 - 09:35 Der er 8 kommentarer

Excludering af poster i excel, samt udfyldning af tomme felter

Godmorgen kære ekspert brugere.

Dette er sådan set tre spørgsmål i én.

Jeg har fået en Business Warehouse rapport, som ser nogenlunde sådan ud:

Lev nr | Lev navn | Fakt. nr. | Short tekst | Værdi + valuta.

I de første to kolonner, A og B er det kun den FØRSTE linie ved en ny værdi som er udfyldt. Jeg skal have udfyldt dette automatisk.
Det er sat op på denne måde:
12 | Brødrene Dahl A/S
(Tom linie)
(Tom linie)
13 | Force

Jeg skal have fyldt de tomme linier op med det som er før.
Er der en måde at gøre dette automatisk?

____________________________________________

I den sidste kolonne, er der forskellige værdier; $, £, og DKK.
Jeg skal have fjernet alle linier som ikke er DKK.
____________________________________________

På short text er der forskellige værdier jeg skal have fjernet.

Hvis der feks. står fragt, skal jeg have fjernet alle linier som indeholder dette.

Det er vigtigt at jeg ikke på noget tidspunkt mikser linierne op, da de er linket til et fakturanummer som skal bruges senere.
Avatar billede Rawrcakes Nybegynder
21. september 2011 - 09:37 #1
Jeg glemte at nævne at det er excel 2003 jeg arbejder i
Avatar billede natkatten Mester
21. september 2011 - 11:25 #2
For at forstå første del af dit spørgsmål rigtigt:

Det er vel kun kolonne A og B, der er tomme? Dvs. at der er værdier i kolonnerne med:

Fakt. nr. | Short tekst | Værdi + valuta

Og disse henhører altid til den umiddelbart foregående leverandør (Lev nr | Lev navn)?
Avatar billede natkatten Mester
21. september 2011 - 11:50 #3
Anden del af dit spørgsmål handler om:

"I den sidste kolonne, er der forskellige værdier; $, £, og DKK.
Jeg skal have fjernet alle linier som ikke er DKK."

Er dette tekstfelter eller er det blot forskellige formater i Excel. Mao. kan man søge på $ og £?

Tredje del handler om de linier, der skal fjernes, hvis der er en en bestemt tekst indeholdt i kolonne med "Short tekst". Du nævner et eksempel ("fragt"). Hvis der skal laves en makro/VBA-kode, som kan automatisere arbejdet, så skal du have en komplet liste med uønskede udtryk.
Avatar billede Rawrcakes Nybegynder
21. september 2011 - 12:18 #4
Første del af mit spørgsmål:
Ja, det er kun A og B som der er tomme felter i.
Og de er altid den foregående

Anden del:
Det er sat som formater i excel.

Tredje del:
Skal jeg konstruere en komplet liste med uønskede indtryk, eller kan du give mig en rå VBA / Makro som jeg selv kan fylde ind i?
Avatar billede natkatten Mester
21. september 2011 - 12:43 #5
Et bud på første del (udfyldningen af blanke celler med foregående værdier) kommer her, idet du vælger en kolonne ad gangen:

Sub UdfyldBlanke()
'Lavet ud fra eksempel her:
'http://www.contextures.com/xlDataEntry02.html
Dim wks As Worksheet
Dim rng As Range
Dim LastRow As Long
Dim col As Long

Set wks = ActiveSheet
With wks
  col = ActiveCell.Column
  'marker området hvor der skal sættes tekst ind
  'eller udskift med et fast defineret område som f.eks.
  'col = .range("a1").column

  Set rng = .UsedRange
  LastRow = .Cells.SpecialCells(xlCellTypeLastCell).Row
  Set rng = Nothing
  On Error Resume Next
  Set rng = .Range(.Cells(2, col), .Cells(LastRow, col)) _
                  .Cells.SpecialCells(xlCellTypeBlanks)
  On Error GoTo 0

  If rng Is Nothing Then
      MsgBox "Der er ikke fundet blanke celler i området"
      Exit Sub
  Else
      rng.FormulaR1C1 = "=R[-1]C"
  End If

  'Erstat formler med værdier
  With .Cells(1, col).EntireColumn
      .Value = .Value
  End With

End With

End Sub


Husk at gemme en kopi af filen, før du benytter makroer!
Avatar billede Rawrcakes Nybegynder
21. september 2011 - 13:12 #6
Super! Det virkede!
Mange tak!

Har du et bud på del 2 og 3 også?
Avatar billede natkatten Mester
21. september 2011 - 13:14 #7
Et bud på at slette alle rækker, hvor ordet fragt måtte indgår i en eller flere celler i kolonne D:

Sub SletRækkerMedBestemtTekst()
With ActiveSheet
    .AutoFilterMode = False
    With Range("D1", Range("D" & Rows.Count).End(xlUp))
        .AutoFilter 1, "*fragt*"
        On Error Resume Next
        .Offset(1).SpecialCells(12).EntireRow.Delete
    End With
    .AutoFilterMode = False
End With
End Sub
Avatar billede natkatten Mester
21. september 2011 - 13:33 #8
Sletningen af linjer på grundlag af formatet er mere tricky, og jeg tør ikke komme med et skråsikkert bud her.

Jeg kan ved at bruge funktionen:

=CELLE("format";cellereference)

konstatere, at jeg i min Excel 2010 får følgende værdier:

kr.      C2
$ og £  ,2

så der må kunne laves et eller andet, som kan gennemløbe og finde alle ikke-krone formateringer. Men dette vil jeg overlade til andre, der er skrappere til VBA end jeg!
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