Help!

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

Hulp bij posten

Recente topics

Auteur Topic: foutieve berekening, wat is er mis?  (gelezen 12189 keer)

0 leden en 1 gast bekijken dit topic.

Offline remlo

  • Lid
  • *
  • Berichten: 66
  • Geslacht: Man
  • Oplossing.be
Re: foutieve berekening, wat is er mis?
« Reactie #15 Gepost op: 29 oktober 2014, 16:03:46 »
Graag had ik bijgevoegd bestand niet kunnen afsluiten met kruisje omdat dan gegevens kunnen verloren gaan, maar mat een knop (knop 15). Het bestand wordt in dezelfde map opgeslagen als origineel maar met automatische benaming waarde cel h24.
Heb wat gegoogeld maar kom er niet uit.
Alvast bedankt

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: foutieve berekening, wat is er mis?
« Reactie #16 Gepost op: 29 oktober 2014, 17:06:19 »
Check via het ThisWorkbook_BeforeClose event of er aanpassingen in het workbook zijn gemaakt. Zo ja, sla 'm op. Zo nee, laat 'm verder afsluiten.
______________________________

Groet, Leo

Offline remlo

  • Lid
  • *
  • Berichten: 66
  • Geslacht: Man
  • Oplossing.be
Re: foutieve berekening, wat is er mis?
« Reactie #17 Gepost op: 29 oktober 2014, 21:49:08 »
Redhead,

ben helemaal niet thuis in VBA. Afzonderlijk, code via google gevonden, lukte dit. Kruisje uitschakelen met BeforeClose...
De bedoeling is dat het bestand, inderdaad bij wijzigingen, altijd wordt weggeschreven met als bestandsnaam de datum( waarde in cel H24).

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.129
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: foutieve berekening, wat is er mis?
« Reactie #18 Gepost op: 29 oktober 2014, 23:33:39 »
Hallo remlo,

je code bevat toch enkele fouten:

ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & Range("H24") & ".xls"
De waarde van cel H24 in de bestandsnaam zetten gaat resulteren in .....  29/10/14, en schuine strepen zijn niet toegestaan in bestandsnamen. Dus gaat Windows een foutmelding geven, of Excel gaat een foutmelding geven (of de macro gaat vastlopen).

Je slaat het bestand op als .xls. Je werkt met een Excel 2007 of hoger en je bestand bevat macro's, dus moet je opslaan als .xlsm.

Ik ga dit topic ook samenvoegen met je vorig, want het gaat toch over hetzelfde bestand. Dit maakt het voor de helpers gemakkelijker.

:) SoftAid :)             

Maximum grootte bijlagen vergroot naar 4 MB
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 pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: foutieve berekening, wat is er mis?
« Reactie #19 Gepost op: 30 oktober 2014, 12:24:58 »
Hallo SoftAid,

De waarde van cel H24 in de bestandsnaam zetten gaat resulteren in .....  29/10/14, en schuine strepen zijn niet toegestaan in bestandsnamen

Misschien iets in deze stijl :

   Dim datum As Date
   Dim jaar As String, maand As String, dag As String
   Dim kopie As String
     
   datum = Sheets("Tellen kassa").Range("H24")
   jaar = Year(datum)
   maand = Month(datum)
   dag = Day(datum)
   If Len(maand) = 1 Then maand = "0" & maand
   If Len(dag) = 1 Then dag = "0" & dag
   kopie = "tellen kassa_" & jaar & "-" & maand & "-" & dag & ".xlsx"

Mvg,
Pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.129
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: foutieve berekening, wat is er mis?
« Reactie #20 Gepost op: 30 oktober 2014, 13:18:41 »
Hallo pitufo,

kan, maar ik denk dat iemand als RedHead een nog kortere formulering uit zijn mouw zal schudden.

Omdat remlo wilt dat een copy van het bestand in dezelfde map wordt opgenomen:
ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path &En omdat, door het gebruik van streepjes tussen dag, maand en jaar er niet echt een behoefte is aan een 0 voor de getallen kleiner dan 10, zou ik persoonlijk deze weglaten.
Dan nogmaals opletten dat er wordt opgeslagen als xlsm en dan bekom je deze werkende macro:

Sub Afsluitenenopslaan()
 
 Dim datum As Date, jaar As String, maand As String, dag As String
       
   datum = Sheets("Tellen kassa").Range("H24")
   jaar = Year(datum)
   maand = Month(datum)
   dag = Day(datum)
   'If Len(maand) = 1 Then maand = "0" & maand
   'If Len(dag) = 1 Then dag = "0" & dag
   ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "/" & "kassa " & dag & "-" & maand & "-" & jaar & ".xlsm"
End Sub

remlo moet er rekening mee houden, dat indien "knop 15" meermaals (per dag !!) gebruikt wordt, de laatste copy de vorige overschrijft.

Groeten,

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
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 pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: foutieve berekening, wat is er mis?
« Reactie #21 Gepost op: 30 oktober 2014, 14:07:30 »
Hallo SoftAid,

Ik reageerde enkel op je opmerking dat de datum niet in de bestandsnaam kon opgenomen worden. Kan inderdaad misschien korter, en over de andere zaken zijn we het al helemaal eens.
Een 0 voor maand of dag, ja, ik had ze er bij gezet omdat dat later mooier oogt in de verkenner, dan staat alles netjes onder elkaar.
Dat is uiteraard enkel een kwestie van smaak, daarom ook was ik mijn bericht gevonden met
"misschien iets in deze stijl"  ;)
 
Groetjes,
Pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: foutieve berekening, wat is er mis?
« Reactie #22 Gepost op: 30 oktober 2014, 16:55:25 »
Korter? Zoiets?
Sub Afsluitenenopslaan()
 
   ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "/kassa " & format(Sheets("Tellen kassa").Range("H24"),"yyyymmdd") & ".xlsm"
End Sub
Voor het wegschrijven van bestanden vind ik de Amerikaanse methode vaak het prettigste werken omdat je dan altijd de juiste sortering krijgt...  Maar een format met ddmmyyyy kan natuurlijk ook.  ;)
______________________________

Groet, Leo

Online SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.129
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: foutieve berekening, wat is er mis?
« Reactie #23 Gepost op: 30 oktober 2014, 19:47:00 »
Hallo RedHead,

ik dacht wel dat je het op een lijn weggeschreven kreeg  ;) ;D 8)

Dank je wel  :-*

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
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 remlo

  • Lid
  • *
  • Berichten: 66
  • Geslacht: Man
  • Oplossing.be
Re: foutieve berekening, wat is er mis?
« Reactie #24 Gepost op: 30 oktober 2014, 23:46:49 »
Heren,

zoals gewoonlijk werkt dit perfect en heb ik weer het nodige opgestoken.

Leuk dat jullie er onderling een soort wedstrijd van maken...

Om een aangroei van bestanden te voorkomen dacht ik ook automatisch de weggeschreven bestanden die ouder zijn dan een maand te verwijderen. Dit met dezelfde knop.
Is dit haalbaar of toch beter handmatig.

 


www.combell.com