Avatar billede Jacob00 Mester
09. december 2021 - 14:56 Der er 7 kommentarer og
1 løsning

VBA kopier kolonner

Jeg kan ikke finde ud af hvad problemet er med denne formel.
Fejlen opstår når makroen skal vælge markere kolonnerne A:T, som den ikke gør.

Nogen med viden om hvad problemet er og evt. hvordan jeg retter det?

ActiveSheet.Unprotect "Kode"
ActiveWorkbook.Unprotect "Kode"
 
    Sheets("Ark8").Visible = True
        Application.DisplayAlerts = False


            Range( _
          "B2:E2,A5:A7,B6:E7,A11:C11,E11,H2:L2,H4:L8,G5:G7,G11:K11,S4:T4,R13:T17,A14:B168" _
                ).Select
            Range("A14").Activate
            ActiveWindow.SmallScroll Down:=-276
            Range( _
                "B2:E2,A5:A7,B6:E7,A11:C11,E11,H2:L2,H4:L8,G5:G7,G11:K11,S4:T4,R13:T17,A14:B168,J14:J168" _
                ).Select
            Range("J14").Activate
            ActiveWindow.SmallScroll Down:=-342
            Selection.ClearContents
            Range("B2:E2").Select
            Sheets("Ark8").Select
            Columns("A:T").Select                          FEJL I DENNE LINJE
            Range("A2").Activate
            Selection.Copy
            Sheets("Ordreseddel").Select
            Range("A1:C1").Select
            ActiveSheet.Paste
            Range("B2:E2").Select
            Sheets("Ark2").Select
            Application.CutCopyMode = False
            Range("B2:E2").Select
            Sheets("Ordreseddel").Select
            Range("B2:E2").Select
   
        Application.DisplayAlerts = True
  Sheets("Ark8").Visible = False
       
ActiveSheet.Protect "Kode"
ActiveWorkbook.Protect "Kode"
Avatar billede ebea Ekspert
09. december 2021 - 16:29 #1
Det der nok er dit problem, er at den kode du kører, er startet på et andet Ark, end det du vil have udført fra din kode.

Du skriver:      Sheets("Ark8").Select
Og næste er:  Columns("A.T").Select

Men Excel vil tro at du stadig er på det Ark hvor koden startede, så det vil give en fejl.
Men generelt, så undgå alle dine .Select
Avatar billede store-morten Ekspert
09. december 2021 - 20:35 #2
Prøv:
            'Ret: Navn
    Worksheets("Navn").Range( _
    "B2:E2,A5:A7,B6:E7,A11:C11,E11,H2:L2,H4:L8,G5:G7,G11:K11,S4:T4,R13:T17,A14:B168,J14:J168" _
    ).ClearContents
           
    Worksheets("Ark8").Columns("A:T").Copy _
    Destination:=Worksheets("Ordreseddel").Range("A1")
           
    Application.CutCopyMode = False

    Worksheets("Ordreseddel").Range("B2:E2").Select
Avatar billede Jacob00 Mester
10. december 2021 - 10:40 #3
Det var lige hvad der skulle til. Tak for hjælpen

Ebea
Det var en makro jeg havde indspillet så jeg styrede ikke lige det med .select

Hvordan kan det være man skal undgå at bruge den?
Avatar billede ebea Ekspert
10. december 2021 - 11:15 #4
#3 - ja, jeg er godt med på, at det med Select, kommer fra makro recorderen ;-)

Men hvis du kigger i den lille stump kode, du har, så se hvor uoverskuelig den er (grundet .Select brugen), og så forestil dig i en rigtig lang kode sekvens, hvor der er rig mulighed for fejl.

Den lille stump her:
Sheets("Ark8").Select
            Columns("A:T").Select                          FEJL I DENNE LINJE
            Range("A2").Activate
            Selection.Copy
            Sheets("Ordreseddel").Select
            Range("A1:C1").Select
            ActiveSheet.Paste

Kunne koges ned til eksemplet med Store Mortens løsning, eller blot:
Sheets("Ark8").Columns("A:T").Copy Sheets("Ordreseddel").Range("A1")
Avatar billede store-morten Ekspert
10. december 2021 - 11:16 #5
Fordi det kræver tid og kræfter :-)

Find Ark1 og vælg det
Find celler og vælg dem
Kopier cellerne
Find Ark2 og vælg det
Find cellerne og indsæt det kopierede

vs

Tag en kopi af cellerne på Ark1 og
indsæt i cellerne på Ark2
Avatar billede Jacob00 Mester
10. december 2021 - 12:55 #6
Det kan jeg godt se giver mening.
Har også haft makroer som jeg har indspillet og de bliver hurtigt meget lange og endnu mere uoverskuelige.

Tak for de gode svar :)
Avatar billede store-morten Ekspert
10. december 2021 - 13:10 #7
Velbekomme

Kunsten er at redigere i en indspillet kode.

F.eks.  ActiveWindow.SmallScroll Down:=-342 (tryk på pil ned) kan bare slettes.
Avatar billede ebea Ekspert
10. december 2021 - 13:17 #8
#6 - Du er velkommen ;-)
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