Avatar billede 2004bbl Nybegynder
14. maj 2004 - 13:40 Der er 5 kommentarer

Udskriftsmakro på grundlag af en hvis funktion

Kan man aktivere en makro, som udskriver et område på grundlag af en hvis funktion.
Eks

Hvis A1>10,udfør makro,?

Jeg har en stor projektmappe med mange ark, dagligt bliver der indtastet i nogle af arkene. Hvis et ark er anvendt denne dag, skal det udskrives, hvis det ikke er anvendt skal det ikke udskrives.  Jeg ønsker at optage makroen selv, men hvordan får jeg startet alle udskrifter ved at trykke på kun 1 makroknap ?

På forhånd tak for hjælpen
Avatar billede jkrons Professor
14. maj 2004 - 13:43 #1
Nej, du kan ikke udføre makroer fra formler i et ark.
Avatar billede bak Forsker
14. maj 2004 - 14:42 #2
Hvilken excel version bruger i ?
Avatar billede 2004bbl Nybegynder
14. maj 2004 - 17:08 #3
Version 2000


hvis man ikke kan udføre makroer fra en formel, kan man så evt bruge afkrydsningfelter. ?

eks ..  jeg har 200 ark men idag har jeg kun burg for at udskrive 124 udvalgte ark, kan man så på en eller anden måde lave 200 afkrydsningsfelter og så bede om udprint af disse ark ?
Avatar billede bak Forsker
14. maj 2004 - 18:36 #4
Du kan da lave det så du bare skal trykke på en knap
I et alm. modul i vba indsætter du dette:

Option Explicit
Option Base 1
Public ChangedSheets()

Sub init()
Dim Sh As Object
Dim x As Long
ReDim ChangedSheets(ThisWorkbook.Sheets.Count)
End Sub

Sub PrintChangedSheets()
Dim x As Long
For x = 1 To ThisWorkbook.Sheets.Count
    If ChangedSheets(x) = True Then Sheets(x).PrintOut
Next
End Sub



I modulet ThisWorkbook indsætter du følgende:
Private Sub Workbook_Open()
Call init
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
ChangedSheets(Sh.Index) = True
End Sub



Nu opretter du så en knap og lader den køre makroen PrintChangedSheets.

Disse makroer registrerer hvilke ark, der er ændret i og printer disse ud når du kører makroen PrintChangedSheets.
En forudsætning er at du ikke undervejs flytter på arkenes rækkefølge.
Makroerne initialiseres når projektmappen åbnes.
Avatar billede 2004bbl Nybegynder
14. maj 2004 - 23:12 #5
Ja mange tak... det er sikkert den smarteste løsning, men problemet er så at ovenstående er sort tale for mig.  jeg er på niveauet lige over almindelig bruger af excel, de makroer jeg har lavet er via optage funktionen i excel. VBA som jeg antager betyder Visual basic a? er ukendt område.

Så vidt jeg forstår tager denne også udgangspunkt i at der er fortaget ændringer i de pågældende ark, det er ikke nødvendigvis tilfældet ! nogen gange skal de udskrives selvom der ingen forandring er sket.

Eller sagt på en anden måde, I øjeblikket foregår det ved at brugeren starter på første ark, skal dette udskrives trykkes Ctrl P Enter.. derefter Ctrl PgDown for at komme til næste ark osv osv.  kriteriet for at udskrive det aktuelt visuelle ark, er tilstedeværelsen af en 3cifret værdi i et bestemt felt på netop dette ark, dette felt er ikke det samme på alle arkene. nogle dage er værdien den samme som forrige dag og er dermed ikke forandret. Drømmen var at fikse det så excel selv kan undersøge alle 200 arks ene afgørende felt og hvis dette felt er udfyldt af et tal større end 0 skal det tilsvarende ark udskrives. hvis feltet ikke har nogen værdi skal arket ikke udskrives. Programmet  genanvendes ikke næste dag, men et helt nyt identisk (nyt filnavn) men tomt opstartes. Og ja jeg har overvejet at lave det i Access i stedet , men da brugergruppens edb-talenter er på "skrivemaskine-niveau" gælder det om at lave så få ændringer i brugerfladen som overhovedet muligt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester