Avatar billede mira96ac Novice
20. december 2006 - 14:25 Der er 15 kommentarer og
1 løsning

Makro til vandmærke og skrivebeskyt

Hejsa

Er der nogen der kan lave en makro som kan tildeles en knap som kan følgende:

Jeg forestiller mig at der kommer en lille boks op hvor man kan afkrydse -

Tilføje et defineret vandmærke til alle sider i filen (der skal stå udkast med en 45 graders vinkel)

Fjerne vandmærket igen fra alle sider

Skrivebeskytte hele filen (uden kode)

Fjerne skrivebeskyttelsen

Er der nogen som har en smart ide ?
Avatar billede supertekst Ekspert
20. december 2006 - 17:57 #1
Et udkast - koden ligger i en userform, som kan aktiveres via en knap i ark1
- Ellers send en mail til: pb@supertekst-it.dk - som returnere jeg "det hele"

Private Sub CommandButton1_Click()                  'OK
    styringAfVandmærke
    styringAfLås
    Unload UserForm1
End Sub
Private Sub CommandButton2_Click()                  'Annuller
    Unload UserForm1
End Sub
Private Sub styringAfVandmærke()
    If Me.OptionButton1 = True Then
        visVandmærke
    Else
        skjulVandMærke
    End If
End Sub
Private Sub styringAfLås()
    If Me.OptionButton3 = True Then
        lås
    Else
        låsOp
    End If
End Sub
Private Sub visVandmærke()
    ActiveSheet.PageSetup.CenterHeaderPicture.Filename = _
        "C:\Documents and Settings\pb\Skrivebord\2012ExcelVandmærke\udkast.bmp"
End Sub
Private Sub skjulVandMærke()
    ActiveSheet.PageSetup.CenterHeaderPicture.Filename = ""
End Sub
Private Sub lås()
    ActiveSheet.Protect
    ActiveWorkbook.Protect
End Sub
Private Sub låsOp()
    ActiveSheet.Unprotect
    ActiveWorkbook.Unprotect
End Sub
Private Sub UserForm_activate()
    If ActiveSheet.PageSetup.CenterHeaderPicture.Filename <> "" Then
        Me.OptionButton1 = True
    Else
        Me.OptionButton2 = True
    End If
   
    If ActiveSheet.ProtectContents = True Then
        Me.OptionButton3 = True
    Else
        Me.OptionButton4 = True
    End If
End Sub
Avatar billede supertekst Ekspert
21. december 2006 - 15:40 #2
Ny version:

Rem Version 2
Rem =========
Dim xSti
Private Sub CommandButton1_Click()                  'OK
    styringAfVandmærke
    styringAfLås
    Unload UserForm1
End Sub
Private Sub CommandButton2_Click()                  'Annuller
    Unload UserForm1
End Sub
Private Sub styringAfVandmærke()
    If Me.OptionButton1 = True Then
        visVandmærke
    Else
        skjulVandMærke
    End If
End Sub
Private Sub styringAfLås()
    If Me.OptionButton3 = True Then
        lås
    Else
        låsOp
    End If
End Sub
Private Sub visVandmærke()
    With ActiveWorkbook
        For a = 1 To .Sheets.Count
            Sheets(a).PageSetup.CenterHeaderPicture.Filename = xSti + "udkast.bmp"
            Sheets(a).PageSetup.CenterHeader = "&G"
        Next a
    End With
End Sub
Private Sub skjulVandMærke()
    With ActiveWorkbook
        For a = 1 To .Sheets.Count
            .Sheets(a).PageSetup.CenterHeader = ""
        Next a
    End With
End Sub
Private Sub lås()
    With ActiveWorkbook
        For a = 1 To .Sheets.Count
            Sheets(a).Protect
        Next a
    End With
   
    ActiveWorkbook.Protect
End Sub
Private Sub låsOp()
    With ActiveWorkbook
        For a = 1 To .Sheets.Count
            Sheets(a).Unprotect
        Next a
    End With
   
    ActiveWorkbook.Unprotect
End Sub
Private Sub UserForm_activate()
    findSti
   
    x = ActiveSheet.PageSetup.CenterHeader
   
    If Len(ActiveSheet.PageSetup.CenterHeader) > 0 Then
        Me.OptionButton1 = True
    Else
        Me.OptionButton2 = True
    End If
   
    If ActiveSheet.ProtectContents = True Then
        Me.OptionButton3 = True
    Else
        Me.OptionButton4 = True
    End If
End Sub
Private Sub findSti()
    xSti = ActiveWorkbook.Path
    If Right(xSti, 1) <> "\" Then
        xSti = xSti + "\"
    End If
End Sub
Avatar billede mira96ac Novice
21. december 2006 - 15:58 #3
Den laver fejl i denne (private SUb Lås)

Sheets(a).Protect

Men udkast viker på alle sider
Avatar billede mira96ac Novice
21. december 2006 - 16:00 #4
Jeg kan se fejlen kommer når jeg har markeret flere ark samtidig. Efter f.eks. udskrivning
Avatar billede supertekst Ekspert
21. december 2006 - 17:21 #5
Vi kan evt. stryge beskyttelse af de enkelte ark og nøjes med mappen?
Avatar billede mira96ac Novice
21. december 2006 - 22:34 #6
Jeps.

Det er nok mig som ikke har forklaret det godt nok.

Det er fint hvis hele mappen bliver skrivebeskyttet (uden password) og man kan ophæve beskyttelsen (uden password)
Avatar billede supertekst Ekspert
22. december 2006 - 09:23 #7
Hvis du indsætter de to markerede linier i version 2 - så skulle det hjælpe - idet markeringen af flere ark ophæves:

Private Sub lås()
    With ActiveWorkbook
        For a = 1 To .Sheets.Count
            Sheets(a).Select                'TILFØJELSE
            Sheets(a).Protect
        Next a
    End With
   
    ActiveWorkbook.Protect
End Sub
Private Sub låsOp()
    With ActiveWorkbook
        For a = 1 To .Sheets.Count
            Sheets(a).Select                'TILFØJELSE
            Sheets(a).Unprotect
        Next a
    End With
   
    ActiveWorkbook.Unprotect
End Sub
Avatar billede mira96ac Novice
22. december 2006 - 11:29 #8
Jeg synes den laver fejl i lige præcis de nye linier når jeg nu prøver. Det gør den også når jeg prøver at indsætte vandmærke ???
Avatar billede supertekst Ekspert
22. december 2006 - 12:22 #9
Prøv at sende din kode, sådan som den ser ud nu - så kan jeg prøve den...
Avatar billede mira96ac Novice
22. december 2006 - 12:26 #10
Dim xSti
Private Sub CommandButton1_Click()                  'OK
    styringAfVandmærke
    styringAfLås
    Unload UserForm1
End Sub
Private Sub CommandButton2_Click()                  'Annuller
    Unload UserForm1
End Sub
Private Sub styringAfVandmærke()
    If Me.OptionButton1 = True Then
        visVandmærke
    Else
        skjulVandMærke
    End If
End Sub
Private Sub styringAfLås()
    If Me.OptionButton3 = True Then
        lås
    Else
        låsOp
    End If
End Sub
Private Sub visVandmærke()
    With ActiveWorkbook
        For a = 1 To .Sheets.Count
            Sheets(a).PageSetup.CenterHeaderPicture.Filename = xSti + "udkast.bmp"
            Sheets(a).PageSetup.CenterHeader = "&G"
        Next a
    End With
End Sub
Private Sub skjulVandMærke()
    With ActiveWorkbook
        For a = 1 To .Sheets.Count
            .Sheets(a).PageSetup.CenterHeader = ""
        Next a
    End With
End Sub
Private Sub lås()
    With ActiveWorkbook
        For a = 1 To .Sheets.Count
            Sheets(a).Select                'TILFØJELSE
            Sheets(a).Protect
        Next a
    End With
   
    ActiveWorkbook.Protect
End Sub
Private Sub låsOp()
    With ActiveWorkbook
        For a = 1 To .Sheets.Count
            Sheets(a).Select                'TILFØJELSE
            Sheets(a).Unprotect
        Next a
    End With
   
    ActiveWorkbook.Unprotect
End Sub
Private Sub UserForm_activate()
    findSti
   
    X = ActiveSheet.PageSetup.CenterHeader
   
    If Len(ActiveSheet.PageSetup.CenterHeader) > 0 Then
        Me.OptionButton1 = True
    Else
        Me.OptionButton2 = True
    End If
   
    If ActiveSheet.ProtectContents = True Then
        Me.OptionButton3 = True
    Else
        Me.OptionButton4 = True
    End If
End Sub
Private Sub findSti()
    xSti = ActiveWorkbook.Path
    If Right(xSti, 1) <> "\" Then
        xSti = xSti + "\"
    End If
End Sub
Avatar billede supertekst Ekspert
22. december 2006 - 12:42 #11
Får ingen fejl når jeg anvender din kode.
Kunne det tænkes, at din knap, der kalder makroen henviser til en gl. version?

Evt. tag en PrtScr og send billedet når fejlen optræder (efter debug-knappen ar aktiveret)

Alternativt (bedst):
Ellers må du gerne sende hele filen til min mail - det bliver jo ikke jul, hvis det ikke lykkes :-)
Avatar billede mira96ac Novice
22. december 2006 - 15:46 #12
Jeg har sendt et skærmprint til dig.

Jeg har lagt makroen over i et andet Excel-ark(der var jeg skal bruge den)

Jeg har både modulet og userformen med.

Din makro virker i det oprindelige ark (vandmærke) men ikke efter jeg har flyttet det.

Dog laver den en mærkeligt ting i vandmærke.xls. Den går til det sidste ark )ark3)ved indsætning af vandmærke og trykker man på vis udskrift skriver den "De markerede sider er blanke".
Jeg har ikke markeret nogle ark.
Avatar billede supertekst Ekspert
23. december 2006 - 12:15 #13
Har ikke modtaget skærmprint!

"De markerede sider-..." - hvis arket er tomt - så kommer denne melding....
Avatar billede familienriis Nybegynder
27. december 2006 - 20:55 #14
Hej. Denne kode er lige noget for mig, kan bare ikke helt få den til at virke
Jeg har kopieret koden ind i mit ark.

Hvike knapper skal jeg oprette for at få den til at virke
Avatar billede supertekst Ekspert
28. december 2006 - 10:33 #15
>familienriis - læg din e-mail her eller send en til: pb@supertekst-it.dk - så sender jeg den samlede model, der også indeholder en Userform.
Avatar billede mira96ac Novice
03. januar 2007 - 14:00 #16
Lukker
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