Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

[excel] Automatisch regels verwijderen uit export

Pagina: 1
Acties:

Vraag


  • mike1992
  • Registratie: Maart 2009
  • Laatst online: 12-11 22:54
Mijn vraag
Elke dag krijg ik een export van dagelijkse verkopen in excel. Ik heb dagelijks een deel van deze export nodig, de rest is afval. Dagelijks verwijder ik de regels die ik niet gebruik. Dat moet handiger kunnen(automatisch?)

In de export zijn de artikelgroepen ingedeeld in verschillende classes. Bijvoorbeeld:

231
233
245
275
297
ect ect.

Ik heb hiervan dagelijks nodig: 233 en 275. (de werkelijkheid gaat om tientallen uit een honderdtal).

Is er een optie om geautomatiseerd alle regels te verwijderen die niet voldoen aan 233 en 275?
Of omgekeerd(wellicht beter). Is er een optie om alle regels te verwijderen die voldoen aan 231, 245, 297.

1x handmatig die nummers programeren is geen enkel probleem. Mijn voorkeur is de 2e zodat ik zeker weet dat ik alle classes die ik nodig heb, heb.(Niet dagelijks wordt in elke class iets verkocht).

Ik probeer dit te vinden op google, maar de vraagstelling lijkt te complex te zijn, ik kan het niet vinden. :(

Beste antwoord (via mike1992 op 23-11-2017 08:41)


  • Eppo ©
  • Registratie: Juni 2004
  • Niet online
Dat wordt werken met een macro. In de macro kan je een loop maken die door de regels heen loopt en elke regel verwijderd waarvan de artikelgroep niet overeenkomt.

https://stackoverflow.com...if-a-cell-contains-a-text
https://www.rondebruin.nl/win/s4/win001.htm

Alle reacties


Acties:
  • Beste antwoord

  • Eppo ©
  • Registratie: Juni 2004
  • Niet online
Dat wordt werken met een macro. In de macro kan je een loop maken die door de regels heen loopt en elke regel verwijderd waarvan de artikelgroep niet overeenkomt.

https://stackoverflow.com...if-a-cell-contains-a-text
https://www.rondebruin.nl/win/s4/win001.htm

  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 10-11 20:27

MAX3400

XBL: OctagonQontrol

...export -> Moet dan iemand dat filter niet aanpassen?

En anders kan je toch iets met https://www.extendoffice....ws-with-certain-text.html doen; al dan niet via een array/table query eerst. Je beschrijft nou niet echt volledig "hoe" random de data in een sheet staat en/of wat je wel al had gevonden maar niet werkt.

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


  • breew
  • Registratie: April 2014
  • Nu online
De (volgens mij) te gebruiken logica:
VOOR elke cel binnen een opgegeven bereik
   ALS celwaarde is in arrayWaarden DAN verwijder hele rij van cel
VOLGENDE cel


de for-loop:
http://www.excel-easy.com...hrough-defined-range.html

de check of een waarde in een array valt:
https://stackoverflow.com...ray-or-not-with-excel-vba

Deel even de code die je tot nu toe al hebt gemaakt, dan kunnen we daar even naar kijken.

[ Voor 30% gewijzigd door breew op 22-11-2017 09:08 ]


  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 13:48

The Eagle

I wear my sunglasses at night

Ik zou idd even gaan babbelen met degene die die dagelijkse export maakt. Kan niet zo lastig zijn om hem aan te passen of een nieuwere, specifiekere te maken.

Ik neem aan dat je dat spul in csv aangeleverd krijgt? If so, installeer bash even op je windows (uitgaande van win10) en ga met grep aan de slag. Daarin is dit met een commando te doen :)

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


  • breew
  • Registratie: April 2014
  • Nu online
The Eagle schreef op woensdag 22 november 2017 @ 09:21:
Ik zou idd even gaan babbelen met degene die die dagelijkse export maakt. Kan niet zo lastig zijn om hem aan te passen of een nieuwere, specifiekere te maken.

Ik neem aan dat je dat spul in csv aangeleverd krijgt? If so, installeer bash even op je windows (uitgaande van win10) en ga met grep aan de slag. Daarin is dit met een commando te doen :)
^^ ook een mooie oplossing :Y :Y .
Bash is niet nodig als je tooltjes als baregrep gebruikt.

  • mike1992
  • Registratie: Maart 2009
  • Laatst online: 12-11 22:54
Eppo © schreef op woensdag 22 november 2017 @ 08:41:
Dat wordt werken met een macro. In de macro kan je een loop maken die door de regels heen loopt en elke regel verwijderd waarvan de artikelgroep niet overeenkomt.

https://stackoverflow.com...if-a-cell-contains-a-text
https://www.rondebruin.nl/win/s4/win001.htm
Die 2e link heeft mij op weg kunnen helpen, ik heb nu een werkende code. Bedankt! Deze had ik niet gevonden! _/-\o_

Export aanpassen dat gaat helaas niet. In het systeem kun je alleen een van en tot bereik selecteren(drama!).

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Sub Loop_Example()
    Dim Firstrow As Long
    Dim Lastrow As Long
    Dim Lrow As Long
    Dim CalcMode As Long
    Dim ViewMode As Long

    With Application
        CalcMode = .Calculation
        .Calculation = xlCalculationManual
        .ScreenUpdating = False
    End With

    'We use the ActiveSheet but you can replace this with
    'Sheets("MySheet")if you want
    With ActiveSheet

        'We select the sheet so we can change the window view
        .Select

        'If you are in Page Break Preview Or Page Layout view go
        'back to normal view, we do this for speed
        ViewMode = ActiveWindow.View
        ActiveWindow.View = xlNormalView

        'Turn off Page Breaks, we do this for speed
        .DisplayPageBreaks = False

        'Set the first and last row to loop through
        Firstrow = .UsedRange.Cells(1).Row
        Lastrow = .UsedRange.Rows(.UsedRange.Rows.Count).Row

        'We loop from Lastrow to Firstrow (bottom to top)
        For Lrow = Lastrow To Firstrow Step -1

            'We check the values in the A column in this example
            With .Cells(Lrow, "Q")

                If Not IsError(.Value) Then

                    If .Value = "233" Or .Value = "234" Or .Value = "250" Or .Value = "251" Or .Value = "252" Or .Value = "253" Or .Value = "264" Or .Value = "267" Or .Value = "268" Or .Value = "269" Or .Value = "270" Or .Value = "271" Or .Value = "272" Or .Value = "273" Or .Value = "276" Or .Value = "283" Or .Value = "284" Or .Value = "297" Or .Value = "306" Or .Value = "311" Or .Value = "321" Or .Value = "322" Or .Value = "323" Or .Value = "324" Or .Value = "328" Or .Value = "331" Or .Value = "332" Or .Value = "335" Or .Value = "339" Or .Value = "340" Or .Value = "342" Or .Value = "343" Or .Value = "349" Or .Value = "350" Or .Value = "354" Or .Value = "358" Or .Value = "360" Or .Value = "362" Or .Value = "363" Or .Value = "364" Or .Value = "365" Or .Value = "366" Or .Value = "367" Or .Value = "368" Then .EntireRow.Delete
                    'This will delete each row with the Value "ron"
                    'in Column A, case sensitive.

                End If

            End With

        Next Lrow

    End With

    ActiveWindow.View = ViewMode
    With Application
        .ScreenUpdating = True
        .Calculation = CalcMode
    End With

End Sub
Pagina: 1