Printanje več listov zapored

Pomoč pri izdelavi makrov
rick
Prispevkov: 216
Pridružen: So Feb 17, 2007 9:18 pm

Printanje več listov zapored

Odgovor Napisal/-a rick »

Pozdravljeni,

v excel zvezku imam kar precej listov z podatki. Rad bi napisal makro,
ki bi mi iz zvezka izsprintal vsak list, če je v tem listu v celici "a1 neka vrednost.
Problem je tudi ta, da je v listih polno formul(pa tudi v celici a1), skratka, neznam
si čist predstavljati kakšen bo makro, da ne bo formulo prepoznal kot vrednost.
za odgovor se najlepše zahvaljujem.

lp Rick
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Printanje več listov zapored

Odgovor Napisal/-a admin »

Pozdravljeni,

ne razumem čisto, kaj ste želeli povedati s tistim o formulah v celici A1, toda izven tega je makro skrajno preprost:

Koda: Izberi vse


Sub NatisniListe()
  Dim ws As Worksheet
  
  For Each ws In Workbook
    If (ws.Range("A1") = 12) Then
      ws.PrintOut
    End If
  Next
End Sub

lp,
Matjaž Prtenjak
Administrator
rick
Prispevkov: 216
Pridružen: So Feb 17, 2007 9:18 pm

Re: Printanje več listov zapored

Odgovor Napisal/-a rick »

pozdravljeni,
...recimo, da je v celici a1 formula, in če je vrednost te celice večja od 0, potem naj printa, sicer ne.

lp Rick
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Printanje več listov zapored

Odgovor Napisal/-a admin »

Torej se spremeni samo pogoj - formula nima nobene zveze - vrednost je vrednost ali vpisana ali pridobljena s formulo:

Koda: Izberi vse

...
      If (ws.Range("A1") > 0) Then
...

lp,
Matjaž Prtenjak
Administrator
rick
Prispevkov: 216
Pridružen: So Feb 17, 2007 9:18 pm

Re: Printanje več listov zapored

Odgovor Napisal/-a rick »

pozdravljeni,

sem razumel, vendar se ustavi na : For Each ws In Workbook
rick
Prispevkov: 216
Pridružen: So Feb 17, 2007 9:18 pm

Re: Printanje več listov zapored

Odgovor Napisal/-a rick »

sem uredil, najlepša hvala ;)
rick
Prispevkov: 216
Pridružen: So Feb 17, 2007 9:18 pm

Re: Printanje več listov zapored

Odgovor Napisal/-a rick »

pozdravljeni,

kako bi nadgradil makro:
Sub NatisniListe()
Dim ws As Worksheet

For Each ws In Workbook
If (ws.Range("A1") = 12) Then
ws.PrintOut
End If
Next
End Sub

...in sicer, da mi printa liste v obsegu od 1 do 80( torej list; 1,2,3,4,5,6,7.......do 80), v kilikor je vrednost v celici a1=12
za odgovor se najlepše zahvaljujem.
pl Rick
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Printanje več listov zapored

Odgovor Napisal/-a admin »

Koda: Izberi vse

Sub NatisniListe()
  Dim ws As Worksheet
  Dim i as integer
  
  For i = 1 to 80
    If (ws.Range("A1") = 12) Then
      ws.PrintOut
    End If
  Next
End Sub
lp,
Matjaž Prtenjak
Administrator
rick
Prispevkov: 216
Pridružen: So Feb 17, 2007 9:18 pm

Re: Printanje več listov zapored

Odgovor Napisal/-a rick »

pozdravljeni,

žal se ustavi tukaj:
If (ws.Range("A1") > 0) Then

in napiše: object variable or with block variable not set

za nadaljno pomoč se iskreno zahvaljujem.
lp Rick
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Printanje več listov zapored

Odgovor Napisal/-a admin »

Ah, da...

Koda: Izberi vse

Sub NatisniListe()
  Dim ws As Worksheet
  Dim i as integer
  
  For i = 1 to 80
    set ws = worksheets(i)
    If (ws.Range("A1") = 12) Then
      ws.PrintOut
    End If
  Next
End Sub
lp,
Matjaž Prtenjak
Administrator
rick
Prispevkov: 216
Pridružen: So Feb 17, 2007 9:18 pm

Re: Printanje več listov zapored

Odgovor Napisal/-a rick »

pozdravljeni,

se vrtim v začaranem krogu....makro se mi ustavlja na: Set ws = Worksheets(i)
nekako mi zmanjkuje idej, kaj pravzaprav delam narobe?
za odgovor se zahvaljujem.
lp Rick
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Printanje več listov zapored

Odgovor Napisal/-a admin »

In kakšno napako vam javlja? Če vam javi 'Subscript out of range' - to je namreč edina napaka, ki bi vam jo lahko VBA tam javil... potem pač pomeni, da v konkretnem delovnem zvezku pač nimate 80 listov!
lp,
Matjaž Prtenjak
Administrator
rick
Prispevkov: 216
Pridružen: So Feb 17, 2007 9:18 pm

Re: Printanje več listov zapored

Odgovor Napisal/-a rick »

pozdravljeni,

aha, to pa nisem razumel.....imam v bistvu 82 listov. eden list se imenuje "leto", drugi pa "mesec"....no potem pa imam še 80 listov, ki se imenujejo "1", "2","3"..............."80".
Torej tisti listi ki se imenujejo od 1 do 80 naj se izprintajo, če je v celicah a1>1.
Se opravičujem, če sem narobe zastavil problem.
Upam, da ste me sedaj razumeli..
lp Rick
rick
Prispevkov: 216
Pridružen: So Feb 17, 2007 9:18 pm

Re: Printanje več listov zapored

Odgovor Napisal/-a rick »

sem rešil, najlepša hvala za pomoč ;)
lp Rick
rick
Prispevkov: 216
Pridružen: So Feb 17, 2007 9:18 pm

Re: Printanje več listov zapored

Odgovor Napisal/-a rick »

pozdravljeni;

kako bi v tole kodo:

Sub NatisniListe()
Dim ws As Worksheet
Dim i as integer

For i = 1 to 80
set ws = worksheets(i)
If (ws.Range("A1") = 12) Then
ws.PrintOut
End If
Next
End Sub

vnesel še msgbox, ki bi mi samo preštel liste in napisal.... recimo, da ni napiše "natisnilo se bo 42 listov"

za odgovor se najlepše zahvaljujem.
lp Rick
Odgovori