16. september 2003 - 20:49Der 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.
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
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 ?
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
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.
>> 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.
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.
>>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.
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.
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.