• 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.

1 werkblad met gegevens uit meerdere werkbladen

Status
Niet open voor verdere reacties.

eyeye

Gebruiker
Lid geworden
17 dec 2012
Berichten
42
Hallo,

Mijn situatie:
Ik heb een excel bestand voor het maken van een personeelsplanning voor meerdere filialen. In elk tabblad heb ik de planning staan van het betreffende filiaal. In het eerste tabblad wil ik graag de personeelsgegevens van elk filiaal en de komende 4 weken van de planning onder elkaar. Op zich kom ik nog aardig uit de voeten d.m.v. kopiëren/plakken, echter zitten er een aantal controle functies en verwijzingen in de tabbladen met de planning waardoor ik steeds de gegevens in het eerste (overzichts) werkblad moet bijwerken.

Wat ik graag zou willen is een functie/verwijzing/script of iets dergelijks waarbij automatisch deze gegevens uit de werkbladen worden weergegeven in het eerste werkblad. Ik heb het al geprobeerd d.m.v. een absolute cel verwijzing, echter als ik weer een week verder ben en de cellen van de bron opschuif dan krijg ik de melding #verwijd.

Het mooiste zou zijn iets van een script/macro (al moet ik dan wel even uitzoek hoe dat werkt) waarbij, na commando, het eerste overzichtswerkblad bijgewerkt wordt en dus een week opschuift.

Ik hoop dat ik voldoende uitleg heb gegeven. Ik heb een bestand bijgevoegd met een planning van 2 filialen en dan hoe het eerste tabblad eruit zou moeten zien.
Owja de berekening in kolom I moet ook in het eerste werkblad nog werken.

Met vriendelijke groet,
Ronald
 

Bijlagen

  • Planning voorbeeld.xls
    696,5 KB · Weergaven: 460
Niels,

Ten eerste super bedankt!

Dit is inderdaad wat ik bedoelde, maar ik heb nog een paar vervolg vragen:

1. de button die je hebt gemaakt is bij mij niet actief (of ik weet niet goed hoe je deze moet activeren (ms office for mac)), maar de macro werkt wel als ik deze handmatig start via het menu extra->Macro->Macro's en dan op uitvoeren. Klopt dat?

2. kun je mij vertellen welke opdracht regels ik moet toevoegen aan de macro om straks in het echte bestand ook de andere werkbladen te kunnen overzetten naar het eerste blad?

3. Op het eerste werkblad waar nu keurig de weken worden gepresenteerd, werkt kolom I niet meer. (hierin worden de werkuren van de medewerker berekend). Is er een mogelijkheid om de formule daarin actief te houden bij het overzetten?

met vriendelijke groet,
Ronald
 
eyeye,

Ik zie wel eens meer dat mensen die met de Mac werken problemen hebben met een macro.
Zelf weet ik niet hoe je dit moet oplossen.

Misschien moet je de volgende keer vermelden dat je op een Mac werkt met Excel.
 
Waarom de knop niet werkt weet ik niet, ik heb geen verstand van een Mac

voeg de rode gedeeltes toe voor een meerdere tabbladen
Het onderste stuk de resize aangepast zodat de laatste kolom niet meegenomen wordt.

Zal als ik tijd heb even kijken om alle bladen in 1 keer te doen zodat je niet voor elk blad en nieuwe regel nodig hebt.
Zit er in het origineel ook 3 tabbladen voor de bladen met de vestigingen en staan deze in dezelfde volgorde als de lijst?

Code:
Sub overzetten()

week = InputBox("wat is het weeknummer? ")
If week = 1 Then
Set c = Sheets("Leiden").Range("a31")
Set c1 = Sheets("Roosendaal").Range("a31")
[COLOR="#FF0000"]Set c2 = Sheets("Ergens").Range("a31")[/COLOR]
Else
Set c = Sheets("Leiden").Range("A:A").SpecialCells(2).Find(week, lookat:=xlWhole, searchorder:=xlByRows)
Set c1 = Sheets("Roosendaal").Range("A:A").SpecialCells(2).Find(week, lookat:=xlWhole, searchorder:=xlByRows)
[COLOR="#FF0000"]Set c2 = Sheets("Ergens").Range("A:A").SpecialCells(2).Find(week, lookat:=xlWhole, searchorder:=xlByRows)[/COLOR]
End If

With Sheets("planning")
.Cells(5, 1).Resize(42, 8).Value = c.Resize(42, 8).Value
.Cells(53, 1).Resize(42, 8).Value = c1.Resize(42, 8).Value
[COLOR="#FF0000"].Cells(101, 1).Resize(42, 8).Value = c2.Resize(42, 8).Value[/COLOR]
End With

End Sub
 
Laatst bewerkt:
soms is het iets makkelijker als je denkt,
bij deze een macro die je niet aan hoeft te passen.


Code:
Sub overzetten()

week = InputBox("wat is het weeknummer? ")

For i = 4 To Sheets.Count
If week = 1 Then
Set c = Sheets(i).Range("a31")
Else
Set c = Sheets(i).Range("A:A").SpecialCells(2).Find(week, lookat:=xlWhole, searchorder:=xlByRows)
End If

With Sheets("planning")
.Cells(5 + ((i - 4) * 48), 1).Resize(42, 8).Value = c.Resize(42, 8).Value
End With
Next
End Sub

Niels
 
Mijn dank is groot! Ik heb het toegepast op het originele bestand en het werkt exact zoals ik gevraagd had.

Nu ik het ging gebruiken kwam ik toch wat ongemakken tegen.
De overzichtspagina de we hebben gecreëerd d.m.v. deze macro, gebruik ik om te controleren of de verdeling van personeel tussen de filialen juist is en wordt gebruikt door de managers/directie als overzicht. Dat houd in dat ik wijziging doorvoer in dit werkblad. Nadat ik dit gedaan heb stuur ik de planning terug naar de filialen. Echter moet ik nu alsnog veel knippen en plakken nadat ik de planning heb aangepast. (ter extra info. de planning die nu in de werkbladen sta kopieer ik vanuit de bestanden die de filialen mij toesturen).

Dus nu heb ik het volgende bedacht:
Kunnen de gegevens, die nu uit de tabbladen worden gehaald, ook rechtstreeks uit een bestand worden gehaald? En zo ja hoe?
En is het ook mogelijk om deze dan weer (na mijn wijzigingen) terug te plakken (alleen kolom B t/m H) in het bestand (met een macro) waar het vandaan kwam en bij de juiste week, zodat verstreken weken niet overschreven worden?

Met vriendelijke groet,
Ronald
 
Bedoel je dit,
In het zip-bestand staat het hoofdbestand en een map met de bestanden per vestiging.
Waar je de mappen neer zet maakt niet uit als er maar en map vestigingen is in de map waar het hoofdbestand staat.
De namen van de bestanden per vestiging mogen anders zijn.

Bekijk bijlage Test eyeye.zip


Niels
 
Ik krijg een runtime foutmelding nummer 68.
"het apparaat is niet beschikbaar"

Waar kan dit aan liggen?

Met vriendelijke groet,
Ronald.
 
:eek::eek: oeps :eek::eek:

Je heb een MAC ik kan je daar niet meehelpen.
je zul uitmoeten zoeken hoe je bestanden vind op een MAC


Niels
 
I.v.m. de feestdagen en drukte een wat vertraagde reactie.
Ik beschik inmiddels over een windows 7 computer met office 2007.

ik loop nog tegen 3 dingen aan.

1. Bij het inlezen van week 1 doet hij het heel goed, maar bij het inlezen van elke andere week laat hij verkeerde informatie uit andere weken zien;

2. Hij neemt niet de celeigenschappen van de gekopieerde cel over. Hierdoor moet ik deze handmatig aanpassen, is het mogelijk dat hij deze gelijk overneemt? Bepaade datum notificaties neemt hij namelijk niet goed over en bepaalde tijd notificaties (zoals 10-18) maakt hij een datum van.

3. bij het uitlezen (dus de gegevens terug in de bestanden zetten) krijg ik een foutmelding: "fout 91 Objectvariabele of blokvariabele with niet ingesteld"

met vriendelijke groet,
Ronald.
 
Gebeurt dat ook ik mijn voorbeeld bestanden?
Bij mij ging het volgens mij goed.

De opmaak is mee te nemen, maar dan wordt de macro een stuk langzamer.
Als je de opmaak er al in hebt staat dan wordt deze toch niet aangepast?


Niels
 
Laatst bewerkt:
1. Keek naar de verkeerde regel, is aangepast
2. kopieert de cellen ipv alleen de waarde ophalen, je heb bij de namen wel formule staan die naar een andere cel wijzen, dit gaat dan fout omdat de opbouw niet hetzelfde is, de namen zul je dan als vaste waarde moeten neerzetten.
3. kan dit probleem niet reproduceren. werkt bij mij gewoon.

zie bijlage.

Bekijk bijlage Planning voorbeeld1.xls

Niels
 
Je hebt gelijk, echter zijn de namen in een vaste waarde (momenteel) geen optie. Dus zal ik eenmalig de celeigenschappen moeten invoeren. Want deze worden niet gewijzigd toch als ik de nieuwe weken daar weer inlaat op de oude wijze? Wat moet ik in het script wijzigen om de waarde van de cellen weer op te halen i.p.v. ze te kopieeren?

(ps. ik ben ondertussen zelf nog opzoek waarom ik bij het uitladen van de gegevens de foutmelding (nr 91) krijg, zal eens kijken of ik het op een andere pc kan proberen)

met vriendelijke groet,
Ronald.
 
ps. met betrekking tot de foutmelding.
Van welk office pakket maak jij gebruik?
Mogelijk ligt het aan office 2007

Ronald
 
Ik heb geen excel op de iPad dus probeer het uit mijn hoofd te doen.
Er staat bij de inlezen macro op een gegeven moment iets van 31+(( week -1)*48 )), die 48 moet 11 zijn.
Dan wordt de juiste week ingelezen.
Pas dat aan in mijn eerste voorbeeld met de inlezen macro.

Ik heb ook office 2007 , dus daar ligt het niet aan.
Als je in de macro die fout loopt gaat staan en met f8 de code doorloopt welke regel gaat dan fout?
Zet het scherm locale variabelen aan en kijk of de variabelen de juiste waarde krijgen.
Worden de juiste bestanden geopend?
Is de opbouw van die bestanden hetzelfde als mijn voorbeeld bestanden?


Niels
 
Ik heb je eerdere bestand aangepast en dat werkt goed.
Ik heb ook dat bestand gebruikt als basis voor de echte bestanden en nu werkt het super!

Ik heb ook gemerkt waar het fout ging. Ik had namelijk in de macro inlezen de plaats van invoegen gewijzigd zodat ik minder witregels tussen de weken. Daarna gaat het dus mis bij het uitlezen van het bestand.

Tevens heb ik nog een ander probleem gevonden. De planning bestanden die ik inlees, daarin zitten cellen die beveiligd zijn (de namen en de data) zodat dit niet gewijzigd kan worden door de filialen. Echter bij het uitlezen geeft hij een foutmelding. Kan in de macro verwerkt worden dat hij toch de beveiligde cellen overschrijft, of dat hij de beveiliging eraf haalt en na het overschrijven er weer opzet of iets?

Toch heb ik ik nog twee verzoeken ter uitbreiding van het bestand en voor mijn werkgemak.

1. is het mogelijk de naam van het bestand, waar ik de nieuwe planning heb ingeplaats (d.m.v. macro uitlezen), automatisch te wijzigen? Ik geef deze bestanden altijd de naam van het filiaal plus het week nummer van de huidige week, dus b.v. Rotterdam planning week 52.

2. Ik zou ook graag een extra macro gebruiken om van elk filiaal de eerste week in een eigen tabblad te kopieren. Dus in het excel bestand waar ik de planning inlees, wil ik nadat de week is verstrekken deze overschrijven naar een ander tabblad. (en dus voor ik de nieuwe week ga inlezen). En dan voor elk filiaal een eigen tabblad en dat elke nieuwe week nadat hij verstrekken is onder die van de vorige komt.

Met vriendelijke groet,
Ronald
 
voor vraag 1 + beveiligings vraag. Je moet in de map vestinging nog een map aanmaken met de naam weken.

Code:
        With stFullname.Sheets(1)
        .Unprotect Password:="1234"
        Set vestiging = ThisWorkbook.Sheets("planning").Range("A:A").SpecialCells(2).Find(.Range("A32").Value, lookat:=xlWhole)
        Set c = .Range("A:A").Find(week, lookat:=xlWhole)
        .Cells(c.Row, 1).Resize(42, 8).Value = ThisWorkbook.Sheets("planning").Range(vestiging.Address).Offset(-1).Resize(42, 8).Value
        .Protect Password:="1234"
        If Not stFullname Is Nothing And Not Bopen Then
        fname = stPath & "weken\" & .Range("A32").Value & " planning week " & week & ".xlsx"
        .SaveAs Filename:=fname
        
        stFullname.Close Savechanges:=True  'bestand vestiging sluiten en opslaan
        End If
        End With

andere antwoord volgt nog


Niels
 
Laatst bewerkt:
M.b.t. vraag 2 heb ik nog een punt.

Het overzetten naar de tabbladen gaat niet helemaal goed, maar misschien heb ik het ook niet duidelijke verwoord.
* Het is voor mij sowieso handiger als dit toch in een apparte macro staat i.p.v. verwerkt bij het inlezen, omdat het niet altijd (samen) uitgevoerd zal worden;
* Slechts een kleinigheid, maar de naam van het filiaal (b.v. Leiden) is voldoende als titel van de tabbladen, daar hoeven geen weeknummers bij;
* Het idee bij de macro is dat ik de bovenste week van elkfiliaal kan overzetten naar een tabblad van dat filiaal. B.v. we zitten nu in week 1. Morgen ga ik weer bezig met de planning en zal ik eerst week 1 aanpassen met wijzigingen die voorgekomen zijn. Als dat is gebeurt wil ik van elk filiaal die week, dus in dit geval week 1, overschrijven naar hun eigen tabblad (als waren een archief zodat naderhand nog eens op gezocht kan worden wie wanneer gewerkt heeft). Daarna zal ik week 2 tot en met 4 inlezen en controleren. (wat ik daarna weer uitlees naar de bestanden, maar dat werkt nu super!!!). Volgende week zal het proces zich weer herhalen en wil ik na controle graag week 2 overschrijven naar de tabbladen en dat die dan onder week 1 komt.

Ik hoop dat ik het een beetje heb kunnen uitleggen.

Met vriendelijke groet,
Ronald.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan