deaktivert443556 Skrevet 7. februar 2012 Del Skrevet 7. februar 2012 (endret) Jeg har et tillegg i Excel som jeg bruker til mye rart. En av funksjonene er å erstatte den innebygde snarveien Shift+F11 (nytt ark) med en enkel kode som gjør at det nye arket alltid havner bakerst Private Sub NyttArk() Sheets.Add Sheets(ActiveSheet.Name).Move After:=Sheets(Worksheets.Count) End Sub Problemet med dette er at jeg ofte lager et nytt ark etter at jeg har kopiert data som skal inn i dette arket, og når man kjører en makro da "glemmer" Excel det jeg har kopiert. Jeg ser for meg at jeg endrer ovennevnte kode til noe lignende dette Private Sub NyttArk() If Not Application.CutCopyMode = False Then 'Hvilke celler er kopiert Sheets.Add Sheets(ActiveSheet.Name).Move After:=Sheets(Worksheets.Count) 'Kopier cellene på nytt Else Sheets.Add Sheets(ActiveSheet.Name).Move After:=Sheets(Worksheets.Count) End If End Sub Finnes det en metode for å se hva som er kopiert? En workaround kan være å hoppe tilbake til arket jeg var i, kopiere selection og så gå til det nye arket igjen, men det blir ikke en 100 %-løsning siden selection kan ha endret seg. Edit: Norsk 2003 Endret 7. februar 2012 av Bradbury Lenke til kommentar
StoltHD Skrevet 7. februar 2012 Del Skrevet 7. februar 2012 http://forums.devx.com/showthread.php?t=169529 http://stackoverflow.com/questions/5992721/vba-excel-script-to-copy-rows-with-data-from-one-worksheet-paste-into-another noen av de kan kanskje hjelpe deg? Lenke til kommentar
deaktivert443556 Skrevet 7. februar 2012 Forfatter Del Skrevet 7. februar 2012 Takk, men nei. Problemet er ikke å finne ut hvordan jeg skal kopiere noe, problemet er å finne ut hva som allerede er kopiert. For å ta et lett eksempel. I Ark1 kopierer jeg B5:C7, jeg oppretter så Ark2 for å lime inn verdiene der. Når jeg bruker makroen min for å opprette det nye arket, da er ikke B5:C7 lenger kopiert, så jeg må gå tilbake til Ark1 og kopiere disse på nytt før jeg så bytter til Ark2 og limer inn verdiene. Det er jo åpenbart at det ikke er B5:C7 som kopieres hver gang, så da ligger utfordringen i å finne ut hvilket område, eller hvilke områder som var kopiert i det jeg startet makroen. Lenke til kommentar
deaktivert443556 Skrevet 7. februar 2012 Forfatter Del Skrevet 7. februar 2012 Hmm, jeg tror kanskje jeg har funnet en løsning. Jeg bytter ut den vanlige kopieringsfunksjonen med følgende kode Dim KopiertOmråde As Range Sub Kopiere() Set KopiertOmråde = Selection Selection.Copy End Sub Koden for å lage nytt ark vil da se ca slik ut. Private Sub NyttArk() If Not Application.CutCopyMode = False Then Sheets.Add Sheets(ActiveSheet.Name).Move After:=Sheets(Worksheets.Count) KopiertOmråde.Copy Else Sheets.Add Sheets(ActiveSheet.Name).Move After:=Sheets(Worksheets.Count) End If End Sub Lenke til kommentar
StoltHD Skrevet 7. februar 2012 Del Skrevet 7. februar 2012 beklager, men jeg forsto det slik at hovedproblemet var å få det kopierte området over til det nye arket direkte, uten å måtte gå tilbake og kopiere på nytt... godt du fant en løsning ihvertfall Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå