Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
788to792
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
788to792
788to792
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Privat Sub nicht ansteuern

Privat Sub nicht ansteuern
07.08.2006 16:32:56
Lorenz
Hallo Excelgemeinde!
mit folgendem Code sollten leere zeilen ausgeblendet werden. Doch leider wird bei gefundener leerer Zelle die

Private Sub Combobox1_Change angesteuert u. auch ausgeführt.

Private Sub DruckZeilen()
Dim iRow As Integer
Application .ScreenUpdating = False
For iRow = 14 To 79
If IsEmpty(Cells(iRow, 1)) Then
Rows(iRow).Hidden = True
End If
Next iRow
ActiveSheet.PrintPreview
Rows.Hidden = False
Application .ScreenUpdating = True
End Sub

Wie kann man diesen "ansteuern von anderen Subs" verhindern?
Gruss
Lorenz

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Privat Sub nicht ansteuern
07.08.2006 17:40:44
IngGi
Hallo Lorenz,
du musst für die Dauer der Makroausführung die Ereignisse abschalten. Dabei solltest du das Wiedereinschalten der Ereignisse in eine Fehlerbehandlung einbauen, damit im Falle eines auftretenden Fehlers im Makro die Ereignisse nicht ausgeschaltet bleiben. Das Wiedereinschalten der Bildschirmaktualisierung habe ich hier auch gleich mit in die Fehlerbehandlung eingebaut. Das sieht dann folgendermaßen aus:

Private Sub DruckZeilen()
On Error GoTo Fehler
Application.EnableEvents = False
Dim iRow As Integer
Application .ScreenUpdating = False
For iRow = 14 To 79
If IsEmpty(Cells(iRow, 1)) Then
Rows(iRow).Hidden = True
End If
Next iRow
ActiveSheet.PrintPreview
Rows.Hidden = False
Exit Sub
Fehler:
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Gruß Ingolf
Anzeige
AW: Privat Sub nicht ansteuern
07.08.2006 18:00:29
Lorenz
Hallo Ingolf!
Leider immer noch!
Rows(iRow).Hidden = True '..genau hier wird nachdem die gefundene leere Zeile ausgeblendet wurde die Private Sub ausgewählt
Grüsse
Lorenz
AW: Privat Sub nicht ansteuern
07.08.2006 19:45:34
Polarfuchs
Hallo Lorenz,
wenn Du Dein Problem noch nicht gelöst hast. Es könnte mit einer Variablen funktionieren, die Ihren Wert nicht verliert, solange das Worksheet offen ist.
Du musst die Variablen unter 'Diese Arbeitsmappe' folgendermaßen definieren:

Private Sub Workbook_Open()
ActiveWorkbook.Names.Add Name:="VerSprung", RefersToR1C1:=0
End Sub

jetzt kannst Du die Variable auf '1' setzen in dem Du in einer beliebigen Sub folgende Zeile eingibst, am besten in der Sub von der aus in die ComboBox1_Change-Sub gesprungen wird:
Application.Names("VerSprung").Value = 1
jetzt kannst Du in die erste Zeile der Combobox1_Change Sub folgendermaßen gestalten:
VerSprung = Val(Mid((Application.Names("VerSprung").Value), 2, 6))
If VerSprung = 1 Then Exit Sub
Du musst allerdings in der Sub ComboBox1_Change die Variable VerSprung als Integer definieren.
Nun musst Du noch am Ende der Prozedur in der Du die VerSprung auf '1' gesetzt hast diese wieder auf '0' setzen:
Application.Names("VerSprung").Value = 0
Ich hoffe es hilft bei Deinem Problem. Ich habe ein ganz ähnliches auf diese Art gelöst.
Ciao Polarfuchs
Anzeige
Danke Polarfuchs, genau das war´s owT
08.08.2006 18:51:17
Lorenz

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige