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

Het verplaatsen van regels met een weeknummer

Status
Niet open voor verdere reacties.

HammerJohn

Gebruiker
Lid geworden
27 apr 2016
Berichten
173
Goedemiddag

Ik heb een bestand met een urenlijst, op deze urenlijst staat een weeknummer.
Nu zou ik graag willen weten of ik met een macro de regels uit de urenlijst kan
verplaatsen naar een tabblad met week 1-4 5-8 9-12 dus is het week 6 zoals
ingevuld.
Dan wil ik deze regels verplaatsen naar dat tabblad maar is het week 10 dan
naar het volgende tabblad.

bijgevoegd voorbeeldje.

met vriendelijke groet John
 

Bijlagen

Waarom zet je die gegevens niet allemaal in een tab, dan maak je er een tabel van en kan je aut. aanvullen
en filteren op naam en/of week of datum.

Is imo toch overzichtelijker.
 

Bijlagen

Ik zou het ook in 1 tabel houden.

Om aan de vraag te voldoen.
Code:
Sub VenA()
  With Sheets("Urenlijst")
    c00 = "week " & IIf(.[E1] Mod 4 = 0, .[E1] - 3, .[E1] - .[E1] Mod 4 + 1) & "-" & IIf(.[E1] Mod 4 = 0, .[E1], .[E1] + 4 - .[E1] Mod 4)
    If IsError(Evaluate("'" & c00 & "'!A1")) Then Sheets.Add(, Sheets(Sheets.Count)).Name = c00
    .Range("A3:G" & .Cells(Rows.Count, 1).End(xlUp).Row).Copy Sheets(c00).Cells(Rows.Count, 1).End(xlUp).Offset(1)
  End With
End Sub
 
Laatst bewerkt:
ik denk dat ik een fout heb gemaakt in mijn vraag

Ik snap dat jullie het makkelijker vinden in 1 tabel, dat vind ik ook, maar wij werken met meerdere groepen
nu heb ik gezet dat hij het op moet slaan in een tabblad alleen heb ik misschien de naam van het tabblad
een beetje verkeerd gekozen.

Ieder tabblad is een periode van 4 weken zodat week 1 t/m 4 naar periode 1 gaan en 5-8 naar periode 2 enz.
nu moet ik iedere 4 weken een tabblad doorsturen naar iemand dus vandaar dat ik het niet in 1 tabel wil.
en als ik nu de macro gebruik maakt hij er telkens andere tabbladen van.

Ik hoop dat het nu duidelijk is wat ik bedoel

gr John
 
Er zat inderdaad een fout in. De code heb ik aangepast.
 
Het werkt super alleen nu ben ik nog 1 ding vergeten..... ik wil alleen regels kopieren waar
ik aan het eind in een kolom ja heb ingevuld...
sorry dat was ik vergeten...

En de code van VenA werkt echt super

doet op het ene na precies wat ik graag wil
 
Dan zet je er toch een filter op.

Code:
Sub VenA()
  With Sheets("Urenlijst")
    c00 = "week " & IIf(.[E1] Mod 4 = 0, .[E1] - 3, .[E1] - .[E1] Mod 4 + 1) & "-" & IIf(.[E1] Mod 4 = 0, .[E1], .[E1] + 4 - .[E1] Mod 4)
    If IsError(Evaluate("'" & c00 & "'!A1")) Then Sheets.Add(, Sheets(Sheets.Count)).Name = c00
    With .Range("A2:H" & .Cells(Rows.Count, 1).End(xlUp).Row)
      .AutoFilter 8, "ja"
      .Offset(1).Copy Sheets(c00).Cells(Rows.Count, 1).End(xlUp).Offset(1)
      .AutoFilter
    End With
  End With
End Sub
 
Nu maakt hij in het bestaande bestand die periodes aan kan ik dat ook naar een
ander bestand doen dus nieuwe map of reeds andere bestaande map.
Ik noem die map nu jaar2017.xlsm


ik was super geholpen met de macro....
met vriendelijke groet....
John
 
Verder nog iets vergeten?
Ja dat kan. Ik zou de code dan in het 'jaarbestand' zetten en van hieruit de informatie uit het 'weekbestand' halen. Probeer het zelf maar eerst eens met de macro-recorder en de aangereikte code dan zien we wel met welke code het niet lukt.
Je kan eens Googlen op Getobject of op Filedialog om een soort van verkenner te openen.
 
Ik heb een het bijna zoals ik hebben wil alleen in het voorbeeldje staan geen formules in de regels, bij het normale bestand wel
nu kopieer ik die formules mee maar ik wil alleen de waarde van de cel.

Alleen nu krijg ik een fout melding in de formule ik heb dit vaker gebruikt, maar nu krijg ik compileer fout

Code:
Sub VenA()
  With Sheets("Urenlijst")
    c01 = "c:\urenlijst\urennew2017.xlsm"
    Workbooks.Open c01
    c00 = "week " & IIf(.[E1] Mod 4 = 0, .[E1] - 3, .[E1] - .[E1] Mod 4 + 1) & "-" & IIf(.[E1] Mod 4 = 0, .[E1], .[E1] + 4 - .[E1] Mod 4)
    If IsError(Evaluate("'" & c00 & "'!A1")) Then Sheets.Add(, Sheets(Sheets.Count)).Name = c00
    With .Range("A2:I" & .Cells(Rows.Count, 1).End(xlUp).Row)
      .AutoFilter 9, "ja"
      .Offset(1).Copy Sheets(c00).Cells(Rows.Count, 1).End(xlUp).Offset(1)[COLOR="#FF0000"].PasteSpecial Paste:=xlValues[/COLOR]
      ActiveWorkbook.Close True
      .AutoFilter
    End With
  End With
End Sub
 
Volgens mij worden gefilterde gegevens al als waarden geplakt en anders moet je even op <Enter> drukken na .copy
 
ik heb het geprobeerd maar ergens gaat hij de waarde van weeknummer E1 , die ik in een kolom gebruik als =E1
weergeven als #(VERW)! na het verplaatsen.
 
Ben benieuwd naar het resultaat in een voorbeeldje.
 
Hierbij de bestanden het gaat erom dat niet iedereen de urenlijst heeft,
want een voorstel was alles in 1 bestand te zetten.
Mijn collega wil dat niet die wil het urenoverzicht mailen naar diverse
begeleiders, eens per 4 weken.
 

Bijlagen

Laatst bewerkt:
Heb dat ook nog niet eerder meegemaakt, maar dan maar met values.

Code:
With .Range("A2:I" & .Cells(Rows.Count, 1).End(xlUp).Row)
      .AutoFilter 9, "ja"
      .Offset(1).Copy
[COLOR=#0000ff]        Sheets(c00).Cells(Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial xlValues[/COLOR]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan