Goedemorgen,
Ben al dagen bezig om het voor elkaar te krijgen om van een gesloten (bron) excel-file gegevens te halen en deze neer over te zetten in het actieve (Doel) -file.
Het actieve (Doel) -file is het originele-file waarin ik updates maak.
De (oude) files zijn exact hetzelfde, alleen data kan verschillen.
Dacht als ik het originele-file leeg maak, vervolgens alle data overzet en dan opsla onder het bestaande (oude)-file met een ander version-nummer in de naam is het oude-file geupdated.
Heb alles werkend, alleen wil het overzetten van de data niet lukken.
Helaas kom er niet uit.
Wat ik al heb: - bron-file is geopend
- doel-file is leeg gemaakt van data
Nu zou de data overgezet moeten worden, maar helaas kom er even niet uit..
Heb onderstaande al reeds gemaakt voor het overzetten:
Deze Updates moeten worden overgebracht naar bestaande -files
iemand die hierin begaafd is en enig idee heeft?
Thanks already
Dutch
Ben al dagen bezig om het voor elkaar te krijgen om van een gesloten (bron) excel-file gegevens te halen en deze neer over te zetten in het actieve (Doel) -file.
Het actieve (Doel) -file is het originele-file waarin ik updates maak.
De (oude) files zijn exact hetzelfde, alleen data kan verschillen.
Dacht als ik het originele-file leeg maak, vervolgens alle data overzet en dan opsla onder het bestaande (oude)-file met een ander version-nummer in de naam is het oude-file geupdated.
Heb alles werkend, alleen wil het overzetten van de data niet lukken.
Helaas kom er niet uit.
Wat ik al heb: - bron-file is geopend
- doel-file is leeg gemaakt van data
Nu zou de data overgezet moeten worden, maar helaas kom er even niet uit..
Heb onderstaande al reeds gemaakt voor het overzetten:
Deze Updates moeten worden overgebracht naar bestaande -files
Code:
'# HIERONDER DATA OVERZETTEN ##############################################################################################
Dim bronPad As String, bronBestand As String, wbBron As Workbook, wsBron As Worksheet
Dim wbDoel As Workbook, wsDoel As Worksheet, blok As Variant, blokRange As Range, b As Worksheet ', e As Long, dataBlok As Variant
' On Error GoTo FoutAfhandeling
'===Pas bestandslocatie aan===
bronPad = ActiveWorkbook.Worksheets("Control").Range("D3")
bronBestand = VolOldNaamTB & ".xls "
If Dir(bronPad & bronBestand) = "" Then
MsgBox "BronBestand bestaat niet: " & bronPad & bronBestand, vbCritical
Exit Sub
End If
'Doel = huidig Bestand
Set wbDoel = ThisWorkbook
' Bronbestand openen
Set wbBron = Workbooks.Open(bronPad & bronBestand, ReadOnly:=True)
'===Lijst met: Bronblad, Bronbereik, Doelblad, Doelbereik===
' blokken = Array( _
' Array("Blad1", "A6:E41", "Blad1", "H6:L41", "Blad1", "O6:Q41", "Blad1", "A44", "Blad1", "I44", "Blad1", "A45:E83", "Blad1", "H45:L83", "Blad1", "O45:Q83", "Blad1", "S6:S41", "Blad1", "S45:S83"), _
' Array("Blad1", "AA3:AA14", "Blad1", "AD33", "Blad1", "AI3:AP60", "Blad1", "AI63", "Blad1", "AI64:AP122", "Blad1", "AQ3:AQ122", "Blad1", "AR3:AR122"), _
' Array("Control", "L22", "Control", "L26", "Control", "L30", "Control", "E28"), _
' Array("Kasboek", "A3:G60", "Kasboek", "A63", "Kasboek", "A64:G121"), _
' Array("Control", "I14", "Control", "L22", "Control", "L26", "Control", "L30") _
' )
' hieronder test data
blok = Array( _
Array("Blad1", "A6:E41") _
)
'---------------------------------------------------------
' LOOP OVER ALLE BLADEN IN DE BRONFILE
'---------------------------------------------------------
For Each b In wbBron.Worksheets
' Blad moet ook bestaan in doelbestand
On Error Resume Next
Set wsDoel = wbDoel.Sheets(b.Name)
If Err.Number <> 0 Then
Err.Clear
' On Error GoTo FoutAfhandeling
GoTo Volgendblad
End If
' On Error GoTo FoutAfhandeling
Set wsBron = b
wsDoel.Unprotect
'===Kopieer de blokken op dit blad===
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For i = LBound(blok) To UBound(blok) ' Range proberen te laden
On Error Resume Next
Set blokRange = wsBron.Range(blok(i))
If Err.Number <> 0 Then
MsgBox "Ongeldig blok: " & blok(i), vbExclamation
Err.Clear
' On Error GoTo FoutAfhandeling
GoTo VolgendeBlok
End If
' On Error GoTo FoutAfhandeling
'Kopie exact op dezelfde plaats
wsDoel.Range(blok(i)).Value = blokRange.Value
VolgendeBlok:
Set blokRange = Nothing
Next i
' PROTECT DOELBLAD NA SCHRIJVEN
wsDoel.Protect
Volgendblad:
wsDoel.Protect
Set wsBron = Nothing
Set wsDoel = Nothing
Next b
'===Bronbestand sluiten===
wbBron.Close SaveChanges:=False
Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox "Blokken zijn succesvol 1-op-1 overgezet!", vbInformation
Exit Sub
Thanks already
Dutch
