Avatar billede Klaus W Ekspert
04. marts 2020 - 16:44 Der er 11 kommentarer og
1 løsning

Ændre Ark navn fra celle

Hej allesammen
Jeg har en lille udfordring, jeg ved at man kan få en VBA kode til at ark navnet fra en celle.

Excel regner et uge nr. ud og det stå i celle E2. Dette tal ville jeg gerne have at bliver arkets navn og der må gerne stå Uge foran tallet.

Jeg har prøvet mange af de løsninger der er her men kan ikke få dem til at fungere.

Det er denne VBA jeg sætter ind i Denne projekt mappe.

Private Sub Workbook_Open(ByVal Target As Range)

    If Not Intersect(Target, Range("e2")) Is Nothing Then
       
    End If

End Sub

https://1drv.ms/x/s!AmLaaGiC5LdohvEG6vw2hOacMMiOPA?e=DhRqgu


Med venlig hilsen og på forhånd tak

Klaus W
Avatar billede store-morten Ekspert
04. marts 2020 - 16:55 #1
Prøv:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("E2")) Is Nothing Then
        ActiveSheet.Name = "Uge " & Target.Value
    End If
End Sub
Avatar billede store-morten Ekspert
04. marts 2020 - 16:58 #2
Nu ser jeg lige at E2 indeholder en formel så det virke ikke.
Så du skal bruge cellen der ændre udregningen!
Avatar billede store-morten Ekspert
04. marts 2020 - 17:02 #3
Så hvis en ændring i A1 ændre uge nr. beregning i E2.
Så prøv med:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        ActiveSheet.Name = "Uge " & Range("E2")
    End If
End Sub
Avatar billede store-morten Ekspert
04. marts 2020 - 18:02 #4
Prøv denne, på det første ark, hvor du taster datoen der ændre alle uge numre.
Celle B4 på det første ark.
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
'Hvis B4 ændres
If Not Intersect(Target, Range("B4")) Is Nothing Then

    Dim ws As Worksheet
    Nr = 1
   
'Først gives arkene et forløbende nr. fra 1.
    For Each ws In ActiveWorkbook.Worksheets
    ws.Activate
        ActiveSheet.Name = Nr
        Nr = Nr + 1
    Next ws
   
'Der efter omdøbes til: Uge og nr. fra E2
    For Each ws In ActiveWorkbook.Worksheets
    ws.Activate
    ActiveSheet.Name = "Uge " & ActiveSheet.Range("E2")
    Next ws
   
End If
   
Application.ScreenUpdating = True
End Sub
Avatar billede Klaus W Ekspert
04. marts 2020 - 18:11 #5
Hej igen

Det for jeg desværre ikke meget ud af.

Jeg har sat koden ind i første ARK.

Og jeg starter med at skive start datoen i B4

Og i E2 står uge nr.

KW
Avatar billede Klaus W Ekspert
04. marts 2020 - 18:15 #6
Hej igen stor- Morten

Det ser ud som det fungere jeg skal
bare lige være helt sikker på om jeg selv skal taste det første ark nummer
Hvis ja fungere det

KW
Avatar billede Klaus W Ekspert
04. marts 2020 - 18:18 #7
Hej igen jeg kan ikke få det til det alligevvel :-(
Avatar billede store-morten Ekspert
04. marts 2020 - 18:36 #8
Du skal kun ændre datoen på første ark (Markeret med gul)
Markroen afsluttes med det sidste ark aktiveret.
https://www.dropbox.com/s/s823hcdy0accjyn/Kostplan%2004-03-2020%20test.xlsm?dl=0
Avatar billede Klaus W Ekspert
04. marts 2020 - 18:41 #9
Hej store-Morten
Hvor er koden sat ind, for den fungere som den skal.?

1000 tak

KW
Avatar billede store-morten Ekspert
04. marts 2020 - 18:45 #10
På ark1 hvor du ændre datoen ;-)

Du kan evt. til føje:

Worksheets(1).Activate

som sidste linje
Avatar billede Klaus W Ekspert
04. marts 2020 - 18:47 #11
Endnu en gang tak
Avatar billede store-morten Ekspert
04. marts 2020 - 18:48 #12
Velbekomme :-)
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