Avatar billede baekmal Nybegynder
09. april 2010 - 23:39 Der er 4 kommentarer og
1 løsning

Fejl i makro med hvis formel..

Har forsøgt lidt med denne makro:

Det er 3 sider på en fane, hvor Cellerne i D15 eller E15 skal afgøre om området B11:L72 skal markeres og sendes til print osv. som den er nu, sender den kun et område til print selv om der er 2 eller 3 der opfylder kravet. kan nogen hjælpe med dette? kan jeg desuden slippe for print menu hvis ingen krav er opfyldt?

Public Sub udskriv()
If Range("D15") > 0 Or Range("E15") > 0 Then
Range("B11:L72").Select
If Range("D78") > 0 Or Range("E78") > 0 Then
Range("B74:L137").Select
If Range("D143") > 0 Or Range("E143") > 0 Then Range("B139:L202").Select
Application.Dialogs(xlDialogPrint).Show , , , , , , , , , , , 1
End Sub
Avatar billede oyejo Nybegynder
10. april 2010 - 07:31 #1
Public Sub udskriv()
If Range("D15") > 0 Or Range("E15") > 0 Then
Range("B11:L72").Select
Application.Dialogs(xlDialogPrint).Show , , , , , , , , , , , 1

If Range("D78") > 0 Or Range("E78") > 0 Then
Range("B74:L137").Select
Application.Dialogs(xlDialogPrint).Show , , , , , , , , , , , 1


If Range("D143") > 0 Or Range("E143") > 0 Then Range("B139:L202").Select
Application.Dialogs(xlDialogPrint).Show , , , , , , , , , , , 1
End Sub
Avatar billede baekmal Nybegynder
10. april 2010 - 08:58 #2
Oyejo

den laver en compile error. "Block if without end if"

men din formel over, laver den ikke et printer job for dem hver.
den skal kunne, skrive alle områder der opfylder kravet ud til en fil. så jeg skal have sat de 3 if formler sammen og kun en gang til slut have "Application.Dialogs(xlDialogPrint).Show , , , , , , , , , , , 1" som så kan udskrive alt
Avatar billede excelent Ekspert
10. april 2010 - 09:37 #3
Sub UnionX()
Dim r1 As Range, r2 As Range, r3 As Range
Set r1 = Sheets("Ark1").Range("B11:L72")
Set r2 = Sheets("Ark1").Range("B74:L137")
Set r3 = Sheets("Ark1").Range("B139:L202")
If Range("D15") > 0 Or Range("E15") > 0 Then x = x + 1
If Range("D78") > 0 Or Range("E78") > 0 Then x = x + 10
If Range("D143") > 0 Or Range("E143") > 0 Then x = x + 100
If x = 1 Then r1.Select
If x = 10 Then r2.Select
If x = 100 Then r3.Select
If x = 11 Then Union(r1, r2).Select
If x = 101 Then Union(r1, r3).Select
If x = 110 Then Union(r2, r3).Select
If x = 111 Then Union(r1, r2, r3).Select
If x > 0 Then Application.Dialogs(xlDialogPrint).Show , , , , , , , , , , , 1
Set r1 = Nothing: Set r2 = Nothing: Set r3 = Nothing
End Sub
Avatar billede baekmal Nybegynder
10. april 2010 - 09:51 #4
Exelent!

Du får ting til at se så let ud..:-)

Virker helt efter planen. Tak

Sender du et svar
Avatar billede excelent Ekspert
10. april 2010 - 09:57 #5
jada og velbekom
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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