Avatar billede jensen363 Forsker
16. juli 2007 - 14:11 Der er 15 kommentarer og
1 løsning

Regneark med scroll-lignende funktion

Jeg har et regneark, hvori der er et indtastningsområde som strækker sig over række 11 til 25 ( 15 rækker ) og et sumområde som strækker sig over række 28 til 34.

En bruger indtaster transaktioner linie for linie, men skal have mulighed oprette nye linier efterhånden som de 15 linier slipper op.

Jeg vil hele tiden bevare min view i række 28 til 34, ligesom mine "header" i regnearket, svarende til række 1 til 10 også skal være synlig for brugeren ... dvs. funktionen frys vindue er ikke en mulighed ...

Er der een der lige kan udtænke en makro som gør følgende :

1. Indsætter ny linie efter sidste indtastningsrække
2. Skjuler den øverste synlige indtastningsrække ( så der kun vises 15 rækker)
Avatar billede luffeladefoged Praktikant
16. juli 2007 - 15:08 #1
Måske lidt idiotisk og fuldstændig misforstået, men kan du ikke bare flytte dit sumområde op under header området, lave en freeze pane i row 16, så er du også helt fri for at brugeren skal tænke på at indsætte rækker?
Du behøver ikke svare om jeg fuldstændig har misforstået problematiken.
Hilsen Leif
Avatar billede jensen363 Forsker
16. juli 2007 - 15:16 #2
Layoutmæssigt er det ikke så pænt, men princippielt kan det sagtens lade sig gøre, men bruger skal under alle omstændigheder tilføje rækker fra tid til anden ... det var lige så meget for at spare tid for brugeren, som ikke nødvendigvis har behov for at se gamle/historiske indtastninger ... men historikken summeres i den nederste view
Avatar billede excelent Ekspert
16. juli 2007 - 18:24 #3
et eks. på hvordan det kan gøres:

http://pmexcelent.dk/Scroll.xls
Avatar billede jensen363 Forsker
17. juli 2007 - 08:35 #4
excelent > hvad kan man sige ... du er genial
Avatar billede excelent Ekspert
17. juli 2007 - 08:49 #5
well tak :-)
m.h.t. celle D203
Denne celle anvendes af makro, og er linket til skydeknappen
Du kan evt. farve den hvid, eller skjule den under skydeknappen
- så skal du bare huske at ændre til ny celle i makro.
Avatar billede jensen363 Forsker
17. juli 2007 - 08:58 #6
m.h.t. celle D203 .... den kan vel med fordel placeres i headerområdet .. der hvor den er nu, er giver den problemer, når jeg indsætter nye rækker ???
Avatar billede excelent Ekspert
17. juli 2007 - 09:05 #7
ja det skal være uden for 11-100 for ellers påvirkes den af
makro, som viser og skjuler rækker i dette område.
(højreklik på skydeknap, vælg "formater kontrolelement",
endsæt ny celleadresse i ruden)
husk ændre "r1 = [D103]" til ny celle
Avatar billede excelent Ekspert
17. juli 2007 - 09:06 #8
D203 = D103
Avatar billede jensen363 Forsker
17. juli 2007 - 09:10 #9
Det er jeg med på :-)
Endnu engang tak for hjælpen ... nu har du jo næsten lavet hele modellen for mig mangler lige en trappetrin - rabatmodel ...
Avatar billede excelent Ekspert
17. juli 2007 - 09:17 #10
ok velbekom
Avatar billede jensen363 Forsker
17. juli 2007 - 12:31 #11
excelent > jeg har lidt udfordringer med koden idet jeg af hensyn til regneregler m.v. ønsker at beskytte dele af regnearket :

Når jeg benytter rullepanelet, fungerer ActiveSheet.Unprotect ikke, hvorimod ActiveSheet.Protect fungerer ????

Nogen gode ideer ???

Sub Rul()

ActiveSheet.Unprotect

Application.ScreenUpdating = False
   
r1 = [L11]: r2 = r1 + 14
    Range("A11:A105").Select
        Selection.EntireRow.Hidden = True

Range("A" & r1 & ":A" & r2).Select
    Selection.EntireRow.Hidden = False
        Cells(r2, 1).Select

Application.ScreenUpdating = True

ActiveSheet.Protect

End Sub
Avatar billede excelent Ekspert
17. juli 2007 - 17:47 #12
Nej man kan ikke rigtigt styre Protect/Unprotect fra Rul()
men prøv leg lidt med denne som forhindrer at markør går
længere ned end række 100 (ret 100 til aktuel sidste række)
(indsæt i arkets kodemodul)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Row > 100 Then Cells(11, 1).End(xlDown).Select
End Sub
Avatar billede excelent Ekspert
17. juli 2007 - 19:34 #13
Har kikket lidt på sagen og fået det til at virke med Protect
Så hvis du ikke helt har opgivet den løsning, kan du gøre sådan:
Start med at vise alle rækker 11-105 og marker område A11:IV105, fjern flueben i låst-box under celleformatering.
Det samme ved din linked celle - L11
De 2 næstnederste linier er nye/rettet

Sub Rul()

ActiveSheet.Unprotect

Application.ScreenUpdating = False
   
r1 = [L11]: r2 = r1 + 14
    Range("A11:A105").Select
        Selection.EntireRow.Hidden = True

Range("A" & r1 & ":A" & r2).Select
    Selection.EntireRow.Hidden = False
        Cells(r2, 1).Select

Application.ScreenUpdating = True

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
End Sub
Avatar billede jensen363 Forsker
18. juli 2007 - 08:19 #14
exelent > det var faktisk ikke nødvendigt at rette koden overhovedet :-)

Problemet var/er at celle L11 var beskyttet ... dooh ... hvor blind kan man blive ?
Avatar billede excelent Ekspert
18. juli 2007 - 09:33 #15
yep, og område A11:IV103 kan også være låst uden problemer
hvis nødvendigt ser det ud til :-)
Avatar billede jensen363 Forsker
18. juli 2007 - 10:21 #16
Faktisk kan du godt have hele eller dele af det aktuelle celleområde beskyttet og fortsat benytte scroll-funktionen alligevel :-) ... jeg har nemlig også regneregler som skal beskyttes mod brugerredigering i dette selvsamme område :-)

I bund og grund er det efterhånden en kanon god løsning, som absolut vil vække opsigt når den først bliver frigivet :-)
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