Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1500to1504
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
leere Zellen anzeigen
21.06.2016 13:56:03
Michael
Hallo Zusammen,
ich hoffe jemand kann mir helfen. Ich habe eine Tabelle, in der bestimmte Daten erfasst werden. Nun möchte ich, dass wenn in Spalte I, Zellen nicht befüllt sind, er mir eine Liste anzeigt und als pdf ausgibt. Ich habe bereits eine Makro, indem ich durch Angabe ein Anfangs- und Enddatum er mir eine aufbereitete Liste anzeigt. Nun möchte ich keine TextBoxen verwenden, sondern nur das Makro mit einem CommandButton.
Ich habe hier mal meinen Code, mit dem ich die Liste anhand eines Anfangs- und Enddatums erstellen kann. Kann man dieses Makro umstellen?
Wäre für eine Hilfe dankbar
Gruß Michael
Dim objWs As Worksheet
Dim varRet As Variant, lngStart As Long, lngEnd As Long
Dim temp
Dim i As Long
Dim zeile As Long
Dim ende As Long
Application.ActivePrinter = "PDFCreator auf Ne00:"
With Sheets("Rechnungen")
.Visible = xlSheetVisible
.Copy After:=Sheets(Sheets.Count)
Set objWs = Sheets(Sheets.Count)
Range("B6").Select
With objWs
.Unprotect
Range("A6:I65535").Select
Selection.Sort Key1:=Range("B6"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
Range("B6").Select
If IsDate(TextBox1) Then
If IsDate(TextBox2) Then
temp = Application.WorksheetFunction.CountIf(.Columns(2), CLng(CDate(TextBox1)))
If temp = 0 Then
MsgBox "Das Anfangsdatum wurde nicht gefunden!", vbOKOnly, ""
TextBox1 = ""
ActiveSheet.Unprotect
Application.DisplayAlerts = False
.Delete
UserForm8.Hide
UserForm8.Show
End
Else
varRet = Application.Match(CLng(CDate(TextBox1)), .Columns(2), 0)
If IsNumeric(varRet) Then
lngStart = varRet
temp = Application.WorksheetFunction.CountIf(.Columns(2), CLng(CDate(TextBox2)))
If temp = 0 Then
MsgBox "Das Enddatum wurde nicht gefunden!", vbOKOnly, ""
TextBox2 = ""
ActiveSheet.Unprotect
Application.DisplayAlerts = False
.Delete
UserForm8.Hide
UserForm8.Show
End
Else
varRet = Application.Match(CLng(CDate(TextBox2)), .Columns(2), 1)
If IsNumeric(varRet) Then
lngEnd = varRet
Me.Hide
.PageSetup.PrintArea = CStr("A" & lngStart & ":I" & lngEnd)
'.PrintPreview
.PrintPreview
Unload Me
Else
MsgBox "Anfangsdatum nicht gefunden!", vbOKOnly, ""
End If
End If
Else
MsgBox "Enddatum nicht gefunden!", vbOKOnly, ""
End If
End If
Else
MsgBox "Anfangsdatum ungültig!", vbOKOnly, ""
End If
Else
MsgBox "Enddatum ungültig!", vbOKOnly, ""
End If
Application.DisplayAlerts = False
.Delete
Application.DisplayAlerts = True
End With
With Sheets("Schnellstart")
.Visible = True
.Activate
End With
For Each objWs In ThisWorkbook.Worksheets
If Not objWs.Name = "Schnellstart" Then
objWs.Visible = xlVeryHidden
End If
Next
End With
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: leere Zellen anzeigen
22.06.2016 00:54:48
Michael
Hi Michael,
der Code sieht etwas zusammengestückelt aus...
"Nun möchte ich, dass wenn in Spalte I, Zellen nicht befüllt sind" Welche Zellen? Was soll ausgegeben werden? Zeilen mit oder Zeilen ohne oder alle Zeilen?
Wo ist der Button? Auf dem "Rechnung" oder woanders?
Zur grundsätzlichen Logik: man sollte Makros immer nach "Rechenaufwand" aufbauen, d.h.
- erst mal schauen, ob Angaben gültig bzw. Daten vorhanden sind,
- BEVOR man anfängt, Blätter zu kopieren und wieder zu löschen bzw. Drucker festzulegen.
Schöne Grüße,
Michael

AW: leere Zellen anzeigen
22.06.2016 07:46:34
Michael
Hallo Michael,
Dieses Makro läuft auf einer UserForm. Ich möchte durch das neue Makro eben erreichen, dass er alle offenen Rechnungen anzeigt. Durch das Makro was ich beigefügt hatte, wird ja auch der Bereich angezeigt, denn ich durch die Datumsangaben eingrenze und genau das will ich durch das neue Makro auch erreichen.
Das neue Makro soll mir alle Zeilen anzeigen, bei denen in der Spalte I kein Datum eingetragen ist.
Hast du da ne Idee, wie ich dieses Makro umstelle? Stehe nämlich gerade auf dem Schlauch.
Gruß Michael

Anzeige
AW: leere Zellen anzeigen
22.06.2016 13:53:26
Michael
Hi Michael,
so eine ähnliche Geschichte hatten wir eben erst; ich habe mir gleich die Datei von dort geschnappt und angepaßt.
Link: https://www.herber.de/forum/messages/1499953.html
Datei: https://www.herber.de/bbs/user/106415.xlsm
Makro:
Option Explicit
Sub machen()
Dim maxZ&, vonWs As Worksheet, nachWs As Worksheet, c As Range
Dim zv&, zb&, z&, i& ' zeile von, bis & = as long
Dim AC As Variant, D As Variant
Dim v$, anz&
Dim t0 As Single, t1 As Single
t0 = Timer
Set vonWs = Sheets("Rechnungen")
Set nachWs = Sheets.Add
nachWs.Name = "L_" & Format(Date, "YYYYMMDD") & "_" & Format(Time, "hhmmss")
maxZ = vonWs.Range("A" & vonWs.Rows.Count).End(xlUp).Row
If maxZ = 1 Then Exit Sub
vonWs.Range("A1:I" & maxZ).Copy nachWs.Range("A1")
D = nachWs.Range("I6:I" & maxZ)
z = 1
For i = 1 To UBound(D): If D(i, 1)  Empty Then D(i, 1) = z: z = z + 1 Else D(i, 1) = 0
Next
nachWs.Range("J6:J" & maxZ) = D
nachWs.Range("A6:J" & maxZ).Sort nachWs.Range("J6"), xlAscending, Header:=xlNo
Set c = nachWs.Range("J5:J" & maxZ).Find(1, nachWs.Range("J5"), xlValues, xlWhole)
If Not c Is Nothing Then
zv = c.Row
nachWs.Range("A" & c.Row & ":J" & maxZ).Clear
nachWs.Range("J6:J" & c.Row).Clear
End If
t1 = Timer
MsgBox "Erledigt in " & (t1 - t0) * 1000 & " ms;" & vbLf & _
"Evtl. sortieren & Spaltenbreite..."
End Sub
Das mit dem Drucken/PDF usw. kannst Du ja selbst.
Schöne Grüße,
Michael

Anzeige
sorry, hier als XL 2000
22.06.2016 15:33:53
Michael
mußte sie zippen, derweil XL2000 knapp 1 MB produziert: https://www.herber.de/bbs/user/106425.zip
Immer wieder interessant finde ich, daß derartige Makros mit XL2000 SCHNELLER laufen...

AW: sorry, hier als XL 2000
23.06.2016 08:57:18
Michael
Hallo Michael,
super, genau das was ich gebraucht habe....jetzt kann ich das Makro noch etwas abändern und dann passt das wunderbar.
Vielen Dank noch einmal für die schnelle Hilfe..
Gruß Michael

freut mich, danke für die Rückmeldung,
23.06.2016 16:35:44
Michael
Michael,
und schöne Grüße,
Michael

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige