Avatar billede petzel Novice
02. juli 2021 - 11:53 Der er 6 kommentarer og
2 løsninger

Makro load aktivt "celle område"

Hej formentligt et simpelt spørgsmål for den som har svaret..

Jeg har et ark hvor nogle områder er defineret via "navnestyring" og nu ønsker jeg en makro som tager værdien fra øverste celle og navngiver cellerne under med teksten fra øverste celle.

hvordan henter celle området for de aktive celler f.eks. "C22:C27"

'Load navn fra celle 1
    ActiveCell.Select
    Dim liste_navn As String
    liste_navn = ActiveCell.Value

    ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate
   
    Range(Selection, Selection.End(xlDown)).Select

'Ændre navn på celle gruppe

ActiveWorkbook.Names.Add Name:=liste_navn, RefersToR1C1:= _
        "=ActiveCell"
Avatar billede jens48 Ekspert
02. juli 2021 - 16:10 #1
Måske kan dette bruges. Hvis du vælger cellen med overskriften og kører makroen navngives alle celler nedenunder med det navn der står i overskriften.

Sub NavnGivning()
Dim ListeNavn As String
lastrow = Cells(1048576, ActiveCell.Column).End(xlUp).Row
ListeNavn = ActiveCell.Value
Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(lastrow - ActiveCell.Row, 0)).Select
ActiveWorkbook.Names.Add Name:=ListeNavn, RefersToR1C1:=Selection
End Sub
Avatar billede petzel Novice
07. juli 2021 - 20:40 #2
Hej Jens, mange tak det virker som ønsket - PERFEKT!!

Et spørgsmål mere;

Hvad hvis nu funktionen skal arbejde vandret altså teksten som cellerne skal navngives med står "A1" og cellerne som skal navngives står fra celle "B2" og vandret ud (i række 1 - B1 til ?? indtil den når en tom celle

Kan du hjælpe mig med den løsning?
Avatar billede jens48 Ekspert
08. juli 2021 - 01:14 #3
Tja, jeg har pt. ikke adgang til excel. I mellemtiden kan du forklare om det er en skrivefejl når du skriver “B2”, da det ellers handler om række 1
Avatar billede petzel Novice
08. juli 2021 - 07:34 #4
skrivefejl Ja godt set Teksten som cellerne skal hede står i "A1" cellerne står i række "1" fra "B1" og ud til "??"
Avatar billede jens48 Ekspert
08. juli 2021 - 10:17 #5
Sub NavnGivning()
Dim ListeNavn As String
Lastcolumn = Cells(ActiveCell.row,16384).End(xlleft).Column
ListeNavn = ActiveCell.Value
Range(ActiveCell.Offset(0,1). ActiveCell.Offset(0,lastcolumn - ActiveCell.Column)).Select
ActiveWorkbook.Names.Add Name:=ListeNavn, RefersToR1C1:=Selection
End Sub

Nu har jeg prøvet at rette det til på min telefon, så jeg garanterer ikke for at det virker. Ellers må du vente til jeg er tilbage fra ferie og det varer nogen tid
Avatar billede petzel Novice
10. august 2021 - 10:06 #6
Hej Jens - det vandrette løsningsforslag er umiddelbart ikke helt korrekt og jeg kan ikke gennemskue problemstillingen.

Har du mulighed for at komme med et bud?
Avatar billede jens48 Ekspert
10. august 2021 - 10:32 #7
Der havde indsneget sig to fejl i makroen. Prøv med denne

Sub NavnGivning()
Dim ListeNavn As String
lastcolumn = Cells(ActiveCell.Row, 16384).End(xlToLeft).Column
ListeNavn = ActiveCell.Value
Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, lastcolumn - ActiveCell.Column)).Select
ActiveWorkbook.Names.Add Name:=ListeNavn, RefersToR1C1:=Selection
End Sub
Avatar billede petzel Novice
17. august 2021 - 07:42 #8
Perfekt - Tak for hjælpen Jens
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

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