wie kan me helpen met het volgende:
bekijk de 2 ingevoegde bestanden, en wat ik wil bekomen is het volgende
In de werkmap "inkoopboek2017test" zijn verschillende tabbladen aanwezig, die ik nu 1 voor 1 kan exporteren naar de werkmap "stockbeheer2017test" tabblad "stockbeheer"
Nu zou ik graag onderstaande code aanpassen, dat dan het volgende gebeurt
Als ik de macro laat uitvoeren:
Stap 1: in de werkmap "stockbeheer2017test" alle cellen van "A12" tot "Z1000" te wissen (opgelet: in cellen "AA" tot "AI" staan formules dus deze moeten niet gewist worden
Stap 2: in de werkmap "inkoopboek2017test" als ik dan de macro uitvoer, dienen alle tabbladen met een tabbladnaam waarvan de lengte 9 karakters is bv"06022017A" de export doen naar werkmap "stockbeheer2017test" tabblad "stockbeheer"
de code die ik nu gebruik:
Hier de voorbeeldbestandjes
Bekijk bijlage InkoopBoek2017Test.xlsm Bekijk bijlage StockBeheer2017Test.xlsm
Tom
bekijk de 2 ingevoegde bestanden, en wat ik wil bekomen is het volgende
In de werkmap "inkoopboek2017test" zijn verschillende tabbladen aanwezig, die ik nu 1 voor 1 kan exporteren naar de werkmap "stockbeheer2017test" tabblad "stockbeheer"
Nu zou ik graag onderstaande code aanpassen, dat dan het volgende gebeurt
Als ik de macro laat uitvoeren:
Stap 1: in de werkmap "stockbeheer2017test" alle cellen van "A12" tot "Z1000" te wissen (opgelet: in cellen "AA" tot "AI" staan formules dus deze moeten niet gewist worden
Stap 2: in de werkmap "inkoopboek2017test" als ik dan de macro uitvoer, dienen alle tabbladen met een tabbladnaam waarvan de lengte 9 karakters is bv"06022017A" de export doen naar werkmap "stockbeheer2017test" tabblad "stockbeheer"
de code die ik nu gebruik:
Code:
Sub TestExportStockbeheer2017()
Dim Sh As Worksheet, c As Range, rng As Range, cl As Range
Application.ScreenUpdating = False
Set Sh = ActiveSheet
With GetObject(ThisWorkbook.Path & "\StockBeheer2017test.xlsm")
.Windows(1).Activate
With .Sheets("stockbeheer")
Set rng = .Cells(Application.Max(14, .Cells(Rows.Count, 1).End(xlUp).Offset(1).Row), 2)
If Len(Sh.Name) = 9 Then
Sh.Range("A22:U" & Application.Max(22, Sh.Cells(125, 4).End(xlUp).Row)).Copy
Application.Goto .Cells(Application.Max(14, .Cells(Rows.Count, 2).End(xlUp).Offset(1).Row), 2)
.Cells(Application.Max(14, .Cells(Rows.Count, 1).End(xlUp).Offset(1).Row), 1).PasteSpecial -4122
.Paste , True
.Cells(Application.Max(14, .Cells(Rows.Count, 23).End(xlUp).Offset(1).Row), 23).Resize(.Cells(Rows.Count, 2).End(xlUp).Row - Application.Max(14, .Cells(Rows.Count, 23).End(xlUp).Row)) = Sh.Cells(4, 19).Value
Application.CutCopyMode = 0
End If
For Each cl In .Range(.Cells(rng.Row, 2), .Cells(Rows.Count, 2).End(xlUp))
If cl.Value = 0 Then
If c Is Nothing Then Set c = cl Else Set c = Union(c, cl)
End If
Next cl
If Not c Is Nothing Then c.EntireRow.Delete
End With
End With
End Sub
Hier de voorbeeldbestandjes
Bekijk bijlage InkoopBoek2017Test.xlsm Bekijk bijlage StockBeheer2017Test.xlsm
Tom