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

Afdrukken vakantiedagen op jaarbasis

Status
Niet open voor verdere reacties.

Evelthoven

Gebruiker
Lid geworden
26 sep 2006
Berichten
690
Goedemiddag,

In bijgaand bestand heb ik een overzicht gemaakt van de vakantiedagen vanaf 1999 tot en met heden.
Ook heb ik een knop aangemaakt om een overzicht van deze dagen af te kunnen drukken mbv. een macro. Hij drukt niet af wat ik zou willen omdat ik hiervoor niet weet hoe ik dit moet doen. Er wordt iedere keer een afdruk gemaakt van het volledige overzicht.
Wat ik graag zou willen is dat de macro zodanig wordt aangepast dat er gevraagd wordt:
Welk jaar wil je afdrukken ? en dat ik dan een jaar kan ingeven en dat dan uitsluitend het gevraagde jaar wordt afgedrukt. Ik heb al zitten denken om de gegevens van elk jaar een naam te geven, maar ik denk dat dit niet werkt want het lopende jaar 2007 kan nog steeds veranderen als er nog vrije dagen bijkomen.

Is het mogelijk om dit probleem op te lossen ?

Alvast bedankt

M.vr.gr.
Eric
 

Bijlagen

Hier een macro gevonden :

Code:
Sub RangeDataType()
Dim rRange As Range

    On Error Resume Next
        Application.DisplayAlerts = False
            Set rRange = Application.InputBox(Prompt:= _
                "Please select a range with your Mouse to be printed.", _
                    Title:="SPECIFY RANGE", Type:=8)
    On Error GoTo 0
        Application.DisplayAlerts = True

        If rRange Is Nothing Then
            Exit Sub
        Else
            'rRange.Font.Bold = True
            Selection.PrintOut copies:=1, collate:=True
        End If
        
End Sub

Maak een knop aan, klik erop dan krijg je dit (Please select a range with your Mouse to be printed)
er wordt gevraagd om het gebied te selecteren klik op OK.

Pierre
 
Laatst bewerkt:
Beste Pierre,

Bedankt voor je reactie.
Helaas werkt de macro niet precies zoals ik het graag zou hebben.
Ik heb ontdekt dat je eerst voordat je de macro gaat uitvoeren een gebied met de muis moet selecteren, dan de macro starten. Nu wordt gevraagd het gebied te markeren met de muis, maar eigenlijk heb je dit al gedaan. Maar als je het nogmaals doet dan wordt inderdaad het geselecteerde afgedrukt.
Als je eerst de macro uitvoert en dan pas een gebied selecteert dan wordt slechts een cel afgedrukt. (die waar je op dat moment op staat).
Zou je het ook eens willen proberen en kijken wat er aangepast moet worden ?

Gr.
Eric
 
Zo vermoed ik

Code:
    Dim iJaar As Integer
    Dim rng As Range

    iJaar = Application.InputBox("Geef het jaartal in.", "Jaartal", Type:=1)

    With Range("A4")
        .AutoFilter
        .AutoFilter Field:=1, Criteria1:=iJaar
    End With

    With ActiveSheet.AutoFilter.Range
        On Error Resume Next
        Set rng = .Offset(1).Resize(.Rows.Count - 1, 1).SpecialCells(xlCellTypeVisible).Resize(, 9)
        On Error GoTo 0
    End With
    
    rng.PrintOut copies:=1, collate:=True
    ActiveSheet.AutoFilterMode = False

Wigi
 
Ik heb ook de 3 functies herschreven, nu is het 1 functie geworden, met extra argument:

Code:
Function Tellen(Wat As String, InRange As Range) As Long
    Dim iCount As Long
    Dim rng As Range
    Dim iKleur As Integer
    
    Select Case Wat
        Case "ATVG": iKleur = 8
        Case "ATVV": iKleur = 35
        Case "Vakantie": iKleur = 5
    End Select
    
    For Each rng In InRange.Cells
        If rng.Interior.ColorIndex = iKleur Then iCount = iCount + 1
    Next rng
    Application.Calculate
    Tellen = iCount
End Function

Wigi
 
Is het niet gemakkelijker via Data/Filter/Autofilter

Hier kun je kiezen wel jaar er wordt afgeprint.

Pierre

Oeps, Wigi was mij al voor.
 

Bijlagen

Laatst bewerkt:
Goedemorgen,

Pierre en Wim bedankt voor jullie reacties. Ze werken allebei. Helaas kon ik niet eerder reageren wegens problemen met de internetverbinding.

Voor Wim heb ik nog een paar kleine vragen / opmerkingen:
Als ik de macro "Afdrukken_per_jaar" gebruik dan werkt deze perfect, behalve als ik kies voor Annuleren dan krijg ik de volgende foutmelding:
Fout 91 tijdens uitvoering
Objectvariabele of blokvariabele With is niet ingesteld
Als ik dan via foutopsporing ga kijken dan is de macroregel geel met de tekst:
rng.Printout copies:=1, collate = true

Kan hier nog iets aan gedaan worden ?

Mijn laatste vraag:
Mooi dat je ook de 3 bestaande functies vervangen hebt door 1 maar ik weet niet hoe ik deze moet opstarten. Ik heb bijvoorbeeld in een bepaalde cel geprobeerd:
=Tellen(jan07) maar dan krijg ik te zien #waarde!
Wat doe ik fout en wat zou ik eigenlijk moeten doen ?

Alvast bedankt voor je reactie.

Groeten,
Eric
 
Mooi dat je ook de 3 bestaande functies vervangen hebt door 1 maar ik weet niet hoe ik deze moet opstarten. Ik heb bijvoorbeeld in een bepaalde cel geprobeerd:
=Tellen(jan07)

Kijk dan naar de argumenten van de functie: Tellen(Wat As String, InRange As Range)

Eerst moet er dus gezet worden wat je wil optellen, bv. ATVV. Dat is een String, dus tekst, en dus moet het tussen "". 2de argument is hetzelfde als bij jou.

M.a.w., bijvoorbeeld:

=Tellen("ATVV";A3:F7)

Wigi
 
Laatst bewerkt:
Beste Wim,

Volkomen duidelijk, werkt nu wel.
Wil je aub. ook nog even kijken naar het eerste deel van mijn vorige vraag over de macro ?

Bedankt,
Eric
 
Ben niet zeker, maar denk het wel:

Code:
Dim iJaar
    Dim rng As Range

    iJaar = Application.InputBox("Geef het jaartal in.", "Jaartal", Type:=1)
If Not iJaar = False Then
    With Range("A4")
        .AutoFilter
        .AutoFilter Field:=1, Criteria1:=iJaar
    End With

    With ActiveSheet.AutoFilter.Range
        On Error Resume Next
        Set rng = .Offset(1).Resize(.Rows.Count - 1, 1).SpecialCells(xlCellTypeVisible).Resize(, 9)
        On Error GoTo 0
    End With
    
    rng.PrintOut copies:=1, collate:=True
    ActiveSheet.AutoFilterMode = False
End If

Wigi
 
Hallo Wim,

Bij het testen krijg ik de foutmelding:
Compileerfout
Blok If zonder End If

Ik heb geprobeerd deze End If ergens tussen te plaatsen maar dan gebeuren er allerlei rare dingen, zoals bv. een leeg blad met alleen maar een filter enz.
Wil je aub nog even ernaar kijken ?

Eric
 
Zo dan?

Code:
Sub w()
    Dim iJaar As Integer
    Dim rng As Range

    iJaar = Application.InputBox("Geef het jaartal in.", "Jaartal", Type:=1)

    With Range("A4")
        .AutoFilter
        .AutoFilter Field:=1, Criteria1:=iJaar
    End With

    With ActiveSheet.AutoFilter.Range
        On Error Resume Next
        Set rng = .Offset(1).Resize(.Rows.Count - 1, 1).SpecialCells(xlCellTypeVisible).Resize(, 9)
        rng.PrintOut copies:=1, collate:=True
        On Error GoTo 0
    End With
    
    ActiveSheet.AutoFilterMode = False
End Sub

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan