Hallo Community,
ich habe ein kleines Problem mit einer Druckfunktion, wo ich nicht ganz weiterkomme.
In dier Druckfunktionen muss man vorher auswählen was man konkret drucken möchte (relevante Maschinen etc.).
Draufhin schaut die Funktion welche Zellen gefüllt sind in dem Bereich und blendet die anderen Spalten/Zeilen aus,
dass der Druckbereich nicht so groß ist.
Im Anschluss kommt eine Funktion, welche alle Zeilen/Spalten wieder einblenden und da liegt das Problem.
Jede Nutzer kann, je nachdem was für Ihn relevant ist, Spalten ausblenden. Nach betätigten des Druckbuttons
wird jedoch zum Schluss alle ausgeblendeten Spalten wieder eingeblenden und damit auch die Spalten, welcher er vorher manuell ausgeblendet hat.
Da jeder Nutzer andere Spalten ausblendet, kann ich nicht vorher festlegen welche Spalten wieder ausgeblendet werden sollen.
Ich hatte überlegt, ob es möglich ist, dass die Funktion sich merkt, welche Spalten Sie ausgeblendet hat und nur diese wieder einblendet?
Hier die groben Funktionen in Kurz:
Hoffe Ihr könnte mir helfen:
Druck-Button
Funktion Ausblenden:
Funktion Einblenden
ich habe ein kleines Problem mit einer Druckfunktion, wo ich nicht ganz weiterkomme.
In dier Druckfunktionen muss man vorher auswählen was man konkret drucken möchte (relevante Maschinen etc.).
Draufhin schaut die Funktion welche Zellen gefüllt sind in dem Bereich und blendet die anderen Spalten/Zeilen aus,
dass der Druckbereich nicht so groß ist.
Im Anschluss kommt eine Funktion, welche alle Zeilen/Spalten wieder einblenden und da liegt das Problem.
Jede Nutzer kann, je nachdem was für Ihn relevant ist, Spalten ausblenden. Nach betätigten des Druckbuttons
wird jedoch zum Schluss alle ausgeblendeten Spalten wieder eingeblenden und damit auch die Spalten, welcher er vorher manuell ausgeblendet hat.
Da jeder Nutzer andere Spalten ausblendet, kann ich nicht vorher festlegen welche Spalten wieder ausgeblendet werden sollen.
Ich hatte überlegt, ob es möglich ist, dass die Funktion sich merkt, welche Spalten Sie ausgeblendet hat und nur diese wieder einblendet?
Hier die groben Funktionen in Kurz:
Hoffe Ihr könnte mir helfen:
Druck-Button
Visual Basic-Quellcode
- Private Sub CommandButton_Drucken_Click()
- ' diese Methode wird ausgefuehrt, wenn der Benutzer auf "Drucken" geklickt hat
- ' schliesse UserForm
- UserForm1.Hide
- ' Startposition des Cursors merken
- Dim Start As String
- Start = ActiveCell.Address
- ' Ausblenden
- If Not Ausblenden Then
- GoTo Startposition_setzen
- End If
- ' Dateiname erstellen und in Zwischenablage kopieren/einfuegen
- Call Dateiname_Erstellen
- ' Ausdrucken markieren
- If Not Drucken Then
- GoTo Startposition_setzen
- End If
- ' Cursour auf Anfangsposition setzen
- GoTo Startposition_setzen
- Exit Sub
- Startposition_setzen:
- ' alle Zeilen und alle Spalten wieder einblenden
- Call Einblenden
- ' Cursour auf Anfangsposition setzen
- Range("J1").Select
- Range(Start).Select
- End Sub
Funktion Ausblenden:
Visual Basic-Quellcode
- Private Function Ausblenden() As Boolean
- ' mit dieser Funktion werden alle Zeilen und Spalten ausgeblendet, welche nicht benoetigt werden
- ' true -> kein Fehler , false -> Fehler
- On Error GoTo Fehler
- ' Zelle mit ausgewaehltem Verteilungsnamen markieren und merken
- Range("J8").Select
- ActiveCell.Offset(0, ComboBox_Verteilungen.ListIndex * 2).Select
- Verteilung = ActiveCell.Address
- ' alle Verteilungen links von der gewaehlten Verteilung ausblenden
- ActiveCell.Offset(1, 0).Select
- With ActiveCell
- Range(Cells(.Row, 4), Cells(.Row, .Column - 1)).Select
- End With
- Selection.EntireColumn.Hidden = True
- ' Zelle mit Verteilungsnamen wieder markieren
- Range(Verteilung).Select
- ' Zelle mit dem Preis der ersten Angebotsposition auswaehlen
- ActiveCell.Offset(3, 0).Select
- ActiveCell.Offset(0, 1).Select
- ' alle Zeilen des Angebots durchlaufen bis kein Wert mehr drin steht
- While ActiveCell.Value <> ""
- ' Zeilen ausblenden wenn Wert '0' ist
- If ActiveCell = "0" Then
- ActiveCell.EntireRow.Hidden = True
- End If
- ' nächste Zeile markieren
- ActiveCell.Offset(1, 0).Select
- Wend
- ' da die Zelle in der Zeile "Nachtraege" leer ist, muss diese uebersprungen werden
- ActiveCell.Offset(1, 0).Select
- ' alle Zeilen des Nachtrags durchlaufen bis kein Wert mehr drin steht
- While ActiveCell.Value <> ""
- ' Zeilen ausblenden wenn Wert '0' ist
- If ActiveCell = "0" Then
- ActiveCell.EntireRow.Hidden = True
- End If
- ' nächste Zeile markieren
- ActiveCell.Offset(1, 0).Select
- Wend
- ' === da es vorkommen kann, dass keine Nachtraege vorhanden sind, so kann die Zeile mit der Position "Nachtraege" auch ausgeblendet werden ==
- ' vorletzte Zeile wieder markieren
- ActiveCell.Offset(-2, 0).Select
- ' alle Zeilen des Nachtrags rueckwaerts durchlaufen, solange dort der Wert '0' drin steht (diese Zelle ist bereits ausgeblendet)
- While ActiveCell.Value = "0" And ActiveCell.Row > 8
- ' vorherige Zeile markieren
- ActiveCell.Offset(-1, 0).Select
- Wend
- ' wenn die aktuelle Zelle leer ist, ist dies die Zeile mit der Text "Nachtraege" und
- ' kann somit auch ausgeblendet werden, da keine Nachtragspositionen vorhanden sind
- If ActiveCell.Value = "" Then
- ActiveCell.EntireRow.Hidden = True
- End If
- ' letzte Zeile markieren
- ActiveCell.Offset(1, 0).Select
- While ActiveCell.Value <> ""
- ' nächste Zeile markieren
- ActiveCell.Offset(1, 0).Select
- Wend
- ' Rueckgabe der Funktion, true -> kein Fehler
- Ausblenden = True
- Exit Function
- Fehler:
- ' Rueckgabe der Funktion, false -> Fehler
- Ausblenden = False
- ' Fehlerausgabe fuer den Benutzer
- MsgBox "Beim Ausblenden ist ein Fehler aufgetreten.", VbMsgBoxStyle.vbCritical, "Fehler"
- End Function 'Ausblenden
Funktion Einblenden
Visual Basic-Quellcode
- Private Function Einblenden() As Boolean
- ' mit dieser Funktion werden alle Zeilen und alle Spalten wieder eingeblendet
- ' true -> kein Fehler , false -> Fehler
- On Error GoTo Fehler
- ' alle Spalten wieder einblenden
- Cells.EntireColumn.Hidden = False
- ' alle Zeilen wieder einblenden
- Cells.EntireRow.Hidden = False
- ' Rueckgabe der Funktion, true -> kein Fehler
- Einblenden = True
- Exit Function
- Fehler:
- ' Rueckgabe der Funktion, false -> Fehler
- Einblenden = False
- ' Fehlerausgabe fuer den Benutzer
- MsgBox "Beim Einblenden ist ein Fehler aufgetreten.", VbMsgBoxStyle.vbCritical, "Fehler"
- End Function 'Einblenden