Avatar billede pflb Nybegynder
26. maj 2005 - 15:31 Der er 15 kommentarer og
1 løsning

makro med integreret if funktion

jeg har en betingelse der hedder I19="OK"
Hvis den er opfyldt så skal knappen udskriv som er en knap med en makro vises ellers ikke

jeg har to ark det ene hedder wizard og det andet indtastning

Indtastningsarket skal være skjult
Det jeg gerne vil er at når betingelsen er opfyldt så skal knappen udskriv vises og når man trykker på knappen så skal arket indtastning udskrives og derefter skjules igen.

samtidigt så skal der ikke være andre muligheder for at skrive ud

kan det lade sig gøre
Avatar billede jkrons Professor
26. maj 2005 - 16:54 #1
Du kan godt lave en makro, der afspilles når I19 er = "OK". Denne kan så godt vise din knap. Knappen kan godt udskrive arket og skjule det igen, men jeg tror ikke at du kan sikre dig mod, at der printes på andre måder.
Avatar billede stefanfuglsang Juniormester
26. maj 2005 - 20:38 #2
mon ikke dette:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    cancel = true
End Sub

vil forhindre enhver udprintning?
Avatar billede stefanfuglsang Juniormester
26. maj 2005 - 20:46 #3
En skitse kunne være en funktion kaldt med:
=udskriv(I19)
og defineret som:

Function udskriv(r)
    Application.Volatile
    If r = "OK" Then
      knap.visible = true
    else
      knap.visible = false
    End If
End Function

I makroen til knappen noget i retning af

Sheets(2).Select
UdskrivOK  =true
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
UdskrivOK  =false
Sheets(1).Select

Variablen UdskrivOk kan du så bruge i :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Cancel = not UdskrivOk
End Sub
Avatar billede stefanfuglsang Juniormester
26. maj 2005 - 20:48 #4
Slet UdskrivOK  =false fra knappens makro, det er bedre at have den
i

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Cancel = not UdskrivOk
    UdskrivOK  =false
End Sub
Avatar billede stefanfuglsang Juniormester
26. maj 2005 - 21:00 #5
Her er et svar hvis du kan bruge ideerne...
Avatar billede jkrons Professor
26. maj 2005 - 22:39 #6
stefanfuglsang-> Din kode vil ikke virke.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    cancel = true
End Sub

forhindrer al udskrift - også den der burde komme, når du klikker på knappen.
Avatar billede stefanfuglsang Juniormester
27. maj 2005 - 12:02 #7
jkrons - det ved jeg, det var kun en illustration af at man kan styre udskrift.
Du kan se en anvendelse i kommentaren 20:46:50 og frem
Avatar billede pflb Nybegynder
27. maj 2005 - 12:36 #8
skal den funktion du nævner stefan også laves som en makro  ???
Avatar billede stefanfuglsang Juniormester
27. maj 2005 - 12:49 #9
Denne kode:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Cancel = not UdskrivOk
    UdskrivOK  =false
End Sub

skal indsættes i det kodemodul, der hedder ThisWorkbook (dobbeltklik på ThisWorkbook  i listen til venstre , når du har åbnet VBA-editoren)
Avatar billede pflb Nybegynder
27. maj 2005 - 13:00 #10
jeg tænkte mere på den funktion med at skjule knappen
Avatar billede stefanfuglsang Juniormester
27. maj 2005 - 13:28 #11
Den skal du indsætte i et kodemodul:
åbn VBA-editoren (Alt+F11)
vælg Insert | Module fra menuen.
Indsæt koden

Funktionen kaldes automatisk når I19 ændrer sig, hvis du anbringer  =udskriv(I19) i en celle
Avatar billede stefanfuglsang Juniormester
27. maj 2005 - 13:32 #12
hvis udskriv skal give en værdi (andet en 0, som er standard), kan du bruge
noget i retning af

Function udskriv(r)
    Application.Volatile
    If r = "OK" Then
      knap.visible = true
      udskriv = "Klar til at udskrive" ' eller en anden tekst eller værdi
    else
      knap.visible = false
      udskriv = "" ' ingen tekst
    End If
End Function
Avatar billede pflb Nybegynder
27. maj 2005 - 13:44 #13
der er en makro for knappen som definere hvad der skal udskrives

skal =udskriv(I19)  indsættes i regnearket eller i vba
Avatar billede stefanfuglsang Juniormester
28. maj 2005 - 12:03 #14
=udskriv(I19) er en formel, der skal indsættes i regnearket.
Avatar billede pflb Nybegynder
30. maj 2005 - 14:52 #15
hvis jeg skriver =udskriv(I19) nogen steder i arket så får jeg at vide at den ikke kender funktionen ??
Avatar billede stefanfuglsang Juniormester
30. maj 2005 - 15:20 #16
Jeg går ud fra at der ståe #NAVN? i feltet ?

Har du indsat koden for udskriv i et kodemodul?
(Åbn VBA-editor, vælg Insert/Module fra menuen og skriv den ønskede funktion)

Eller er det fordi du først har indsat formlen i arket, og derefter har skrevet koden for udskriv?
(i så fald skal du blot opdatere feltet med formlen; tryk f2, dernæst enter, når du står i feltet)
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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