Dynamisch afdrukbereik

Status
Niet open voor verdere reacties.

pcwimie

Gebruiker
Lid geworden
13 okt 2011
Berichten
40
Beste forumleden,

Is er iemand die bereid is om mijn onderstaande excel formule om te bouwen naar een VBA code het lukt mij zelf niet waarschijnlijk omdat ik totaal geen kaas gegeten heb van VBA

=VERSCHUIVING($A$2;-1;0;AANTAL.ALS(C1:C5245;HORIZ.ZOEKEN("*";C:C;1;ONWAAR))*17;13)

Groetjes Pcwimie
 
Zoiets?
"=OFFSET($A$2,-1,0,COUNTIF(C1:C5245,HLOOKUP(""*"",C:C;1,FALSE))*17,13)"
 
Beste Mark
zover als de formule vertalen had ik gelukkig al begrepen, maar hoe zitehet er uit in VBA. Ik moet geloof ik beginnen met zoiets als
Sub
active.sheet=printarea

of zoiets
excuseer mij mijn onwetendheid, maar van VBA hebik echt geen kaas gegeten.

Ik hoopte eigenlijk dat iemand de juiste code voor mij kon schrijven zodat ik die kon kopieren en hopelijk uitleg over hoe die code werkt.
Als je namelijk weet hoe iets werkt kun je het vertalen naar een andere code die je misschien in de toekomst nodig hebt.
en hoef ik jullie op het forum niet lastig te vallen met mijn eigen onwetendheid van VBA

groetjes pcwimie
 
Laatst bewerkt:
Dan kun je beter precies zeggen wat je wil dan zet ik het om in een macro voor je.
dan kun je die formule buiten beschouwing laten.

Wat ik bedoel is een gedetailleerde definitie van het te printen gebied.
dat kun je uitgebreid uitschrijven in een macro, en dan kun je dat wellicht zelf later aanpassen :)
 
Laatst bewerkt:
ahwel.. hopelijk is dit wat je zoekt:

Code:
Option Explicit

Public Sub printBereik()
    
    Const START_CEL As String = "A1"    'de startcel van het afdrukbereik
    Const ZOEK_CEL As String = "C1"     'de cel met de zoekwaarde
    
    Dim zoekGebied As Excel.Range       'het zoekgebied voor het tellen van zoekwaarde
    Dim zoekWaarde As String            'de zoekwaarde voor grootte afdrukbereik
    Dim aantalGevonden As Long          'het aantal keer dan zoekwaarde voorkomt
    
    Dim afdrukBereik As String          'het te bepalen afdrukbereik
    Dim afdrukRijen As Long             'het aantal rijen op het afdrukbereik
    Dim afdrukKolommen As Long          'het aantal kolommen op het afdrukbereik

    'Het zoekgebied instellen
    Set zoekGebied = Range("C1:C5245")
    'de zoekwaarde is de waarde van de zoekcel
    zoekWaarde = Range(ZOEK_CEL)
    'het aantal gevonden rijen
    aantalGevonden = WorksheetFunction.CountIf(zoekGebied, zoekWaarde)
    
    'de hoogte van het afdrukbereik = 17 rijen per gevonden waarde
    afdrukRijen = aantalGevonden * 17
    '13 kolommen breed
    afdrukKolommen = 13
    
    If afdrukRijen > 0 Then
        
        'er zijn meer dan 0 afdrukrijen
        afdrukBereik = Range(START_CEL).Resize(afdrukRijen, afdrukKolommen).Address
        'het afdrukbereik bepalen:
        ActiveSheet.PageSetup.PrintArea = afdrukBereik

    Else
        '0 rijen, gebruiker laten weten dat er niets gebeurd is
        MsgBox "Het afdrukbereik kan niet worden bepaald!", vbInformation

    End If

    'naam zoekgebied uit geheugen halen
    Set zoekGebied = Nothing

End Sub
 
Beste Mark,

Hartelijk dank voor je Hulp. Hier kan ik denk ik wel op voort borduren.
Één vraagje nog is zoiets ook te realiseren met de functie van excel/VBA "macro opnemen"

groetjes Pcwimie
 
Nee dat kan niet in zo verre dat een opgenomen macro statisch is en datgeen dat jij wilt bereiken dynamisch moet zijn. Je zult de opgenomen macro moeten aanpassen.
 
Laatst bewerkt:
In navolging van mijn gestelde vraag in Met de onderstaande formule heb ik het uiteindelijk voor elkaar gekregen.
Bij deze formule moet je er wel voor zorgen dat je de paginamarges goed hebt staan en het juiste aantal rijen gebruikt

=VERSCHUIVING($A$2;-1;0;AANTAL.ALS($A$1:$A$5400;VERT.ZOEKEN("Projectnaam:";$A:$A;1;ONWAAR))*108/3;13)
ik vroeg om een formule die keek naar de waarde naam op het moment dat die verandert werd dat werkte niet.
Nu laat ik zoeken naar het woord projectnaam wat alleen verschijnt in kolom A op het moment dat je in kolom C in de in dezelfde rij een naam invult (dus als het niet nul is )

De macro van Mark xl werkte helaas niet bij mij misschien dat die voor iemand anders wel werkt.
Het kan heel goed zijn dat ik de macro verkeerd heb ingevoerd

Groetjes Pcwimie
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan