o.a. Weekdag vorig jaar opzoeken en terug plaatsen

Status
Niet open voor verdere reacties.

Thankyou

Terugkerende gebruiker
Lid geworden
3 mei 2009
Berichten
1.737
Hallo,

Dit is pas mijn 2e vraag, hoewel het ook gelijk mijn 3e en 4e is.
In het bijgevoegd voorbeeldbestand kopieer ik elke week via vba de week gegevens van het ene blad naar het andere, waar ze onderaan bijgeschreven worden.

de vragen zijn:
1. Opmaak wordt ook meegenomen, ik weet dat het via plakken speciaal kan maar kom hier niet uit.

2. Hoe haal ik de gegevens van vorig jaar op, vrijwel dezelfde datum maar exact op weekdag (zie voorbeeld bestand)

3. is de bonusvraag: Hoe wis ik in 2012 het jaar 2010 in het blad data (waar alle info wordt weggeschreven, de week waar 1 januari in valt mag niet gewist worden

Alle vragen staan nogmaals in het voorbeeld bestand, mochten er onverhoopt vragen zijn hoor ik ze graag, wel ben ik pas donderdag laat of vrijdag avond pas weer beschikbaar.

Alvast hartelijk dank voor de medewerking,
 
Laatst bewerkt:
Onduidelijk

Hallo,

Ik moet zeggen dat het me niet geheel duidelijk is hoe je de data in wilt voeren en verwerken... Kan misschien aan mij liggen, maar zou je het anders kunnen toelichten?

Momenteel komt het nu als volgt op mij over:
Volgens mij is de range van weeknummer en jaartal verschoven naar links? De horizontale getal aanduiding van 1 t/m 7 lijken dagen te zijn? Ik zie echter dat er ook een kolom van maandag t/m zondag en deze loopt verticaal? Dus de input structuur is mij niet geheel duidelijk. Wat betekend de 1-vj kolom, 2-vj ... 5-vj => Kolom 1 - 5, maar dan de data van een jaar geleden (Op basis van jaar dag, niet exacte datums)?

Worksheet("Weekomzet").Range("B7:D13,F7:G13) worden gekopieerd in Macro1
(Dit genereert trouwens een fout bij mij, aangezien ik het blad Weekomzet niet heb)
(Weet dus niet hoe je het naar blad data schrijft).

Uit de tekst komt naar voren dat range(C7:D13) naar Range(I7:K13) dient te worden geschreven, maar het kan ook gelezen worden dat range(C7:D13) er niet mee te maken heeft behalve dat de data van exact dezelfde weekdag van twee jaar geleden in Range(I7:K13) dient worden geplaatst. Wat dient uitgevoerd te worden?

Als je het verder toelicht kan ik je wellicht beter helpen, anders ben ik bang dat ik slechts in de verkeerde richting stuur ;).

Met vriendelijke Groet'n
Tilly
 
Hallo Tilly1987,

Ik heb in het bestand het een en ander aangepast qua vraagstelling.
Ook ben ik zelf (natuurlijk) nog bezig geweest maar mijn kennis van VBA is eigenlijk 0.

Resumé:
Op het blad "week" komen, via formules, gegevens te staan vanaf een ander werkblad.
Deze gegevens worden aan het einde van de week met een druk op een logo weggeschreven op blad "data"en hierna gewist van het blad "week"

Tot zover lukt het: Waarschijnlijk is de code wel voor verbetering vatbaar

De vragen:
Hoe sla ik op als . . . met tekst en celwaarden, in de zelfde map als het actieve bestand. (de map kan per computer wisselen)

Hoe haal ik de gegevens die ik vorig jaar omstreeks dezelfde tijd weg schreef weer terug. Niet exact op datum maar op weekdag, zie voorbeeld bestand. (14-11-2011 was vorig jaar 15-11-2010 - beide de maandag)

en er staat in het bestandje nog een bonus vraag:
Als je jaar in jaar uit elke week onder elkaar zet wordt het bestand steeds groter en vertraagd de zoektijd dus: Na, laten we zeggen 14-1-2012 mag 2010 gewist worden, behalve een paar dagen die in dezelfde week vallen als 1 januari 2011. Mooi zou het dan ook zijn als alle andere gegevens weer aansluiten naar boven.

Mochten er nog vragen zijn hoor ik ze graag.

Alvast bedankt voor de medewerking
Groet,
 

Bijlagen

Opgelost door vba de formules te laten plaatsen en de waarde hiervan in het gebied te laten invullen
 
Code:
Sub picture_klik2()
  If MsgBox("Wissen", 273, "Test wissen") = vbOK Then
    Application.ScreenUpdating = False
    ActiveWorkbook.Save

    With Sheets("Data").Cells(Rows.Count, 3).End(xlUp).Offset(1)
      .Resize(7, 3) = Sheets("week").Range("B7:D13").Value
      .Offset(, 3).Resize(7, 2) = Sheets("week").Range("F7:G13").Value
    End With
        
    With Sheets("week")
      ActiveWorkbook.SaveAs ActiveWorkbook.Path & "test " & .Range("F4") & "_" & .Range("F4") & ".xls"
      .Range("G7:G13,J7:L13,C15:D15,F15:G15,F18:M26,E7:E13").ClearContents
      .Range("F4").Value = .Range("F4").Value + 1
    End With
        
'   sheets("Week").Range("E6").Value = Worksheets("Weekomzet").Range("E14")
'   sheets("weekomzet is niet toegevoegd
       
    Application.ScreenUpdating = True
  End If
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan