Avatar billede denero Juniormester
07. november 2013 - 09:09 Der er 3 kommentarer og
1 løsning

Udskrive ark fra excelmappe

Excel 2010.
Kolonne A skal indeholde navnene på alle de ark, som findes i "Min Mappe"
Ved hjælp af en makro, skal man kunne opdatere kolonne A til at vise det aktuelle indhold af ark i "Min Mappe"
Markering i kolonne B ud for det enkelte ark, betyder at man ønsker udskrivning (udskrivning 1).
Markering i kolonne C ud for det enkelte ark, betyder at man ønsker udskrivning (udskrivning 2).
Der er tale om flere ark til udskrivning i hver kolonne
Herefter skal en makro "se" hvilke udskrifter, der er afkrydset i kolonne b og derefter udskrive dem via (Knap 1).
Ligeledes skal en makro "se" hvilke udskrifter, der er afkrydset i kolonne C og derefter udskrive dem via (Knap 2).
Avatar billede Sitestory Mester
07. november 2013 - 16:26 #1
Kopier flg. ind i et VBA-modul. Jeg regner med, at du selv kan lave knapperne og knytte dem til makroerne.

'**********
Dim rList As Range
Dim rBcol As Range
Dim rCcol As Range

Sub FindNavne()
'Lister ark-navne i kolonne A
Dim lCount As Long

If Sheets.Count = 0 Then Exit Sub

Set rList = Range(Range("A2"), Range("A2").End(xlDown))
rList.ClearContents

With Sheets
  For lCount = 1 To Sheets.Count
      Range("A1").Offset(lCount, 0).Value = Sheets.Item(lCount).Name
  Next
End With
Set rList = Range(Range("A2"), Range("A2").Offset(Sheets.Count - 1, 0))
Set rBcol = rList.Offset(0, 1)
Set rCcol = rList.Offset(0, 2)
End Sub

Sub PrintB()
'Printer valgte i kolonne B
Dim rCell As Range

FindNavne

For Each rCell In rBcol
  If Len(rCell.Value) > 0 Then
      Sheets.Item(rCell.Offset(0, -1).Value).PrintOut
  End If
Next

Set rCell = Nothing
End Sub

Sub PrintC()
'Printer valgte i kolonne C
Dim rCell As Range

FindNavne

For Each rCell In rCcol
  If Len(rCell.Value) > 0 Then
      Sheets.Item(rCell.Offset(0, -2).Value).PrintOut
  End If
Next

Set rCell = Nothing
End Sub
Avatar billede Sitestory Mester
07. november 2013 - 16:30 #2
Glemte i Sub FindNavne at ændre:

With Sheets
  For lCount = 1 To Sheets.Count
      Range("A1").Offset(lCount, 0).Value = Sheets.Item(lCount).Name
  Next
End With

til:

With Sheets
  For lCount = 1 To .Count
      Range("A1").Offset(lCount, 0).Value = .Item(lCount).Name
  Next
End With

Det virker alligevel, men det kunstneriske indtryk og alt det der :-)
Avatar billede denero Juniormester
07. november 2013 - 22:14 #3
Super - virker lige, som jeg ønskede. Lægger du et svar?
Tak for hjælpen
Avatar billede Sitestory Mester
08. november 2013 - 05:40 #4
Det var godt ;-)
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