Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Macro om een bestaand bestand te saven naar een ander bestand  (gelezen 548 keer)

0 leden en 1 gast bekijken dit topic.

Offline Sven 09

  • Nieuw lid
  • Berichten: 3
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Macro om een bestaand bestand te saven naar een ander bestand
« Gepost op: 01 maart 2021, 10:59:40 »
Dag allemaal,
Graag had ik de macro gekregen om van een bestaand bestand een kopie op te slaan in een ander bestand. Het bestand bestaat uit verschillende tabs, elk bestaande voor ťťn dag in de maand. De belangrijktste tab omvat een samenvatting van cijfers. Deze heeft al een macro om de cijfers in de correcte tab (huidige dag) te plaatsen elke keer de macro gešctiveerd wordt. Ook bestaat er al een macro om de gegevens van de samenvatting te wissen als er een nieuwe dag begint, maar daar zou ik graag een andere macro insteken. Eentje die de nieuwe data ook gaat saven in een ander bestand.

Vb: ik heb de data van de 31e januari opgeslagen, 1 februari gaat beginnen. Nu zou ik graag hebben dat alle data (31 tabs) van januari opgeslagen wordt in een apart (nieuw) bestand.

Kan iemand me daarbij helpen aub?

Greetz
Sven

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.100
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Macro om een bestaand bestand te saven naar een ander bestand
« Reactie #1 Gepost op: 01 maart 2021, 12:08:21 »
Sven09, welkom op dit forum.

Je hebt het in je vraag over 1 tab per dag. Mag ik hieruit concluderen dat het een workbook is met 365 tabs? Hoe ziet daarnaast de naam van een tab er uit?
Het mooiste is als je een voorbeeldbijlage kan posten (ontdaan van privť info).
______________________________

Groet, Leo

Offline Sven 09

  • Nieuw lid
  • Berichten: 3
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Re: Macro om een bestaand bestand te saven naar een ander bestand
« Reactie #2 Gepost op: 01 maart 2021, 12:25:52 »
Dag RedHead,

Neen, het gaat om een maandelijkse file. De eerste tab heeft het dagelijkse overzicht en naargelang de datum worden deze gegevens gekopieŽerd naar de desbetreffende tab, elke keer als de 'save & send'-macro geactiveerd wordt. Nu had ik graag de macro gehad, die er voor zorgt dat de gegevens van alle tabs gekopieŽerd worden in een nieuwe file, met als titel de desbetreffende maand. Dit om de file in bijlage steeds (elke dag/maand) opnieuw te kunnen gebruiken, maar als de maand voorbij is dan heb ik wel nog de gegevens van die (vorige) maand(en).
Dus eigenlijk mag de macro zelfs alleen maar rekening houden met de laatste dag van elke maand, zolang alle tabs maar in een (soort van) back-up bestand kunnen worden bewaard.

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 18.849
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Macro om een bestaand bestand te saven naar een ander bestand
« Reactie #3 Gepost op: 01 maart 2021, 17:22:19 »
Hallo Sven 09,

Ook van mij welkom op Oplossing.be   :)

Het is fijn dat je "iets" als voorbeeld hebt aangehangen, maar met een foto kunnen de helpers niet veel aanvangen.

Maak eerder een kopij van je werkboek, en ontdoe dat werkboek van alle overtollige rijen.
4 a 5 rijen zijn voldoende om idee te hebben wat je wil. Laat wel formules zoals ze zijn, en macro's die je al gemaakt hebt.
Hang dit test.xlsm als bijlage bij je volgend bericht. We zullen je graag helpen.

:) SoftAid :)             


Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline Sven 09

  • Nieuw lid
  • Berichten: 3
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Re: Macro om een bestaand bestand te saven naar een ander bestand
« Reactie #4 Gepost op: 04 maart 2021, 13:41:26 »
Dag SoftAid,

Ik beschreef in de VB, module 4, wat ik precies wil dat de macro gaat doen. Ik heb een beetje online gezocht, maar toch nog mijn oplossing niet gevonden. Module 11 draait zoals hij moet.
Misschien moet de SUB ClearContent pas als tweede aan beurt komen, dus dat er eerst gecheckt wordt of het EOmonth is (en dus de file moet gekopiŽerd worden in het archief), vooraleer de sub clearcontent aan de slag gaat.

Greetz

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 18.849
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Macro om een bestaand bestand te saven naar een ander bestand
« Reactie #5 Gepost op: 06 maart 2021, 13:11:39 »
Hallo Sven,

ik heb even getracht je voor mij nog onbekende EoMonth() te begrijpen.
Die moet reageren op een datum (of  Today() ) die ergens in je werkblad staat, en zich dus steeds aanpassen.
Je zal deze macro in het werkblad Sheets1 (IMBALANCE WD) moeten plaatsen met een Worksheet_Change() event, dit om hem telkens op te starten.

Voor mij toch nog wat te complex op die manier.

Dat je pas mag opruimen nadat het bestand is opgeslagen is juist.

:) SoftAid :)             



Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.100
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Macro om een bestaand bestand te saven naar een ander bestand
« Reactie #6 Gepost op: 06 maart 2021, 14:56:30 »
Ik zou 'm zo oplossen...
'hier zou ik een macro willen creŽren die de ganse werkboek gaat kopieren (tab 1 tem 31) in een nieuwe file
'de belangrijkste voorwaarde is wel dat enkel gebeurd als de datum in tab 'Imbalance WD'(G1) de laatste dag van de huidige maand is.
'dan zou de nieuwe file die gemaakt wordt, de naam moeten dragen van 'Continental Imbalance month_year'
'dit heeft als doel dat dezelfde file terug kan gebruikt worden op de eerste dag van de nieuwe maand, maar dat alle data van de voorbije maand gešrchiveerd werd.


'Sub saveas()
'    Dim saveas
'    If (ActiveWorkbook.Sheets("IMBALANCE WD").Range("g1")) = EoMonth Then
'    Copy.Worksheets ("1 to 31")to newworkbook
'
'    ActiveWorkbook.saveas ([Imbalance Continental market" & " " & Year(Date) & "-" & Month(Date)".xlsm"]) _
'         , xlOpenXMLWorkbook, CreateBackup:=False
'    Else
'    activeworksheet.MsgBox = "Not yet saved to archives"
'
'    End If
'
'
'
'End Sub

Sub SlaMaandOpAls()
Dim WB_datum As Date
   
    WB_datum = ActiveWorkbook.Sheets("IMBALANCE WD").Range("g1")
    If WB_datum < DateSerial(Year(Now), Month(Now), 1) Then ' door "<" te gebruiken, mag je altijd opslaan als het de volgende maand is
        Sheets(Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", _
            "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31")).Copy
        ActiveWorkbook.saveas "Imbalance Continental market" & " " & Year(WB_datum) & "-" & Month(WB_datum) & ".xlsm", xlOpenXMLWorkbookMacroEnabled
    Else
        MsgBox "Not yet saved to archives"
    End If

End Sub
Ik heb het hele blok hier maar even gepost. Dus inclusief jouw gedeelte dat ik als commentaar heb gemaakt. Plak dat in het geheel over die van jou heen en test het eens.
Nog wel een opmerking over je code. Je maakt een procedure met de naam SaveAs en dan met kleine letters. Je mag nůůit een VBA-eigen-functie naam gebruiken voor variabelen of procedurenamen. Dit gaat vroeg of laat hartstikke fout.
Verder lijkt mij het gebruik van de EOmonth niet handig. Dit had je kunnen oplossen door het als Worksheetfunction.EOmonth in te zetten, maar dan nog. VBA kan dat zelf uitstekend afhandelen met de DateSerial en Date functie: dateserial(year(date),month(date),0)
Ik heb daar niet voor gekozen omdat je jezelf volledig hebt vastgepind op een procedure die maar 1 dag zou werken. Dat wil je vast niet. Daarnaast lijkt mij dat de laatste dag van een maand ook nog bij de maand hoort. Ofwel, je wilt in de volgende maand, de vorige maand kunnen opslaan... Maar dat is mijn gevoel hier over.
Dus... even plakken en testen of dit iets voor je is. ;)
______________________________

Groet, Leo

 


www.combell.com