Help!

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

Hulp bij posten

Recente topics

Auteur Topic: macro maandtabel  (gelezen 5151 keer)

0 leden en 1 gast bekijken dit topic.

Offline Yakko

  • Ambassadeur
  • *****
  • Berichten: 1.943
macro maandtabel
« Gepost op: 28 april 2005, 12:44:01 »
Ik heb een vraagje voor de macro wizzards onder ons.

Is het mogelijk om een macro te maken die met een druk op de knop een tabel kan maken met in de ene kolom de dagen van de maand en ook afhankelijk van de dag een startuur kan plaatsen in een adere kolom.
Het startuur is afhankelijk van de dag (woe is vroeger dan de rest van de week) en het einduur moet de gebruiker wel nog zelf ingeven.
Ook mogen de weekends van de maand weg gelaten worden.

Is de mogelijk? Zoja kan je mij enkele tips geven. Let wel ik ben een macro leek. Ik heb wel kennis van Visual basic.

Yakko
Gelieve uw systeemgegevens in te vullen. Klik HIER voor meer informatie.

Offline StriKe

  • Ambassadeur
  • *****
  • Berichten: 4.647
  • Geslacht: Man
Re:macro maandtabel
« Reactie #1 Gepost op: 28 april 2005, 16:48:47 »
't Is net iets te lang geleden dat ik nog in vba ben gaan programmeren maar ik zie het 'ongeveer zo' voor mij:

Je vraagt via een inputbox de maand op in cijfervorm.
Op basis van dat cijfer achterhaal je het aantal dagen die er in die maand aanwezig is.
Je laat een for loop lopen die die dagen in de cellen zet (via cells(kolom,rij) kun je dat) en de rijen waarbij de dag van de maand zaterdag/zondag is (ik dacht dat daar een functie weekday of zo voor was) laat je verwijderen.

De rijen waarvoor de dag Woensdag is kun je dan (opnieuw door de functie cells() te gaan gebruiken) speciaal gaan 'benaderen' om daar een ander startuur in te plaatsen.

'k Ga es effe een poging wagen, mss tot straks ;)

Update:

't Gaat misschien niet helemaal werken, maar je zal mss wel al een heel stuk op weg geholpen zijn?

Groeten,
StriKe
0T5326 Dell Computer Corporation, GeForce FX Go5200, Windows XP, Prof, SP2, NL, Mobile Intel(R) Pentium(R) 4 CPU 3.06GHz, 512 MB RAM, HDD:97 GB, NTFS, AVG Anti-Virus, Kerio Personal Firewall, Firefox 2.0, The Bat!

Offline powerkite

  • Volledig lid
  • **
  • Berichten: 207
  • Oplossing.be
Re:macro maandtabel
« Reactie #2 Gepost op: 28 april 2005, 17:05:46 »
Ik heb volgende code geschreven, het is makkelijker om de code te begrijpen dan eerst proberen uit te leggen hoe je er aan begint.

Public Sub uitvoeren()
maandnr = InputBox("maandnr")

EersteDagVanDeMaand = CDate("1/" & maandnr & "/" & Year(Now()))
EersteDagVanDeVolgendeMaand = DateAdd("m", 1, EersteDagVanDeMaand)
AantalDagen = DateDiff("d", EersteDagVanDeMaand, EersteDagVanDeVolgendeMaand)

RijNr = 1
For i = 1 To AantalDagen
    Select Case Weekday(CDate(i & "/" & maandnr & "/" & Year(Now())), vbMonday)
    Case 3 'woensdag
        ActiveSheet.Cells(RijNr, 1).Value = "10u"
        RijNr = RijNr + 1
    Case 6, 7 'zaterdag en zondag
    Case Else 'alle andere dagen
        ActiveSheet.Cells(RijNr, 1).Value = "9u"
        RijNr = RijNr + 1
    End Select
Next i
End Sub


De gebruiker geeft een maandnummer in, vervolgens wordt het aantal dagen in die maand berekend. Dan waordt er een lus doorlopen die een na een alle datums overloopt en kijkt welke dag het is.

Normaalgezien wijst het zichzelf uit en anders zal ik wat meer uitleg geven waar nodig.
Groetjes
Win XP (pro) - Pentium - 2400Mhz - 512Mb - Hercules 9200se - ADSL - Office 2003 Pro

Offline StriKe

  • Ambassadeur
  • *****
  • Berichten: 4.647
  • Geslacht: Man
Re:macro maandtabel
« Reactie #3 Gepost op: 28 april 2005, 17:24:37 »
Dit lijkt me al een oplossing die stukken beter + concreter is ;)

Groeten,
Strike
0T5326 Dell Computer Corporation, GeForce FX Go5200, Windows XP, Prof, SP2, NL, Mobile Intel(R) Pentium(R) 4 CPU 3.06GHz, 512 MB RAM, HDD:97 GB, NTFS, AVG Anti-Virus, Kerio Personal Firewall, Firefox 2.0, The Bat!

Offline Yakko

  • Ambassadeur
  • *****
  • Berichten: 1.943
Re:macro maandtabel
« Reactie #4 Gepost op: 28 april 2005, 17:52:34 »
Jullie doen me overuren presteren eh :)

Maar dat is inderdaad wat ik zoek. Met deze tip zal het zeker lukken om het om te vormen naar wat ik wil.

mercikes!!

Nog een laatste vraagje hoe kan je dan die macro als knop in excel krijgen?
Gelieve uw systeemgegevens in te vullen. Klik HIER voor meer informatie.

Offline StriKe

  • Ambassadeur
  • *****
  • Berichten: 4.647
  • Geslacht: Man
Re:macro maandtabel
« Reactie #5 Gepost op: 28 april 2005, 18:02:09 »
Via het menu Beeld de werkbalk formulieren weergeven.

Daar vind je het nodige om een 'knop' aan te maken.
Wanneer dan de wizard actief is (standaard zo) en je maakt een knop aan (door de muis te slepen), dan ga je het dialoogvenster krijgen waarin al je reeds aangemaakte macro's staan.

Groeten,
Strike
0T5326 Dell Computer Corporation, GeForce FX Go5200, Windows XP, Prof, SP2, NL, Mobile Intel(R) Pentium(R) 4 CPU 3.06GHz, 512 MB RAM, HDD:97 GB, NTFS, AVG Anti-Virus, Kerio Personal Firewall, Firefox 2.0, The Bat!

Offline ceasar

  • Ervaren lid
  • ***
  • Berichten: 293
  • Geslacht: Man
  • de soep eten als ze heet is
Re:macro maandtabel
« Reactie #6 Gepost op: 28 april 2005, 19:33:34 »
goede avond,

ik kan jullie het volgende al presenteren:

een zelfgemaakte functie om te bepalen of in een tabel met datums de dag een zaterdag of zondag is.

Function bereken(datum)
bereken = "ja"
dag = WeekDay(datum)
If dag = 7 Or dag = 1 Then
    bereken = "nee"
    Exit Function
End If
For i = 1 To 20
    If datum = Sheets("Holiday").Cells(i, 1) Then
        bereken = "nee"
        Exit Function
    End If
Next i
End Function

deze functie kan dan via de "fx" balk geactiveerd worden.

het bestand is dan al klaar voor dagen te zetten
wel opletten voor welke datumnotatie gekozen is
(kan beginnen met 1 voor zondag of 7  voor zondag, naargelang systeem).

klein beetje uitleg:
de sheet "holiday" kan je datums inzetten waarop men niet aktief is, dus een niet werkdag die misschien midden in de week valt.
je kan de functie ook in je vba inwerken

succes

JC 8)
Windows 10 Pro   NLD 64bit
Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz 3901
Z77X-UP5 TH-CF
AMD Radeon HD 7900 Series 4095MB 1024 x 768
Realtek High Definition Audio
Nr: 1 Model: WDC WD10 EARX-00N0YB0 SCSI Disk Device
Nr: 2 Model: INTEL SSDSC2CT120A3
C:\ NTFS 111,01GB 1,06GB 32 720MB
AV: Geen antivirus geïnstalleerd
FW: Windows Firewal Enabled: True

Offline powerkite

  • Volledig lid
  • **
  • Berichten: 207
  • Oplossing.be
Re:macro maandtabel
« Reactie #7 Gepost op: 30 april 2005, 11:05:52 »
Een klein vraagje aan ceasar: hoe ben je aan die waarde "20" gekomen in de : For i = 1 To 20.
Dit zou willen zeggen dat de gebruiker slechts 20 datums mag invullen waarop deze vakantie heeft.
Je zou dit dan beter oplossen met een

Do
...
i=i+1
Loop untill Sheets("Holiday").Cells(i, 1) =""

Hierbij zal de VBA-code de hele lijst doorlopen totdat er een cel leeg is en zal dan stoppen.

groetjes
Win XP (pro) - Pentium - 2400Mhz - 512Mb - Hercules 9200se - ADSL - Office 2003 Pro

Offline StriKe

  • Ambassadeur
  • *****
  • Berichten: 4.647
  • Geslacht: Man
Re:macro maandtabel
« Reactie #8 Gepost op: 01 mei 2005, 08:04:53 »
Hallo,

Die 20 is 'normaal' gezien het aantal verlofdagen die een werkende Belg kan krijgen, niet? ;)

Groeten,
StriKe
0T5326 Dell Computer Corporation, GeForce FX Go5200, Windows XP, Prof, SP2, NL, Mobile Intel(R) Pentium(R) 4 CPU 3.06GHz, 512 MB RAM, HDD:97 GB, NTFS, AVG Anti-Virus, Kerio Personal Firewall, Firefox 2.0, The Bat!

Offline ceasar

  • Ervaren lid
  • ***
  • Berichten: 293
  • Geslacht: Man
  • de soep eten als ze heet is
Re:macro maandtabel
« Reactie #9 Gepost op: 02 mei 2005, 12:55:15 »
goede dag,

op de sheet "holiday" (of gelijk welke andere benaming) staan een aantal "verlofdagen" die kunnen afwijken van een dag in het week end en staan daar dan

de zogenaamde "wettelijke feestdagen" of sluitingsdagen voor een bedrijf

de "20" slaat op het aantal lijnen die hier zijn ingevuld met dergelijke data.

de waarde "i" is de waarde die je in het invulblad laat controleren of die datum ook hier niet staat.

zal deze week een bestandje maken en als voorbeeld er aan hangen

JC
8)
Windows 10 Pro   NLD 64bit
Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz 3901
Z77X-UP5 TH-CF
AMD Radeon HD 7900 Series 4095MB 1024 x 768
Realtek High Definition Audio
Nr: 1 Model: WDC WD10 EARX-00N0YB0 SCSI Disk Device
Nr: 2 Model: INTEL SSDSC2CT120A3
C:\ NTFS 111,01GB 1,06GB 32 720MB
AV: Geen antivirus geïnstalleerd
FW: Windows Firewal Enabled: True

Offline ceasar

  • Ervaren lid
  • ***
  • Berichten: 293
  • Geslacht: Man
  • de soep eten als ze heet is
Re:macro maandtabel
« Reactie #10 Gepost op: 10 mei 2005, 19:35:10 »
belofte maakt schuld:

het beloofde eventueel aan te passen bestand ;D
Windows 10 Pro   NLD 64bit
Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz 3901
Z77X-UP5 TH-CF
AMD Radeon HD 7900 Series 4095MB 1024 x 768
Realtek High Definition Audio
Nr: 1 Model: WDC WD10 EARX-00N0YB0 SCSI Disk Device
Nr: 2 Model: INTEL SSDSC2CT120A3
C:\ NTFS 111,01GB 1,06GB 32 720MB
AV: Geen antivirus geïnstalleerd
FW: Windows Firewal Enabled: True

 


www.combell.com