Avatar billede brilleabe Nybegynder
16. september 2003 - 20:49 Der er 10 kommentarer og
1 løsning

Låse formatering, farve+størrelse+ramme osv.

Jeg har et regneark som er delt og som bliver brugt af mange brugere som sætter mange forskællige data ind i arket.

Jeg har lavet et 'flot' ark hvori data bliver sat ind. Mit problem er at når man paster ændres Rammer+tekst farve+baggrunds farve+skrift typpe+skrift størrelse ligesom betinget formatering også kopieres med fra oprindelses arket.

Arket er naturligvis beskyttet.
Det jeg er ude efter skal have samme effekt som hvis man bruget paste-special-værdier hvergang man satte data ind.

Jeg håber i kan forstå problemet. Jeg bruger Office xp og 2000.
Avatar billede stefanfuglsang Juniormester
16. september 2003 - 21:08 #1
Jeg tror ikke der er en direkte løsning, men en makro, der formaterer cellerne til din standard hver gang arket ændres, er måske en mulighed, omend det er lidt besværlig at lave, hvis der er mange forskellige formater i cellerne
Avatar billede stefanfuglsang Juniormester
16. september 2003 - 21:13 #2
En anden mulighed - afhængig af applikationen - er at opdele regnearket i indtastningsdel og "præsentationsdel", således at indtastningsdelen ikke har noget avanceret formatering. Præsentationsarket henter så data fra indtastningsarket og viser data med den rigtige formatering. Måske kan det laves det som en template/skabelon så brugerne ikke gemmer i originalarket ?
Avatar billede brilleabe Nybegynder
16. september 2003 - 21:16 #3
Det er desværre ikke muligt med et ind/ud ark. Måske er det kun muligt via en makro, men der er mange celler og næsten lige så mange formater...
Avatar billede kabbak Professor
17. september 2003 - 00:19 #4
hvis de sætter data ind med højreklik, kan denne bruges.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
svar = MsgBox(" Vil du sætte data ind her", vbYesNo)
If svar = vbYes Then
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
End If
Cancel = True
End Sub
Avatar billede oyejo Nybegynder
17. september 2003 - 08:17 #5
Blir data blir kopiert til det samme området hele tiden?
Da kan man fra Format menyen velge betinget formatering. Da vil ikke cellene endre formatering. Tror jeg:-)Bruker office 2000.
Avatar billede oyejo Nybegynder
17. september 2003 - 09:09 #6
Prøvde med betinget formatering, det gikk ikke :-/
Formatbetingelsene fra andre celler med betinget formatering fulgte med.
Avatar billede brilleabe Nybegynder
18. september 2003 - 19:41 #7
>> krabak.
Det er en flok 'aber' (ikke så slemt ment) som bruger arket til dagligt og der kommer nye til, så det er desværre ikke muligt at opnå bare en lille smule disiplin - Det er egentlig også derfor jeg vil have lavet det så formateringen beholdes - hvis det var mig selv som brugte arke ville det jo aldrig blive et problem.

Jeg vil gerne høre flere bud hvis der er nogen som har et par ideer.
Avatar billede kabbak Professor
18. september 2003 - 20:45 #8
Prøv at lege med dette

sættes i ark modulet:

Private Sub Worksheet_Activate()
Call PasteBar
End Sub

Private Sub Worksheet_Deactivate()
Call FjernBar
End Sub

Dette sættes i et modul:

Sub PasteBar()
' laver en flydende bar på skærmen
Set cbar1 = CommandBars.Add(Name:="Paste Bar", Position:=msoBarFloating)
cbar1.Visible = True
  Set newItem = CommandBars("Paste Bar").Controls.Add(Type:=msoControlButton)
With newItem
    .BeginGroup = True
    .Caption = "( indsæt kopierede data )"
    .Style = msoButtonCaption
    .OnAction = "SætInd" ' kald af makro
End With
Slut:

End Sub

Public Sub SætInd()
On Error GoTo Slut
  ActiveSheet.Unprotect' fjerner arkbeskyttelsen
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Exit Sub
Slut:
  ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Public Sub FjernBar()
For Each cbar In CommandBars' fjerner baren så den ikke vises på de andre ark
  If cbar.Name = "Paste Bar" Then
  Application.CommandBars("Paste Bar").Delete
    End If
Next
End Sub

Og den sidste i ThisWorkbook modulet, for at være sikker på at baren fjernes.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
For Each cbar In CommandBars
  If cbar.Name = "Paste Bar" Then
  Application.CommandBars("Paste Bar").Delete
    End If
Next
End Sub

Den virker, hvis du kan have arket skrivebeskyttet, der bliver kun mulighed for at indsætte data, ved hjælp at commandbaren.
Avatar billede brilleabe Nybegynder
18. september 2003 - 22:36 #9
>>kabbak
Det er sgu' et rigtigt godt bud. Desværre har jeg ikke nævnt at der er tale om et delt ark, dvs. makroer som klipper celler virker ikke(som jeg har forstået det - sig gerne til hvis det ikke passer).

Du for point for forslaget selvom det ikke løser mit problem - jeg kan nemmelig sakse noget af koden til brug for noget andet;-)


...Lader den lige stå et øjeblik i håb om at der kommer flere bud.
Avatar billede kabbak Professor
18. september 2003 - 23:56 #10
hvad mener du med at klippe celler ?.

Hvis du bruger andre makroer, kan du jo bare lade dem Unprotecte inden koden udføres.
Avatar billede brilleabe Nybegynder
19. september 2003 - 19:17 #11
Det er ikke et problem med protect/unprotect. Problemet er hvis jeg deler arket. (Tools-Share workbook). Så kan jeg ikke klippe/kopiere m.range - jeg kan kun bruge hele rækker/kollonner.
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