Avatar billede ehlerz Nybegynder
28. august 2007 - 09:48 Der er 20 kommentarer

Flere ark med forskellige makroer skal køre samtidig

Hej
Er det muligt at have eks. 10 ark kørende med forskellige makroer og hvordan sikre man at de enkelte makroer kører i de rigtige ark? Jeg har eks. en makro der skal kører i et ark klokken 12 men hvordan sikre jeg at den kører i det rigtige ark hvis jeg eksempel har et andet ark aktivt??
Avatar billede innoteck Nybegynder
28. august 2007 - 11:08 #1
Du skal øverst i makroen blot aktivere det pågældende ark.

Worksheets("Ark").activate

Du kan på sammen måde (i samme makro) f.eks. også skifte mellem flere ark for udførsel af forskellige dele af makroen...
Avatar billede ehlerz Nybegynder
28. august 2007 - 11:34 #2
Ok, men popper arket så frem hvis det eksempelvis er minimeret eller bliver det liggende i bjælken nederst??
Avatar billede kabbak Professor
28. august 2007 - 12:23 #3
du skal tage arknavnet med i koden og du må ikke bruge select og activate i den.

eks.
Worksheets("Ark").range("A1") = 5
Avatar billede ehlerz Nybegynder
29. august 2007 - 09:04 #4
Hey Kabbak. Jeg har følgende kode der ikke virker når andre ark er åbne men fint når intet andet er åbent.

Sub MakroJesper3()
   
    Worksheets("Hovedark").Activate
    Sheets("Hovedark").Range("C43:C45").Select
    Selection.Copy
    Sheets("Hovedark").Range("D43").Select
    Selection.PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False

Du siger jeg ikke må bruge select og activate, hvordan skal koden så virke??
Avatar billede ehlerz Nybegynder
29. august 2007 - 09:33 #5
Jeg får fejlen "Subscript out of range" og når jeg vælger debug hopper den ind i worksheets("hovedark").activate??
Avatar billede kabbak Professor
29. august 2007 - 09:41 #6
Worksheets("Hovedark").Range("C43:C45").Copy
  Worksheets("Hovedark").Range("D43").PasteSpecial xlValues
  Application.CutCopyMode = False
Avatar billede ehlerz Nybegynder
29. august 2007 - 10:59 #7
Ok,. nu har jeg ændret koden som ovenfor. Jeg får stadig samme fejl og debug leder dig ind i linjen "Worksheets("Hovedark").Range("E5:E40").Copy". KOden er nu som følger:
Sub MakroJesper2()
    Worksheets("Hovedark").Range("E5:E40").Copy
    Worksheets("Hovedark").Range("H5").PasteSpecial xlValues
    Application.CutCopyMode = False

OG den kører såfremt arket er aktivt eller når jeg kører den manuelt??
Jeg har ikke længere activate eller select i min kode og "hovedark" er navnet på mit underark hvori dataen skal kopieres. Skal koden have en sti for at finde ud af det??
Avatar billede kabbak Professor
29. august 2007 - 12:15 #8
Tjek lige om arknavnet "Hovedark" er stavet korrekt, eller om du eventuelt har fået et mellemrum efter navnet.
Avatar billede ehlerz Nybegynder
29. august 2007 - 13:15 #9
Hmm, filen hedder realark.xls og i den fil hedder arket "Hovedark". Der skulle ikke være nogle stavefejl eller lignende. Desuden kører koden jo perfekt når jeg manuelt trigger den fra kommandoknapper eller den kører via timeren når arket er åbent og aktivt.
Avatar billede kabbak Professor
29. august 2007 - 15:28 #10
Nu skriver du " når arket er åbent og aktivt.", mener du så projektmappen. ??

Ark er de faner der er i en projektmappe,

hvis det er projektmappe du mener, så:

Workbooks("realark.xls").Worksheets("Hovedark").Range("C43:C45").Copy
  Workbooks("realark.xls").Worksheets("Hovedark").Range("D43").PasteSpecial xlValues
  Application.CutCopyMode = False
Avatar billede ehlerz Nybegynder
29. august 2007 - 16:02 #11
Hej Kabbak, ja jeg mener projektmappen. Der er tre ark i hver projektmappe som standard og koden skal kører i det eneste ark der er i projektmappen Realark.xls.
Det virker umiddelbart nu men jeg tjekker op på det igen i morgen. Uanset hvad har du hjulpet mig meget og fortjener point. Giv mig et svar og du skal modtage dine point:D
Avatar billede kabbak Professor
29. august 2007 - 16:41 #12
et svar ;-))
Avatar billede ehlerz Nybegynder
30. august 2007 - 10:08 #13
Hey Kabbak,lige inden du indkassere done point :-)
Nu ser min kode sådan her ud:

Sub MakroJesper2()
    Workbooks("Realark").Activate
    Worksheets("Hovedark").Range("E5:E40").Copy
    Worksheets("Hovedark").Range("H5").PasteSpecial xlValues
    Application.CutCopyMode = False

Denne kode virker efter hensigten NÆSTEN........
Ovenstående kode maksimere regnearket, dvs. arket popper op fra statuslinjen i bunden og koden kører efter hensigten.Når vi nu er så tæt på, kan man så ikke kører koden mens arket forbliver minimeret??
Avatar billede kabbak Professor
30. august 2007 - 16:14 #14
Sub MakroJesper2()
    Workbooks("Realark").Worksheets("Hovedark").Range("E5:E40").Copy
    Workbooks("Realark").Worksheets("Hovedark").Range("H5").PasteSpecial xlValues
    Application.CutCopyMode = False
Avatar billede ehlerz Nybegynder
31. august 2007 - 09:29 #15
hmm, jeg har jo tilsvarende kode som beskrevet ovenfor, ca 20 gange i træk med forskellige celler der skal kopieres og indsættes forskellige steder. Hvis jeg tilføjer Workbooks("realark") alle steder, står arket og hopper helt vildt og det tager meget længere tid inden koden er kørt.
Avatar billede innoteck Nybegynder
31. august 2007 - 10:05 #16
Hvis du i starten af din kode indsætter flg:

          Application.ScreenUpdating = False

, og afslutter koden med:

          Application.ScreenUpdating = True

, så skulle du være ude over dét problem... :-)
Avatar billede innoteck Nybegynder
31. august 2007 - 10:16 #17
Forsøger IKKE at tiltuske mig points... :-)

Dem skal du ubeskåret tildele kabbak, som er en væsentlig større kapacitet, uden sammenligning!

Jeg blander mig KUN fordi jeg løbende får mails, hver gang tråden opdateres med nye svar/kommentarer - og så bliver man jo lidt nysgerrig... :-)

Måske kabbak kan/vil svare på hvordan man evt. kan fravælge disse mails? (fra tråde som man er ell. tidl. har været involveret i???
Avatar billede kabbak Professor
31. august 2007 - 10:20 #18
til Innoteck >
prøv at fjerne fluebenet i Abonnèr, her til venstre, tryk derefter på send, uden at du skriver noget i feltet, så mener jeg du bliver fri for den aktuelle tråd.
Avatar billede innoteck Nybegynder
31. august 2007 - 10:34 #19
Tak!... :-)

(Det er jo altid lærerigt og interessant at følge lidt med i disse tråde, men det bliver til ret mange mails i indbakken, som jeg godt vil være foruden... smiler)
Avatar billede kabbak Professor
31. august 2007 - 20:18 #20
ehlerz > koden burde ikke få arket til at hoppe, da celler hverken selectes eller aktiveres, på den måde den er skrevet.

Du kunne jo prøve at sætte hele smøren af koder, dem der får arket til at ryste, herind, så vi kan se dem.
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



IT-JOB

Cognizant Technology Solutions Denmark ApS

Test Manager

Dynamicweb Software A/S

Partner Solution Architect