Avatar billede alj Praktikant
19. juli 2005 - 11:26 Der er 17 kommentarer og
1 løsning

Makro stopper, hvorfor ?

Hejsa,
er der mon nogen der kan hjælpe med hvorfor nedennævnte makro stopper efter at have kopieret 50-55 ark ?
Sub Kopier_DEMO_ark()
    Dim ktnr As Long, arknr As Integer, demonr As Long
    arknr = 2
    Sheets("Budget").Select
    Range("b5").Select
    ActiveCell.Offset(1, 0).Select
    ktnr = ActiveCell.Value
    Sheets("DEMO").Select
    Sheets("DEMO").Copy After:=Sheets(arknr)
    demonr = 2
    Sheets("DEMO (" & demonr & ")").Select
    Sheets("DEMO (" & demonr & ")").Name = ktnr
   
    For i = 0 To 270
    Sheets("Budget").Select
    ActiveCell.Offset(1, 0).Select
    ktnr = ActiveCell.Value
    arknr = arknr + 1
    demonr = 2
    Sheets("DEMO").Select
    Sheets("DEMO").Copy After:=Sheets(arknr)
    Sheets("DEMO (" & demonr & ")").Select
    Sheets("DEMO (" & demonr & ")").Name = ktnr
    Calculate
    Next i
End Sub

mvh
alan
Avatar billede sjap Praktikant
21. juli 2005 - 19:11 #1
Har ikke lige studeret koden nærmere, men kan det have noget at gøre med, at der maksimalt kan være 255 ark i én projektmappe?
Avatar billede alj Praktikant
25. juli 2005 - 11:17 #2
Hmm "sjap", det kunne tænkes, men der er pt kun 16 ark i filen når makroen køres, såh...
og der skal maksimalt laves 200 ark (eet pr kt.nr.)
mvh
alan
Avatar billede sjap Praktikant
25. juli 2005 - 19:19 #3
OK, så er det nok ikke der problemet ligger.

Får du nogen fejlmeddelelse - eller kan du se hvor programmet stopper?
Avatar billede alj Praktikant
27. juli 2005 - 20:49 #4
ja, fejlmeddelelser lyder:
run-time error '1004*:
Metoden Copy for klassen Worksheet mislykkedes.
mvh
alan
Avatar billede alj Praktikant
27. juli 2005 - 20:49 #5
ups, efter tryk på debug stopper den her:
    Sheets("DEMO").Copy After:=Sheets(arknr)
Avatar billede sjap Praktikant
27. juli 2005 - 21:28 #6
Den tekst forekommer to gange i din kode - er den den første eller anden gang?
Avatar billede sjap Praktikant
27. juli 2005 - 21:36 #7
En lille ting undrer mig lidt. Du skriver at der maksimalt skal laves 200 ark, men når jeg læser din kode, så står der:

For i = 0 To 270
...
    Sheets("DEMO").Copy After:=Sheets(arknr)
...
Next i

Denne løkke vil - så vidt jeg kan se - i sig selv forsøge at lave 271 kopier af "DEMO".
Avatar billede kabbak Professor
28. juli 2005 - 08:35 #8
er du sikker på at der er værdier i alle celler, som ktnr, får værdi fra og at der ikke er nogen med ens navn/værdi.
Avatar billede alj Praktikant
28. juli 2005 - 20:06 #9
"sjap", du har ret i at koden inkluderer 270 ark, men der er kun 200 kontonr i liste, så det skulle vel være ok.

"kabbak" er kontrolleret, men gør det igen 2907 - bare for en sikkerheds skyld
alan
Avatar billede sjap Praktikant
28. juli 2005 - 20:59 #10
Hvis der kun er 200 kontonumre, vil der opstå en fejl, når du du når til omkring 200 fordi sætningen

Sheets("DEMO (" & demonr & ")").Name = ktnr

jo vil forsøge at ændre navnet på arket, men det kan den jo ikke for ktnr jo er tom.
Avatar billede kabbak Professor
28. juli 2005 - 23:47 #11
Jeg har rettet koden til:

Jeg forstår bare ikke hvad du bruger den første kopiering til, den kunne du jo lave i løkken

Sub Kopier_DEMO_ark()
    Dim ktnr As Long, arknr As Integer, demonr As Long
        arknr = 2
        ktnr = Sheets("Budget").Range("b6").Value
        Sheets("DEMO").Copy After:=Sheets(arknr)
        ActiveSheet.Name = ktnr
   
    For I = 0 To 270
        ktnr = Sheets("Budget").Cells(I + 7, "B").Value
        arknr = arknr + 1
        Sheets("DEMO").Select
        Sheets("DEMO").Copy After:=Sheets(arknr)
        ActiveSheet.Name = ktnr
        Calculate
    Next I
End Sub
Avatar billede alj Praktikant
29. juli 2005 - 10:15 #12
Mærkeligt, nu stopper makroen enten ved ktnr 496010 eller 560050. Jeg har lagt filen på http://www.alanexcel.dk/spgeksperten.htm, så I kan se format'r mv.
Alan
Avatar billede sjap Praktikant
29. juli 2005 - 20:21 #13
Alan

Jeg får det problem, at programmet bryder helt sammen, når jeg prøver (uanset hvilket makro jeg bruger). Det er dog lykkedes mig, at rode så meget med det, at jeg nu har et regneark (hvor jeg har kopieret dine ark over i), og nu kan jeg få det til at virke - næsten. Programmet kører meget længere, og jeg har lidt ideer til hvordan, jeg måske kan forhindre det i at gå ned.

Læg lige din mail, hvis du vil se arket.
Avatar billede sjap Praktikant
29. juli 2005 - 20:35 #14
Har fundet din mail - jeg er åbenbart lidt langsom idag. Sender ark.

Har tilføjet en kontrol af at der findes et ktnr (ellers skal der vel ikke oprettes et ark) og at antallet af ark ikke overskrider 255 (uden den går programmet ned hos mig).
Avatar billede alj Praktikant
29. juli 2005 - 20:59 #15
Hej sjap, sorry hvis jeg har "gemt" mailadr, men jeg fik din mail og du har ret - det virker perfekt indtil grænsen på de 255 ark træder ind. 1000-tak.
mvh
alj
Avatar billede sjap Praktikant
29. juli 2005 - 21:05 #16
Jeg ved IKKE hvorfor det virker, men er da glad for at høre, at det gør :0)

Det jeg har gjort er

- Opret et nyt tomt regneark med to faneblade
- Kopier arket DEMO fra Alans fil til det FØRSTE ark (ved ikke om det er vigtigt, men det var det jeg gjorde) i den nye fil
- Kopier arket Budget fra Alans fil til det andet ark i den nye fil
- Kopieringen virker ikke korrekt for formlen i DEMO!C4 der skal rettes til
  =LOPSLAG(B4;Budget!B6:C282;2;FALSK)
- Til sidst kopieres koden ind i det nye ark

Jeg forstår det stadig ikke, men det er der måske andre der gør (OG SÅ HØRER JEG GERNE NÆRMERE!)
Avatar billede alj Praktikant
29. juli 2005 - 21:33 #17
sjap - som du dog kan råbe :)
Point er dine - vel fortjent - og jeg fatter heller ikke hvorfor det virker efter det du beskriver, men er glad for det alligevel. Der ER åbenbart mere mellem himmel og jord end vi skal forstå.
mvh
alan
Avatar billede sjap Praktikant
29. juli 2005 - 21:47 #18
Tjah, det har du nok ret i. Men det kan jo være med til at gøre livet spændende - dit problem, går vel mere over i kategorien irriterende ;0)
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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