In de volgende code zit één regel waar ik een formule toewijs aan een cel. De formule wordt effectief toegewezen, maar geeft als resultaat steeds de foutmelding #Naam.
Wat doe ik verkeerd?
Het workbook met de code voeg ik eveneens toe in bijlage.
De code doet het volgende:
Op basis van de tabel op het eerste werkblad, wordt er voor iedere medewerker een worksheet gemaakt. Deze worksheet krijgt telkens als naam, de nummer van de medewerker (bvb 004).
Op elk werkblad voorzie ik een lijst waarin de medewerker zijn individuele bedragen kan invullen.
Ik wil in cell A2 op ieder werkblad de som zien verschijnen van de individuele bedragen van iedere medewerker.
Ik werk met een nederlandstalige Excel 2003.
Alvast bedankt!
Wat doe ik verkeerd?
Het workbook met de code voeg ik eveneens toe in bijlage.
Code:
Sub MaakWerkbladenPerMedewerker()
Dim myWB As Workbook
Dim myWS As Worksheet
Dim UitgStaat As Range
Dim aantalWS As Integer
Dim str1 As String
Dim str2 As String
Dim i As Integer
Set myWB = ActiveWorkbook
Set myWS = ActiveSheet
Set UitgStaat = myWS.Range("UitgavenLijst")
'doorloop de uitgavenlijst op de worksheet samenvatting
'en maak voor iedere medewerker een worksheet
'waarbij de naam van de worksheet gelijk is aan het nummer van de medewerker
'bepaal het aantal aanwezige worksheets
aantalWS = myWB.Sheets.Count
For i = 2 To UitgStaat.Rows.Count
'voeg worksheet toe
Set myWS = myWB.Sheets.Add(after:=Sheets(aantalWS))
'geef de sheet een naam - het nummer van de medewerker
myWS.Name = UitgStaat.Cells(i, 1).Value
'voorzie een som en een lijst op het werkblad
'de lijst
'kolomkopje
myWS.Cells(3, 1).Value = "IndividueleUitgaven"
'benoem de range
str1 = "IndUitg_" & UitgStaat.Cells(i, 1).Value
str2 = "=" & UitgStaat.Cells(i, 1).Value & "!$A$3:$A$4"
ActiveWorkbook.Names.Add Name:=str1, RefersTo:=str2
'maak er een lijst van
str2 = UitgStaat.Cells(i, 1).Value & "_IndUitg_lijst"
ActiveSheet.ListObjects.Add(xlSrcRange, Range(str1), , xlYes).Name = str2
'de som
myWS.Cells(1, 1).Value = UitgStaat.Cells(i, 2).Value
myWS.Cells(1, 2).Formula = "=som(" & str1 & ")"
'verhoog aantalWS
aantalWS = aantalWS + 1
Next i
Set myWS = Nothing
Set myWB = Nothing
End Sub
De code doet het volgende:
Op basis van de tabel op het eerste werkblad, wordt er voor iedere medewerker een worksheet gemaakt. Deze worksheet krijgt telkens als naam, de nummer van de medewerker (bvb 004).
Op elk werkblad voorzie ik een lijst waarin de medewerker zijn individuele bedragen kan invullen.
Ik wil in cell A2 op ieder werkblad de som zien verschijnen van de individuele bedragen van iedere medewerker.
Ik werk met een nederlandstalige Excel 2003.
Alvast bedankt!
Bijlagen
Laatst bewerkt: