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:
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.
:strip_exif()/f/image/PhVEe8a1xNW0PRUIPmBGqpd1.jpg?f=fotoalbum_large)
: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.
: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:
Alvast ontzettend bedankt voor de moeite!
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
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.
:strip_exif()/f/image/PhVEe8a1xNW0PRUIPmBGqpd1.jpg?f=fotoalbum_large)
: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.
: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!