Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Fanenavn ud fra celle

34 views
Skip to first unread message

Lars Carlsen

unread,
Jun 8, 2021, 6:57:44 AM6/8/21
to
Hej gruppe
Jeg har forsøgt at søge, men forgæves.
Hvis jeg har en fane [Ark1], og jeg gerne vil have den til at ændre navn automatisk ud fra, hvad der står i celle A1 - kan det så lade sig gøre?
Mvh. Lars

Lars Klintholm

unread,
Jun 8, 2021, 9:22:46 AM6/8/21
to
Lars Carlsen skrev tirsdag d. 08-06-2021 kl. 12:57:43
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
ActiveSheet.Name = ActiveSheet.Range("A1")
End If
End Sub

Koden lægges i det ark den skal gælde for

--
Lars Klintholm

Lars Carlsen

unread,
Jun 8, 2021, 10:40:53 AM6/8/21
to
> Private Sub Worksheet_Change(ByVal Target As Range)
> If Not Intersect(Target, Range("A1")) Is Nothing Then
> ActiveSheet.Name = ActiveSheet.Range("A1")
> End If
> End Sub
>
> Koden lægges i det ark den skal gælde for
>
> --
> Lars Klintholm

Hej Lars
Jeg har prøvet ved at højreklikke på fanen og vælge [Vis programkode] og sætte teksten ind. Når jeg vil gemme skal jeg gemme med makroer. Skal jeg i øvrigt gøre det ved at markere alle faner én efter én og sætte teksten/koden ind på alle sammen en ad gangen?
Lige meget hvad jeg prøver lykkes det mig ikke - kan du lave sådan en trin for trin for 'dummies' til mig?
Mvh. Lars C

Lars Klintholm

unread,
Jun 8, 2021, 10:59:34 AM6/8/21
to
Lars Carlsen skrev tirsdag d. 08-06-2021 kl. 16:40:52

> Jeg har prøvet ved at højreklikke på fanen og vælge [Vis programkode] og
> sætte teksten ind. Når jeg vil gemme skal jeg gemme med makroer.

Gem som Excel projektmappe med aktive makroer (*.xlsm)

> Skal jeg i
> øvrigt gøre det ved at markere alle faner én efter én og sætte teksten/koden
> ind på alle sammen en ad gangen?

Makro kører automatisk, når celle A1 ændres. Men et ark ad gangen

--
Lars Klintholm

Lars Carlsen

unread,
Jun 8, 2021, 1:16:54 PM6/8/21
to
> Gem som Excel projektmappe med aktive makroer (*.xlsm)
> Makro kører automatisk, når celle A1 ændres. Men et ark ad gangen

Tak, det virker!
Men... ny udfordring:

Ny projektmappe gemt med aktive makroer - tjek!
Oprette ark [Ark1] - tjek!
Skrive kode til ændring af navn til det, der står i A1 - tjek!
Test om det virker - tjek!

Jeg opretter et andet ark og navngiver det [DATA] ved at dobbeltklikke på det.
I arket [DATA] er A1 lig med AA.
Jeg laver en reference i A1 på [Ark1] ved at skrive =DATA!A1 i A1.
Når jeg skifter tekst i A1 på [DATA] skifter navnet på [Ark1] ikke.
Er der en løsning på det også?

Mvh. Lars

Lars Klintholm

unread,
Jun 9, 2021, 2:29:59 AM6/9/21
to
Lars Carlsen skrev tirsdag d. 08-06-2021 kl. 19:16:53
Makroen i Ark1 kører automatisk, når der sker ændringer i Ark1
(Worksheet_Change), ikke når der sker ændringer i arket Data.

Du skal måske finde en anden hændelse til at køre din makro.
Et eksempel kunne være:

Private Sub Test()
For Each c In Worksheets
c.Name = c.Range("A1")
Next
End Sub

Denne kan du lægge i et module, så vil den gennemløbe alle ark og ændre
arknavnet. Og så måske lave en knap til at aktivere makroen med?

--
Lars Klintholm

Lars Carlsen

unread,
Jun 10, 2021, 7:08:00 AM6/10/21
to

> Makroen i Ark1 kører automatisk, når der sker ændringer i Ark1
> (Worksheet_Change), ikke når der sker ændringer i arket Data.
>
> Du skal måske finde en anden hændelse til at køre din makro.
> Et eksempel kunne være:
>
> Private Sub Test()
> For Each c In Worksheets
> c.Name = c.Range("A1")
> Next
> End Sub
>
> Denne kan du lægge i et module, så vil den gennemløbe alle ark og ændre
> arknavnet. Og så måske lave en knap til at aktivere makroen med?

Jeg tror umiddelbart jeg har gabt over for meget i denne omgang :o)
Jeg har aldrig rodet med / kodet makroer, og søgte 'bare' en måde at få ændret arknavn automatisk på.

Men, ovenstående skal da prøves - så må vi se om jeg kan få det til at virke.

Tak for alle dine svar!

Mvh. Lars

Lars Klintholm

unread,
Jun 10, 2021, 7:56:51 AM6/10/21
to
Lars Carlsen skrev torsdag d. 10-06-2021 kl. 13:07:59
Du kan ændre celleindhold automatisk med formler. Men ikke navnet på et
ark. Det kan kun lade sig gøre med VBA kodning. Og det bliver ikke
meget kortere end de små eksempler jeg har vist.

Det omvendte kan man til gengæld godt med en formel. Altså få vist et
fanenavn automatisk i A1 celle. Men det var ikke det du ønskede.

Jeg håber du trods alt har fået mod på mere VBA. Der er tusindvis af
eksempler på nettet, som du direkte kan copy/paste ind i dit eget ark.
VBA er 100% engelsk, så du kan søge fra alle udenlandske og sætte
direkte ind i din danske Excel version. Good luck

--
Lars Klintholm

Lars Carlsen

unread,
Jun 11, 2021, 8:20:36 AM6/11/21
to
> Jeg håber du trods alt har fået mod på mere VBA. Der er tusindvis af
> eksempler på nettet, som du direkte kan copy/paste ind i dit eget ark.
> VBA er 100% engelsk, så du kan søge fra alle udenlandske og sætte
> direkte ind i din danske Excel version. Good luck

Det har jeg helt sikkert, og tak...
Mvh. Lars

Lars Carlsen

unread,
Jun 16, 2021, 5:02:41 AM6/16/21
to
Hej igen

Nå, det giver jo rigtig god mening at rode med VBA!
Nu har jeg sat følgende ind:

Sub Arknavn()
Dim ark As Worksheet
For Each ark In Sheets
ark.Name = ark.Range("A1")
Next ark
End Sub

- og det virker fint med en knap til at køre makroen.
Nu vil jeg gerne kunne fravælge bestemte ark ud fra deres navn - kan man det? Hvis arket fx hedder "DATA".

Mvh. Lars

Jan Kronsell

unread,
Jun 16, 2021, 6:12:46 PM6/16/21
to
Prøv noget i denne stil

Sub Arknavn()
Dim ark As Worksheet
For Each ark In Sheets
If ark.Name <> "Data" Then
ark.Name = ark.Range("A1")
Else
ark.Name = "Data"
End If
Next ark
End Sub

Jan

Bertel Lund Hansen

unread,
Jun 17, 2021, 2:44:00 AM6/17/21
to
Den 17.06.2021 kl. 00.12 skrev Jan Kronsell:

> Prøv noget i denne stil

> Sub Arknavn()
>     Dim ark As Worksheet
>     For Each ark In Sheets
>         If ark.Name <> "Data" Then
>             ark.Name = ark.Range("A1")
>         Else
>            ark.Name = "Data"
>         End If
>     Next ark
> End Sub

> Jan

Måske kunne der være flere titler som Lars ville frede? Jeg kender ikke
VB, men princippet er her:

Sub Arknavn()
StableNames = ["Data","Resultater"]
Dim ark As Worksheet
For Each ark In Sheets
If not ark.Name in StableNames Then
ark.Name = ark.Range("A1")
End If
Next ark
End Sub

Kan det ikke lade sig gøre?

--
Bertel

Lars Carlsen

unread,
Jun 20, 2021, 12:54:27 AM6/20/21
to

> Måske kunne der være flere titler som Lars ville frede? Jeg kender ikke
> VB, men princippet er her:
>
> Sub Arknavn()
> StableNames = ["Data","Resultater"]
> Dim ark As Worksheet
> For Each ark In Sheets
> If not ark.Name in StableNames Then
> ark.Name = ark.Range("A1")
> End If
> Next ark
> End Sub
> Kan det ikke lade sig gøre?

Det skal der da leges lidt med. Tak for input.
Mvh. Lars
0 new messages