Avatar billede CHC Forsker
29. juni 2020 - 10:56 Der er 6 kommentarer og
1 løsning

Kopier ark med VBA

Hej

I en excel-fil til forskellige registreringer har jeg mange ark, benævnt f.eks. 1.1; 1.2; 1.3; 2.1; 2.2 osv.

Jeg har ofte behov for at lave kopier af arkene og gør det ved at højreklikke på fanen og vælge 'flyt eller kopier' og sætte kryds i 'opret en kopi'.

F.eks. fane 2.1, så de hedder 2.1(2), 2.1(3) osv.

Kan det gøres med VBA, så arket automatisk får nummerering og placering, som ved ovenstående manuelle fremgangsmåde?

Vh CHC
Avatar billede thomas_bk Ekspert
29. juni 2020 - 11:00 #1
Hvis det er en hjælp, så kan du holde ctrl nede og klikke på fanen og trække mod højre, så dannes der en kopi. Det gør det hurtigere at kopiere arket.
Avatar billede CHC Forsker
29. juni 2020 - 11:12 #2
Hej Thomas_bk

Det er bestemt en hjælp, så tak for det.

Jeg er dog også interesseret i en løsning på ovenstående, da der også er andre brugere og det derfor gerne må være nemt via en knap.

Vh CHC
Avatar billede Jan K Ekspert
29. juni 2020 - 12:44 #3
Denne kode kan sikkert forbedres, men den gør jobbet, forudsat, at det ark, derkal kopieres er det aktive ark. Koden indsætter kopien lige efter det ark, der  kopieres, og giver den kopiens navn + 1. Den virker kun, hvis der ikke allerede er et ark, med navn, den fårå. Hvis du fx har ark 2.3 vil det nye ark kommer til at hedde 2.4, men hvis du allerede har et ark med det navn, vil den fejle. Men du kan evt selv arbejde videre med koden.

Sub KopierogOmdoeb()
    Dim name As String, numm As String, lastpart As String, firstpart As String
   
    name = ActiveSheet.name
    numm = InStrRev(name, ".", Len(name))
    numm = CInt(numm)
   
    lastpart = CInt(Mid(name, numm + 1, Len(name)))
    firstpart = Left(name, InStrRev(name, ".", numm))
   
    ActiveSheet.Copy after:=ActiveSheet
   
    ActiveSheet.name = firstpart & lastpart + 1
End Sub
Avatar billede CHC Forsker
30. juni 2020 - 08:59 #4
Hej Jan K

Mange tak for dit bud på en løsning.

Jeg kunne dog rigtig godt tænke mig, at nummereringen var identisk med ovenstående beskrivelse, hvor man ved at højreklikke på fanen og vælger 'flyt eller kopier' og sætter kryds i 'opret en kopi' får lavet en kopi med en nummerering, som f.eks. fane 2.1, så de hedder 2.1(2), 2.1(3) osv.

Vh CHC
Avatar billede Jan K Ekspert
30. juni 2020 - 09:32 #5
Det er nemt. Slet alt, bortset fra ActiveSheet.Copy After:=ActiveSheet

Resten  bruges faktisk kun til navngivningen af det nye ark.
Avatar billede CHC Forsker
03. juli 2020 - 11:34 #6
Hej Jan K

Mange tak for hjælpen. Det var sådan set ret simpelt!

Vh CHC
Avatar billede Jan K Ekspert
03. juli 2020 - 16:08 #7
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

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