VBA - Data kopiëren op voorwaarde naar ander tabblad

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Gamedj
  • Registratie: Mei 2012
  • Laatst online: 05-07 19:50
Goedemorgen Tweakers,

Mijn vraag
Binnen mijn organisatie zijn wij begonnen met het gebruik van Power BI. De data wordt allemaal vanuit een Excel bestand ingelezen. In Excel gebruiken we meerdere tabbladen:
  • blad 1 Het registreren van offerte aanvragen
  • blad 2 Het registreren van het aantal gegunde opdrachten
  • blad 3 Het bijhouden welke opdrachten in uitvoering zijn
Hiernaast zijn er nog meer tabbladen maar deze zijn niet relevant voor de vraag die ik heb.

Wat ik dus wil is wanneer in blad 1 een offerte aanvraag als status "Opdracht" krijgt, deze gekopieerd wordt naar blad 2. En wanneer deze verkregen opdracht in uitvoering gaat deze naar blad 3 wordt gekopieerd. Tot hier is mij dit gelukt met VBA, echter wordt er niet rekening gehouden met volgorde wanneer er gekopieerd wordt. Als bijvoorbeeld in blad 1 rijen 2, 6,7,8,9,10 en 15 als status "Opdracht" hebben wordt dit goed overgenomen.

Afbeeldingslocatie: https://tweakers.net/i/dei9DHrASgLjP9mn1ZhUXJy1JDI=/800x/filters:strip_icc():strip_exif()/f/image/PhVEe8a1xNW0PRUIPmBGqpd1.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/UgUNMV6XSstQeqAaZ8A9N3Irb-8=/800x/filters:strip_icc():strip_exif()/f/image/rJQ8zOtopsRwxZO7TOnXZEFl.jpg?f=fotoalbum_large

Alleen als ik op een later moment in blad 1 rij 4 en 5 ook "Opdracht" geef dan gaat het fout. Omdat ik in blad 2 al andere gegevens heb toegevoegd wil ik dat de regels (uit blad1) die op een later moment "Opdracht" krijgen worden toegevoegd na de laatste gebruikte regel van blad 2.
Afbeeldingslocatie: https://tweakers.net/i/1eI4_5g3LaIUDklUulHZt-DFjKQ=/800x/filters:strip_icc():strip_exif()/f/image/JNfFqq6q2JHBIfJXKuNg4MIA.jpg?f=fotoalbum_large

Is er een manier waarop ik eerst een vergelijking kan maken van de data die al in blad 2 aanwezig is met de nieuwe, te kopiëren, data uit blad 1?

Relevante software en hardware die ik gebruik
Office 365

Wat ik al gevonden of geprobeerd heb
Ik heb geen ervaring met VBA en heb al uren naar tutorials op YouTube gekeken of ik het hier kon vinden maar helaas geen geluk gehad. Wellicht de verkeerde filmpjes bekeken of niet de juiste zoekterm gebruikt.

De code die ik nu heb:
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
Private Sub CommandButton1_Click()

    ' Get the worksheets
    Dim shRead As Worksheet, shWrite As Worksheet
    Dim lastRow As Integer
    Set shRead = ThisWorkbook.Worksheets("LopendeAanvraag")
    Set shWrite = ThisWorkbook.Worksheets("OrderIntake")
    
    
    ' Get the range
    Dim rg As Range
    Set rg = shRead.Range("A1")
    
    ' Remove any existing filters
    rg.AutoFilter
    
    ' Apply the Autofilter
    rg.AutoFilter Field:=7, Criteria1:="Opdracht"
     
    ' Get the read range
    Dim rgRead As Range
    Set rgRead = _
            shRead.Range("A1:F2000").SpecialCells(xlCellTypeVisible)

    Dim rgRow As Range, row As Long
    row = 1
    ' Read through each row
    For Each rgRow In rgRead.Rows
        
        ' Copy the row
        shWrite.Cells(row, 1).Resize(1, rgRead.Columns.Count).Value2 _
                   = rgRow.Value2
        
        ' move to the next output row
        row = row + 1
        
    Next rgRow
    
    ' Remove any existing filters
    rg.AutoFilter

End Sub


Alvast ontzettend bedankt voor de moeite!