Avatar billede Loke11_2009 Novice
12. marts 2020 - 15:51 Der er 14 kommentarer og
1 løsning

VBA kode til at finde værdien af den sidste celle i en kolonne

Hej

Jeg skal lave en kode der giver mig værdien af den celle der er den sidste udfyldte celle i et excel ark i VBA da jeg skal arbejde videre med værdien

/Andres
Avatar billede Jan K Ekspert
12. marts 2020 - 16:44 #1
Hvordan forstår du den sidst udfyldte? Står den altid nederst i kolonnen?

I så fald behøver du ikek VBA, men kan klare det med en formel.

http://www.kronsell.net/finde_indholdet_af_sidste_celle.htm
Avatar billede Loke11_2009 Novice
12. marts 2020 - 16:53 #2
Det gør den, men værdien skal jeg bruge i en anden rutine, som køre i VBA
Avatar billede jens48 Ekspert
12. marts 2020 - 16:57 #3
Kan denne makro bruges? Den indsætter den sidst indtastede værdi (i området A1:G10) i celle H1. Der kan så arbejdes videre derfra.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:G10")) Is Nothing Then
Range("H1") = Target.Value
End If
End Sub
Avatar billede Loke11_2009 Novice
12. marts 2020 - 17:32 #4
Istedet for at indsætte den i regnearket, så kan jeg vel give den en variabel evt. sådan

istedet for:
Range("H1")=Target.Value

Så dette:
PL=Target.Value

PL er en variabel der er defn, og skal bruges videre med den aktuelle værdi
Avatar billede Loke11_2009 Novice
12. marts 2020 - 17:43 #5
Jens48 - den virke ikke umiddelbart, men jeg har jo også kun sakset dette

If Not Intersect(Target, Range("A1:G10")) Is Nothing Then
Range("H1") = Target.Value (i min version PL=Target.Value

Og defn. Target som range.

Den skal jo bruges som en del af en makro
Avatar billede Jan K Ekspert
12. marts 2020 - 21:24 #6
Hvis den sidste "bare" er den nederste, så kan denne bruges

sidste = Range("d:d").End(xlDown).Value

Den indsætter indholdet af den nederste celle i D-kolonnen i variablen Sidste. Ret selv kolonnen til den rigtige.
Avatar billede store-morten Ekspert
13. marts 2020 - 09:23 #7
Prøv:
Public PL As Variant

Private Sub Worksheet_Change(ByVal Target As Range)
PL = Target
End Sub

Sub test()
MsgBox PL
End Sub
Avatar billede Loke11_2009 Novice
13. marts 2020 - 10:33 #8
JanK: Den tager række 4, men den sidste fyldte række er 11

Store-morten: Jeg kan ikke indbygge den kodestump i en eksisterende makro, som er det jeg skal
Avatar billede store-morten Ekspert
13. marts 2020 - 10:40 #9
Det skal du heller ikke?

Den skal evt. ligge øverst på det ark den skal virke på.

Er det sidste celle der er indtastet i ?
Eller sidste række i en bestemt kolonne ?
Avatar billede Loke11_2009 Novice
13. marts 2020 - 11:44 #10
Det er sidste række i en kolonne G.

Jeg bliver vel nød til at indbygge den i makroen for at jeg kan anvende værdien af cellen til videre bearbejdning
Avatar billede store-morten Ekspert
13. marts 2020 - 12:18 #11
Prøv at bruge:

Range("G" & Rows.Count).End(xlUp)

i din makro.
Avatar billede store-morten Ekspert
13. marts 2020 - 12:20 #12
Eller:
PL = Range("G" & Rows.Count).End(xlUp)
Avatar billede Jan K Ekspert
13. marts 2020 - 16:16 #13
#8 Jeg gik ud fra at alle rækker var brugt.
Avatar billede Loke11_2009 Novice
16. marts 2020 - 12:16 #14
#12: Det virker:-)
Avatar billede store-morten Ekspert
16. marts 2020 - 12:28 #15
Det var godt 👌
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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