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 ?
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 ?
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.
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.
Synes godt om
Ny brugerNybegynder
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.