• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

VBA gegevens ophalen

Status
Niet open voor verdere reacties.

ivoexcel

Gebruiker
Lid geworden
23 nov 2018
Berichten
100
Goedenavond,

Ik heb de volgende VBA code waarin ik 2 dingen niet voor elkaar krijg.

1. wk wordt het filter op datum. Hier moet de code de datum van morgen nemen. In het bestand is de datum indeling dd/mm/JJJJ.
2. Op het voorblad (TEST) worden de opgehaalde gegevens geplaatst uit vier tabbladen. Nu wordt steeds de bovenste regel overgenomen en erboven geplaatst. Dit hoeft alleen bij de eerste (de rest van de bladen zijn dezelfde indeling, dus dezelfde tekst).


Alvast bedankt!!


HTML:
Sub test2()
  
Dim sh As Worksheet, Po As Worksheet
Set Po = Sheets("TEST")
Dim answer As Integer

    'Veld wordt leeg gemaakt en opmaak verwijderd
       Dim opmk As Range
       On Error Resume Next
       Set opmk = Po.Columns("A:R")
       Application.ScreenUpdating = False                           'screenupdating uit
       opmk.Clear
       Application.ScreenUpdating = True

answer = MsgBox("Wilt u morgen?", vbQuestion + vbYesNo)
 
  If answer = vbYes Then
  wk = Date
  Else
    wk = InputBox("Vul datum in")
    If wk <> "" Then
  End If

        'Zoekterm wordt gezocht in array sheets
        For Each sh In Sheets(Array("Blad1", "Blad2", "Blad3", "Blad4"))
            If sh.Name <> Po.Name Then
                With sh.Cells(4, 1).CurrentRegion
                    .AutoFilter 5, Criteria1:="<>0"
                    .AutoFilter 14, wk
                    If .Columns(1).SpecialCells(xlCellTypeVisible).Count > 1 Then    'er zijn nog gefilterde gegevens overgebleven
                        .SpecialCells(xlCellTypeVisible).Copy        'gefilterde gegevens kopieren
                        Po.Cells(Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
                    End If
                    .AutoFilter
                End With
            End If
        Next sh
        With Po.Cells
            .WrapText = False
            .MergeCells = False
        End With
        Application.GoTo Sheets("TEST").Range("A1"), 1
    End If
    'End If
    
    Columns("C:C").NumberFormat = "dd/mm/yyyy"
    Columns("N:N").NumberFormat = "dd/mm/yyyy"
    
End Sub
 

Bijlagen

  • Test.xlsm
    26,2 KB · Weergaven: 48
Om te filteren op morgen.

Code:
Sub VenA()
  If MsgBox("Wilt u morgen?", vbQuestion + vbYesNo) = vbYes Then
    Application.ScreenUpdating = False
    Sheets("Test").UsedRange.Clear
    For Each sh In Sheets(Array("Blad1", "Blad2", "Blad3", "Blad4"))
      With sh.Cells(1).CurrentRegion
        .AutoFilter 5, "<>0"
        .AutoFilter 14, 3, 11
        x = Abs(Sheets("Test").Cells(1).Value <> "")
        .Offset(x).Copy Sheets("Test").Cells(Rows.Count, 1).End(xlUp).Offset(x)
        .AutoFilter
      End With
    Next sh
  End If
End Sub
 
Dankuwel Vena!
Welke waarde geeft nu aan een dag later gefilterd moet worden?

Groet
 
de waarde 3 in combinatie met 11

Zoek in de Object Browser maar eens op xldynamicfiltercriteria en xlautofilteroperator voor de mogelijkheden.
 
Top danku nog 1 vraag dan heb ik hem. Hoe krijg ik de tekst die nu geplaatst wordt 2 regels lager?
 
Waarom zou je dat willen? Je kan aan het eind van de code toch 2 rijen in laten voegen. Rows("1:2").insert
 
Als ik een knop plaats om de macro te starten wordt deze ook 2 regels naar beneden verplaats. Over de tekst heen..
 
Dan moet je de eigenschappen van de knop aanpassen.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan