Avatar billede gammer Nybegynder
12. august 2006 - 14:33 Der er 34 kommentarer og
1 løsning

Makro giver fejl

Jeg har følgende makro, som gerne skulle styre mine udskrifter fra forskellige ark:

Sub SamPrint()

Select Case ActiveSheet.Name

    Case "Ark1"
        ActiveSheet.PageSeptup.PrintArea = "$A$1:$Q$48"
        ActiveSheet.Print
               
End Select

End Sub

Mit problem er, at den giver mig en run-time error 438 og "Object doesn't support this property or method".

Er der en der kan give mig en løsning og forklaring på hvorfor det går galt?
Avatar billede gammer Nybegynder
12. august 2006 - 14:35 #1
Fejlen opstår ved ved
ActiveSheet.PageSeptup.PrintArea = "$A$1:$Q$48"
og/eller
ActiveSheet.Print
Avatar billede brynil Nybegynder
12. august 2006 - 14:40 #2
Prøv at stave rigtitg!  ;))
Avatar billede brynil Nybegynder
12. august 2006 - 14:43 #3
PageSeptup
Avatar billede gammer Nybegynder
12. august 2006 - 15:01 #4
Du har helt ret i den første linie :-)

men den anden linie giver stadig fejl
Avatar billede excelent Ekspert
12. august 2006 - 15:14 #5
ActiveSheet.PrintOut
Avatar billede gammer Nybegynder
12. august 2006 - 15:23 #6
Begge linier virker nu som de skal - tak for hjælpen.

Hvis jeg lige må snige et tillægsspørgsmål ind:

Jeg skal have fundet sidste post i området B6:b305 og have flettet rækkenummeret herfra ind i linien
  ActiveSheet.PageSeptup.PrintArea = "$A$1:$Q$48"
Hvordan løses det?
Avatar billede excelent Ekspert
12. august 2006 - 15:36 #7
prøv
ActiveSheet.PageSeptup.PrintArea = "$A$1:$Q" & Range("B305").End(xlUp).Row
Avatar billede gammer Nybegynder
12. august 2006 - 16:00 #8
excelent:
Først en lille beskrivelse af arket
B1:B5 er overskrifter og tomme linier
B6:b305 er navne eller, hvis ikke alle felter er udfyldt, et tomt felt

Din løsning tager rækkerne b1:b5 med, hvilket er OK.
Men i mit testark har jeg i B6:b10 indtastet navne, og din løsning tager kun række 6 (b6) med. Den mangler at tage de sidste 4 med
Avatar billede excelent Ekspert
12. august 2006 - 16:02 #9
ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$" & Range("B305").End(xlUp).Row
Avatar billede excelent Ekspert
12. august 2006 - 16:06 #10
ok kan du ikke lige køre denne test, og lad mig vide hvilken række den viser

Sub test()
MsgBox ("") & Range("B305").End(xlUp).Row
End Sub
Avatar billede gammer Nybegynder
12. august 2006 - 16:10 #11
excelent:
Det hjalp desværre ikke - den tager stadig kun den første indtastning med
Avatar billede excelent Ekspert
12. august 2006 - 16:18 #12
prøv:

Sub Udskriv()
ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$" & Range("B305").End(xlUp).Row
ActiveSheet.PrintPreview
End Sub
Avatar billede gammer Nybegynder
12. august 2006 - 16:18 #13
Den viser 6
Avatar billede gammer Nybegynder
12. august 2006 - 16:22 #14
Kan det have noget gøre med, at række 5 er en linie der er tom (kun farve)
Avatar billede excelent Ekspert
12. august 2006 - 16:22 #15
nej jeg oploader lige mit testark - øjeblik
Avatar billede excelent Ekspert
12. august 2006 - 16:24 #16
Avatar billede excelent Ekspert
12. august 2006 - 16:25 #17
den virker ikke på nettet, gem først på HD
Avatar billede brynil Nybegynder
12. august 2006 - 16:38 #18
gammer - er du sikker på du arbejder i det rigtige ark ?
Avatar billede gammer Nybegynder
12. august 2006 - 16:57 #19
excelent
Jeg kan sagtens få dit testark til at køre korrekt, men når jeg kører den samme makro på mit eget ark får jeg stadig kun alle overskifter er med og den første indtastning.

Jeg har fået din makro til at virke i et andet ark, der dog ikke har samme opbygning.

Opbygningen af kolonne B i arket er sådan:
1. rk. - Navnet på arket (indtastet)
2. rk. - En overskrift
3. rk. - Tom linie formatteret med farve
4. rk. - En linie med teksten "TOTALER"
5. rk. - Tom linie formatteret med farve
6. rk - 305. rk. - Indtastede navne

Jeg har flere ark af samme opbygning som makroen heller ikke finder korrekt, og så lige et enkelt ark hvor den fungerer korrekt - lidt mystisk.

bynil:
På trods af min tidligere fejl, er jeg sikker på at jeg står i det rigtige ark :o)
Avatar billede excelent Ekspert
12. august 2006 - 16:59 #20
ok: hvis række 306 er tom, så ret 305 til 306 i formlen
Avatar billede brynil Nybegynder
12. august 2006 - 17:03 #21
Har du prøvet

Sub x
  Range("B305").End(XlUp).Select
End Sub

Så får du konstateret hvor makroen arbejder når du finder den aktive celle. Der skulle meget gerne ikke være celler med værdi derunder.
Avatar billede gammer Nybegynder
12. august 2006 - 17:08 #22
brynil:

din sidste makro markerer kun felt b6
Avatar billede excelent Ekspert
12. august 2006 - 17:09 #23
rækker under 305 er vel tomme ? (der forekommer kun navne til og med 305)?
Avatar billede brynil Nybegynder
12. august 2006 - 17:11 #24
Det er som excelent skriver sandsynligt, at startpunktet for din makro B305 er en celle med værdi. Derfor går det galt.
Avatar billede excelent Ekspert
12. august 2006 - 17:12 #25
ja og derfor skal 305 ændres til 306, eller en celle længere ned e som er tom
Avatar billede brynil Nybegynder
12. august 2006 - 17:13 #26
Prøv at lege lidt med den Sub x jeg har vist, med forskellige værdier, så vil du se hvordan End(XlUp) fungerer.
Avatar billede gammer Nybegynder
12. august 2006 - 17:29 #27
Jeg har fundet ud af hvor det fejler:

Jeg har oplyst forkert, for kolonne B6:b305 består rent faktisk af følgende formel:
=HVIS(STAMOPLYSNINGER!B16="";"";STAMOPLYSNINGER!B16)

Jeg har automatisk gået ud fra, at når formlen indsatte "" i en celle, så er den også tom. Men det kan jeg jo så konstatere, at det er den ikke!!!!

Beklager mine fejlagtige oplysninger har medført det ekstra arbejde.

Kan det stadig gøres på samme måde, når der står formler i???
Avatar billede excelent Ekspert
12. august 2006 - 17:30 #28
kikker på det
Avatar billede excelent Ekspert
12. august 2006 - 17:39 #29
så må vi benytte en anden metode,- prøv

Sub Udskriv()
For x = 1 To 305
If Cells(x, 2) <> "" Then r = x
Next
ActiveSheet.PageSetup.PrintArea = "$A$1:$Q$" & r
ActiveSheet.PrintPreview
End Sub
Avatar billede gammer Nybegynder
12. august 2006 - 17:46 #30
Sådan excelent, nu virker det.

Jeg opretter lige et spørgsmål med point til dig. Så kan brynil også få for sin hjælp.

brynil får pointene fra dette spørgsmål, mens excellent får 100 points i et nyt spørgsmål.

Og mange rigtigt mange gange tak for hjælpen
Avatar billede gammer Nybegynder
12. august 2006 - 17:46 #31
brynil smid et svar her!
Avatar billede brynil Nybegynder
12. august 2006 - 17:56 #32
Nup dem selv. Svaret på dit oprindelige spm skal du ikke gi point for. :))
Avatar billede gammer Nybegynder
12. august 2006 - 17:58 #33
Det er heller ikke det du får point for ;o)

men for din Sub x, som har lært mig lidt om hvordan End(XlUp) fungerer
Avatar billede brynil Nybegynder
12. august 2006 - 18:05 #34
Ok da, det hælper lidt på samvittigheden hvis vi tar den med! ;))
Avatar billede gammer Nybegynder
12. august 2006 - 18:10 #35
Det tænkte jeg nok. Men du har også lagt lidt tid i det, så det manglede da bare.
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