Avatar billede simulu Juniormester
10. juli 2018 - 08:33 Der er 8 kommentarer og
1 løsning

Kopiere, addere celle og navngiv faneblad....

Hej

Jeg har ledt efter en makro, der kopiere forrige fane, lægger +1 oven i celle A1 og derefter navngiver fanebladet efter det nye værdi i A1.
Har fundet denne makro - men den virker nu ikke.....
Er der en, der kan være behjælpelig med at tilrette denne?

Mvh Jan



Sub copyrenameworksheet()

Dim ws As Worksheet
Set wh = Worksheets(ActiveSheet.Name)
ActiveSheet.Copy after:=Worksheets(Sheets.Count)
Range("A1").Value = Range("A1").Value + 1
If wh.Range("A1").Value <> "" Then
ActiveSheet.Name = wh.Range("A1").Value
End If
wh.Active

End Sub
Avatar billede kim1a Ekspert
10. juli 2018 - 09:08 #1
Skal der ikke blot stå wh.activate til sidst i stedet for wh.active - hvor melder den fejl hvis du vælger debug?
Avatar billede simulu Juniormester
10. juli 2018 - 09:37 #2
Hej.
Jo, jeg har skrevet forkert i anden sidste linie. Der skal stå activate.

Den laver debug i denne linie:
If wh.Range("A1").Value <> "" Then
Avatar billede kim1a Ekspert
10. juli 2018 - 10:37 #3
Det kan være min logik fejler, men hvis du inden du laver dette check siger værdi + 1 så vil den aldrig være tom?

Det kræver dog nok en der kan mere vba end jeg.
Avatar billede store-morten Ekspert
10. juli 2018 - 15:05 #4
Dit "hovedArk" får ikke et nyt nr. så den fejler anden gang den køres?
Avatar billede store-morten Ekspert
10. juli 2018 - 15:23 #5
Prøv:
Sub copyrenameworksheet()

Dim ws As Worksheet
'KopiArk vælges
Worksheets("Ark1").Activate 'ArkNavn tilrettes til copyArk

Set wh = Worksheets(ActiveSheet.Name)
'Der lægges 1 til A1 på KopiArk
Range("A1").Value = Range("A1").Value + 1
'Kopi oprettes
ActiveSheet.Copy after:=Worksheets(Sheets.Count)
'Omdøbes efter værdi i A1 på KopiArk
ActiveSheet.Name = wh.Range("A1").Value
'KopiArk vælges
wh.Activate

End Sub
Avatar billede simulu Juniormester
14. juli 2018 - 17:14 #6
Hej Store-Morten
Det var jo lige det, der skulle til. Tusind tak for hjælpen.

Et lille tillægsspørgsmål:
Du skriver:
'KopiArk vælges
wh.Activate

Burde den så ikke vise det netop nykopierede ark, og ikke gå tilbage til ark1? Den går nemlig tilbage til ark1, hver gang jeg kører makroen.

Mvh Jan
Avatar billede store-morten Ekspert
14. juli 2018 - 17:35 #7
Nej, fordi: Set wh = Worksheets(ActiveSheet.Name) = Kopi arket.

Så prøv at slette:

'KopiArk vælges
wh.Activate
Avatar billede simulu Juniormester
14. juli 2018 - 17:49 #8
Endnu engang tak for hjælpen!!
Avatar billede store-morten Ekspert
14. juli 2018 - 17:49 #9
Kan laves kortere:
Sub copyrenameworksheet()
Dim wh As Worksheet

Set wh = Worksheets("Ark1") 'ArkNavn tilrettes
'Der lægges 1 til A1 på KopiArk
wh.Range("A1").Value = wh.Range("A1").Value + 1
'Kopi oprettes
ActiveSheet.Copy after:=Worksheets(Sheets.Count)
'Omdøbes efter værdi i A1 på KopiArk
ActiveSheet.Name = wh.Range("A1").Value

End Sub
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