Avatar billede toni01 Nybegynder
16. august 2006 - 13:22 Der er 4 kommentarer og
1 løsning

Automatisk kopi af sheet/faneblad

Hejsa

Jeg har et regneark hvor hvert sheet indeholder en faktura nummereret.

Jeg kunne godt tænke mig to makroer:
1. En makro hvor stamoplysninger kopieres med i et nyt sheet.
2. En makro hvor der laves en blank kopi af det eksisterende sheet.

Fælles for begge makroer gælder at det nye sheet placeres som senest faktura (sidst i faneblads rækken) og automatisk tildeles fakturanummer.

mvh toni
Avatar billede toni01 Nybegynder
16. august 2006 - 13:38 #1
Har lige rodet lidt med regnearket, kan man i et sheets højrekliksmenu automatisk kan lave en kopi og move to end. Hvilket løser det meste, dog ikke den automatiske optælling.
Avatar billede supertekst Ekspert
16. august 2006 - 14:17 #2
1. Hvilket omfang har stamoplysninger (range)?
1. Hvor skal de hentes fra - fra det sidste faktura?
2. Sidste faktura, hvor alle celler slettes (ex. fomler) - eller ?
Er det kun selve fakturanr, der navngiver fanen?
Avatar billede toni01 Nybegynder
16. august 2006 - 14:35 #3
Ikke det store omfang, - kun de oplysninger som står i det pågældende worksheet, kun ved blank kopi skal stamdatacellerne renses, men det kan evt. klares med et blankt sheet.

Derved kan det meste vel løses som nedenstående:

Sub CopyWorkSheetMoveToEnd()
'
' CopyWorkSheetToEnd Macro
' Macro recorded 16-08-2006 by toni
'
    Dim intSheets As Integer     
 
    intSheets = Sheets.Count
    Excel.ActiveSheet.Copy After:=Sheets(intSheets)
   
End Sub

I det nye worksheet skal feltet fakturanummer - eks. C9 opdateres ved ...C9 = intSheets - 1 for at tage højde for den blanke faktura til brug ved nyoprettelse 2. en blank kopi.

samt clearing af fakturadata ved kopi med stamoplysninger.
Fanen navn giver kundenavn, eks Ole, og kopi bliver til Ole(2)...og det er vist fint nok, så kan man se hvor mange fakturaer der er sendt til hver enkelt kunde.

toni
Avatar billede supertekst Ekspert
18. august 2006 - 09:37 #4
Måske kan du anvende dette:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    CopyWorkSheetMoveToEnd
End Sub

Sub CopyWorkSheetMoveToEnd()
    Dim intSheets As Integer
 
    intSheets = Sheets.Count
    Excel.ActiveSheet.Copy After:=Sheets(intSheets)
    ActiveSheet.Cells(9, 3) = intSheets - 1
End Sub
Avatar billede toni01 Nybegynder
18. august 2006 - 10:00 #5
Tjaee, det virker jo umiddelbart, men der er lige lidt mere som jeg kigger på, fakturalinierne skal også løbes igennem og teksten(dropdown boks med værdier)ændres.

En ting jeg er usikker på er om koden vil virke hver gang, da ActiveSheet jo først er det sheet man kopiere, for i linien efter at være kopien.
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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