Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1048to1052
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro wird nicht richtig ausgeführt!

Makro wird nicht richtig ausgeführt!
09.02.2009 16:37:09
markus473
Hallo zusammen,
das folgende Makro soll nach vorheriger Paßwortabfrage den Druckbereich bei allen selektierten Blättern festlegen.
Das Problem ist, der Druckbereich wird nur für das zuerst markierte Blatt festgelegt.
Wer kann mir sagen woran es liegen könnte!
Danke und Gruß Markus

Sub DruckbereichFestlegen()
Dim Inp As String, ws As Worksheet, rg As Range
Set ws = ThisWorkbook.Worksheets("Master")
Set rg = ws.Range("A1:A100").Find("Admin", , xlValues, xlWhole, xlByColumns, xlNext)
If rg Is Nothing Then
MsgBox "Der User 'Admin' wurde nicht gefunden!", 16, "Fehler!"
Else
Inp = InputBox("Druckbereich festlegen" _
& Chr(13) & Chr(13) & "Geben Sie das Kennwort ein!")
If Crypto(Inp, cKey)  rg.Offset(0, 1).Value Then
MsgBox "Das Passswort ist falsch!", 16, "Fehler!"
Exit Sub
Else
Dim lngI As Long
For lngI = 1 To ActiveWindow.SelectedSheets.Count
With ActiveWindow.SelectedSheets(lngI)
.PageSetup.PrintArea = "B1:H109"
.HPageBreaks.Add before:=Range("B48")
.HPageBreaks.Add before:=Range("B89")
.HPageBreaks.Add before:=Range("B99")
End With
With ActiveSheet.PageSetup
.PrintTitleRows = "$1:$4"
.PrintTitleColumns = ""
End With
Next lngI
End If
End If
Set rg = Nothing
Set ws = Nothing
ActiveSheet.PrintPreview 'Druckansicht
End Sub


1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro wird nicht richtig ausgeführt!
09.02.2009 17:17:03
Ramses
Hallo
"...Wer kann mir sagen woran es liegen könnte!..."
Du kannst mit VBA nix machen, was auch sonst unmöglich ist.
Wenn du mehrere Sheets selectiert hast, dann kannst du keinen Druckbereich definieren der auf alle übertragen wird. Deine entsprechende Befehlsoption ist in EXCEL deaktiviert
Gruppierten Tabellenblättern den Druckbereich zuweisen geht z.B. so
Sub def_PrAr()
    Dim i As Long
    Dim wks As Worksheet
    Dim prtArr()
    ReDim Preserve prtArr(ActiveWindow.SelectedSheets.Count)
    i = 0
    'Gruppierte Sheets in Array aufnehmen
    For Each wks In ActiveWindow.SelectedSheets
        prtArr(i) = wks.Name
        i = i + 1
    Next
    'Gruppierung auflösen
    Worksheets(prtArr(0)).Select
    For i = 0 To UBound(prtArr) - 1
        Worksheets(prtArr(i)).PageSetup.PrintArea = "A1:B2"
    Next i
    'wieder neu gruppieren
    For i = 0 To UBound(prtArr) - 1
        Sheets(prtArr(i)).Select False
    Next
End Sub

Das kannst du sicher in dein Makro einpassen
Gruss Rainer
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige