Print side | Luk vindue

Brug formel fra celle ovenover

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Generelt
Forum beskrivelse: Hjælp til generel daglig brug af programmet Excel
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=3015
Udskrevet den: 03.Maj.2024 kl. 01:17


Emne: Brug formel fra celle ovenover
Besked fra: mLysdahl
Emne: Brug formel fra celle ovenover
Posteringsdato: 16.Apr.2017 kl. 09:57
Hej :)

Er der en måde hvorpå man kan få excel til automatisk at bruge formlen fra overstående celle, eller selv trække den med ned?
For hvis jeg nu f.eks. bare autoudfylder ved at at række cellen ned, skal vi sige til række 2000, så formlen står i alle celler derned til, vil excel udskrive alle siderne fordi der er en formel i cellen.



Svar:
Besked fra: EXCELGAARD
Posteringsdato: 16.Apr.2017 kl. 12:18
Du kan enten benytte 'Sideopsætning' til at afgrænse, hvilket område, der skal udskrives, eller du kan ligge en lille makro ind i 'Worksheet_Change' eventen, der ligger formlen ind i næse linje.

Det sidste kræver dog, at man ved, i forhold til, hvilken kolonne, formlen skal være.
F.eks. hvis celle i kolonne A er udfyldt, så skal der også være en formel i kolonne D.

Du kan evt. /topic662.html - uploade dit regneark, hvis du ikke selv kan lave makroen...


-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.


Besked fra: mLysdahl
Posteringsdato: 16.Apr.2017 kl. 15:30
Okay tak det vil jeg da prøve :).
Ved godt hvordan jeg sætter makroer ind, men har mest brugt det når jeg har kunne optage den.

Hvordan skal den se ud hvis nu, når der står noget i celle A#, så fyld nedad i celle H#.
Altså hvis det er A4, så skal den lave fyld nedad i H4 (fra H3, hvor formlen står).
Hvis det gir mening :)?


Besked fra: EXCELGAARD
Posteringsdato: 16.Apr.2017 kl. 16:06
Det burde kunne lade sig gøre, med en enkelt linje i 'Worksheet_Change' eventen:
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 1 And Target.Row > 1 Then Range("H" & Target.Row).FormulaR1C1 = Range("H" & Target.Row - 1).FormulaR1C1

End Sub
Se her, hvordan du sætter kode ind:
www.excelgaard.dk/Bib/Makroer/Indsaet/Sheet/ www.excelgaard.dk/Bib/Makroer/Indsaet/Sheet/




-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.


Besked fra: mLysdahl
Posteringsdato: 16.Apr.2017 kl. 19:10
Det virker perfekt Clap

Kan du sådan lige hurtigt forklare hvordan den virker :)?


Besked fra: EXCELGAARD
Posteringsdato: 16.Apr.2017 kl. 22:07
Der er ikke noget, som jeg hellere vil Smile
Det er altid rart, når folk gerne vil forsøge, at lære  Thumbs Up

Når eventen, 'Worksheet_Change', groft oversat til 'Regnearket ændres', bliver udløst, så bliver cellen, der bliver ændret, ført med over i variablen, 'Target'.

Da du skrev, at formlen skulle laves, hvis du lavede en ændring i kolonne A, tester vi først om der skete en ændring i kolonne A, der jo er kolonne nummer 1:
If Target.Column = 1...
Og, da du ønskede, at kopiere fra rækken ovenover, så er rækken nødt til at være større end 1, da række 1 jo ikke har en celle over over:
...And Target.Row > 1...
Da du skrev, at du ønskede, at kopiere kolonne H's række ovenover, så benytte vi igen 'Target's række til at henvise til rækken, der kopieres til og fra:
Range("H" & Target.Row).FormulaR1C1 = Range("H" & Target.Row - 1).FormulaR1C1
...og, da det er formlen, vi ønsker, at kopier, så benytter vi, naturligvis, .FormulaR1C1 egenskaben ved cellen.

I bund og grund ikke det helt store, men man skal selvfølgelig lige forstå dynamikken Geek


-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.


Besked fra: Bjarnehansen
Posteringsdato: 16.Apr.2017 kl. 23:44
Hejsan
hvad nu hvis man skal både g og h kopieres ned har prøvet med range("G:H"


-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK


Besked fra: EXCELGAARD
Posteringsdato: 17.Apr.2017 kl. 01:26
Så vil det nok være noget i denne stil:
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 1 And Target.Row > 1 Then
    Range("G" & Target.Row).FormulaR1C1 = Range("G" & Target.Row - 1).FormulaR1C1
    Range("H" & Target.Row).FormulaR1C1 = Range("H" & Target.Row - 1).FormulaR1C1
End If

End Sub


-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.


Besked fra: Bjarnehansen
Posteringsdato: 17.Apr.2017 kl. 07:57
Takker den havde jeg ikke set var måske for træt Wacko


-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK


Besked fra: EXCELGAARD
Posteringsdato: 17.Apr.2017 kl. 08:06
Husk, at trykke på [Tak] knappen  LOL


-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.


Besked fra: Bjarnehansen
Posteringsdato: 17.Apr.2017 kl. 08:12
JaJa Beer


-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK



Print side | Luk vindue