Hoi allemaal,
Ik heb een moederbestand (bijlage 1) en meerdere invulbestanden (als voorbeeld bijlage 2).
Bijlage 1: Bekijk bijlage Producten.xlsm
Bijlage 2: Bekijk bijlage Appels.xlsm
In mijn moederbestand heb ik een knop welke ik er voor wil laten zorgen dat gegevens uit dit bestand worden weggeschreven in een invulbestand. Wat ik nu heb is dat de code het bestand opent op de achtergrond (niet zichtbaar) en dan data wordt weggeschreven bij de juiste datum, maar ik krijg een foutmelding (in de rode regel) waar ik niet uit kom. 'Fout 91 tijdens uitvoering: Objectvariabele of blokvariabele With is niet ingesteld'. Wie kan mij helpen?
Dit is de code die ik heb:
Ik heb een moederbestand (bijlage 1) en meerdere invulbestanden (als voorbeeld bijlage 2).
Bijlage 1: Bekijk bijlage Producten.xlsm
Bijlage 2: Bekijk bijlage Appels.xlsm
In mijn moederbestand heb ik een knop welke ik er voor wil laten zorgen dat gegevens uit dit bestand worden weggeschreven in een invulbestand. Wat ik nu heb is dat de code het bestand opent op de achtergrond (niet zichtbaar) en dan data wordt weggeschreven bij de juiste datum, maar ik krijg een foutmelding (in de rode regel) waar ik niet uit kom. 'Fout 91 tijdens uitvoering: Objectvariabele of blokvariabele With is niet ingesteld'. Wie kan mij helpen?
Dit is de code die ik heb:
Code:
Sub OpenAndManipulate()
Dim xl0 As New Excel.Application
Dim xlw As New Excel.Workbook
Dim wbProduct As Workbook
Dim strDatum As String
Dim oSht As Worksheet
Dim oWb As Workbook
Dim rngActivecell, rngColumn1, rngColumn2 As Range
'Pak de huidige datum:
Set wbProduct = ActiveWorkbook
strDatum = wbProduct.Sheets(1).Range("T5")
strDatum = getFirstOfMonth(strDatum)
' get columnranges
Set rngColumn1 = wbProduct.Sheets(1).Range("D9")
' Loop
Set rngActivecell = rngColumn1.Offset(1, 0)
rngActivecell.Select
i = 9
Do While i <= Range("Q1").Value
Set xlw = xl0.Workbooks.Open("C:\" & Range("B" & i) & ".xlsm")
Set oSht = xlw.Sheets("Aantal")
If IsEmpty(oSht) Then
MsgBox "Kan de juiste sheet niet vinden. Ik stop ermee."
GoTo exit_command
End If
Call sheetvullen1(oSht, strDatum, rngActivecell.Offset(0, 1).Value)
xlw.Save
xlw.Close
Set xl0 = Nothing
Set xlw = Nothing
i = i + 1
Loop
exit_command:
End Sub
Function getFirstOfMonth(strDate As String)
' Maakt van de huidige datum de eerste van de maand datum
Dim strItems() As String
strItems() = Split(strDate, "-")
getFirstOfMonth = "1-" & ActiveSheet.Range("M1").Value & "-" & strItems(2)
End Function
Function sheetvullen1(oSht As Worksheet, strDatum As String, strValue As String)
' Zoek cell met corresponderende datum in Sheet
Dim FoundCell As Range
Set FoundCell = oSht.Range("A1:O100").Find(what:=DateValue(strDatum), LookIn:=xlValues)
If IsEmpty(FoundCell) Then
MsgBox "Kan de datum niet vinden. Ik stop ermee"
GoTo exit_command
End If
[COLOR="#FF0000"]FoundCell.Offset(1, 0).Value = strValue[/COLOR]
exit_command:
End Function
Laatst bewerkt: