• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Vba

Status
Niet open voor verdere reacties.

heididegeus

Gebruiker
Lid geworden
28 jul 2015
Berichten
69
Ik ben bezig met een complexe analyse voor verzuim.
Nu loop ik tegen een VBA aan en daar weet ik echt helemaal niets van.

Kan iemand mij helpen om deze werkend te maken?
 

Bijlagen

Misschien handig om er ook bij te vertellen WAT er WAAR en op WELK moment moet gebeuren en wat er nu niet werkt.
 
Nou, op het moment dat de analyse opstart moet de VBA ook gaan draaien.
Maar ik heb daar helemaal geen verstand van en kan hem ook niet lezen, dus ik kan niet veel details geven, sorry
 
Mijn vragen in #2 zijn daarmee niet beantwoord.
Hoe start je dus die analyse en op welk blad verwacht je dan een resultaat?
 
Oh sorry een beetje blond.
Deze analyse komt uit AFAS.
En de VBA staat op het blad VBA.

Ik hoop je hiermee iets meer info te hebben gegeven
 
Heidi,

De helpers hier hebben over het algemeen kennis van Excel en VBA, maar meestal niet van HRM-gerelateerde zaken.

Als je verwacht dat iemand op basis van de door jou verstrekte info iets voor je kan betekenen, ben ik bang dat je tegen een teleurstelling aanloopt.

Kortom, geeft aub een uitgebreide uitleg.

Gr.

Sjon
 
Ok, ik ga het proberen uit te leggen.

Ik zal een kopie maken van de VBA:

Option Explicit

Public Sub SaveDetailCockpitAsExcelFile(parSheetName As String, parFile As String, parFileName As String, parExtension As String, parStartColumnPivotTable As Long)

Dim lngLastRow As Long
Dim lngLastColumn As Long
Dim lngFirstRow As Long
Dim strWorkBookName As String
Dim strTempSheet As String
Dim lngRowFreeze As Long
Dim lngColumnFreeze As Long


strTempSheet = "Details"
lngRowFreeze = Sheets(parSheetName).Cells(1, 4).Value
lngColumnFreeze = Sheets(parSheetName).Cells(1, 5).Value

Sheets(strTempSheet).Select
ActiveWindow.FreezePanes = False
Sheets(strTempSheet).Cells.Delete Shift:=xlUp

'Het eerste deel van de draaitabel wordt gekopieerd. Dit gebeurd in gedeelten, omdat anders de opmaak niet mee wordt gekopieerd.
'Eerst wordt het bereik van de draaitabel bepaald en vervolgens wordt dit bereik gekopieerd


With Sheets(parSheetName)
If .Cells(1, parStartColumnPivotTable) <> "" Then
lngFirstRow = 2
Else: lngFirstRow = .Cells(1, parStartColumnPivotTable).End(xlDown).Row
End If
End With



'De tekst van de draaitabel wordt gekopieerd naar het nieuwe werkblad
Sheets(parSheetName).PivotTables(1).TableRange1.Copy _
Destination:=Sheets(strTempSheet).Cells(lngFirstRow + 1, 1)

'De kolommenbreedten moeten goed wordden gezet. Daarom worden de kolominstellingen gekopieerd en geplakt
Sheets(parSheetName).Cells.Copy
Sheets(strTempSheet).Cells(1, 1).PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'Leegt het klembord
Application.CutCopyMode = False

'De titel van de draaitabel wordt gekopieerd
Sheets(parSheetName).Cells(lngFirstRow, parStartColumnPivotTable).Copy _
Destination:=Sheets(strTempSheet).Cells(lngFirstRow, parStartColumnPivotTable)

'Bepaalt de plek waar het scherm moet worden bevroren
Dim rng As Range
Dim Position
Set rng = Sheets(parSheetName).PivotTables(1).DataBodyRange
Position = rng(1).Address

Sheets(strTempSheet).Range(Position).Select
ActiveWindow.FreezePanes = True


'Zorgt ervoor dat niet gemeldt wordt dat een bestand al bestaat, voordat de sheet opnieuw wordt opgeslagen.
Application.DisplayAlerts = False
Sheets(strTempSheet).Copy
Sheets(strTempSheet).SaveAs Filename:=parFile, FileFormat:=xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False

'Sluit het nieuwe werkbook
Workbooks(parFileName & parExtension).Close

'Meldingen worden vanaf nu weer getoond
Application.DisplayAlerts = True

'Maakt tabblad tijdelijke tabblad weer leeg
ActiveWindow.FreezePanes = False
Sheets(strTempSheet).Cells.Delete Shift:=xlUp
Sheets(strTempSheet).Cells(1, 1).Select


End Sub


Dit is de VBA, ik weet niet wat deze codes inhouden en wil dat een beetje begrijpen, zodat ik hem kan gebruiken in mijn sheet. Deze VBA is uit een oude analyse die niet meer werkt ivm geen goede informatie in de analyse. Ik wil deze nu repareren en ik ben al heel ver, maar ik loop dus nu tegen dit aan en ik ken dit niet. Vandaar dat ik deze even aan jullie wilde voorleggen.
Sorry voor mijn onduidelijkheid. :-(
 
heidi,

het zal aan mij liggen, maar als ik het bestand open en al jou info gelezen heb, weet ik nog altijd niet wat ik zou moeten gaan doen.
je schrijft dat de analyse uit AFAS komt > waar komt dat dan terecht in het bestand en HOE?

Als de AFAS-gegevens in het bestand staan, wat moet er dan mee gebeuren?

En wanneer zou dan de macro gestart moeten worden?
 
Op het moment dat ik de analyse open in AFAS moet ik de datum ingeven over welke periode ik de verzuimcijfers zou willen zien.
Dan gaat hij genereren en krijg ik de excel sheet zoals ik deze als eerste gestuurd heb (maar dan zonder inhoud).
Op het moment dat hij opent moet ook de macro draaien, vanuit deze macro worden namelijk draaitabellen gemaakt (die vindt je op het tabblad @HulptabellenPerLaag)
Doordat ik niet weet hoe die Macro werkt, krijg ik ook geen informatie in de draaitabellen en die zijn juist zo van belang op het ziekteverzuim te kunnen bepalen.
Dus alles (dit excel overzicht) is dus nu afhankelijk van deze macro die ik niet begrijp :-(
 
De code zit achter 2 werkbladen met een standaard naam. Deze zal dus niet worden gestart door Excel zelf omdat er niks in de Workbook_Open staat.
Tevens kent de code een aantal verplichte parameters. De vraag is nu dus, welk proces roept die code aan en welke parameters worden er dan meegegeven.
 
Ah ok, dus niet zo simpel.
Ik heb deze gekopieerd, maar de VBA moet dus in het tabblad VBA staan

Ik baal dat ik hier nou niets vanaf weet, voor de rest weet ik aardig wat van Excel, maar dit niet :-(
 
Dan gaat hij genereren en krijg ik de excel sheet zoals ik deze als eerste gestuurd heb (maar dan zonder inhoud).

Waar staan die gegevens dan?

Bovendien wordt er verwezen naar een ander bestand "VerzuimCockpit obv formatieverdelingen 1.30(1).xlsb" voor de draaitabellen.
 
Laatst bewerkt:
Hoe kom je überhaupt aan deze code dan ?
 
Ok, die "VerzuimCockpit obv formatieverdelingen 1.30(1).xlsb" is de oude analyse die het niet meer doet.
En de gegevens moet hij halen uit het tabblad Medewerkerbezetting verzuim

Waar staan die gegevens dan?

Bovendien wordt er verwezen naar een ander bestand "VerzuimCockpit obv formatieverdelingen 1.30(1).xlsb" voor de draaitabellen.
 
volgens mij is tabblad "Medewerkerbezetting verzuim" leeg
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan