Zellen sind nicht leer da eine Formel darin steh!

Bild

Betrifft: Zellen sind nicht leer da eine Formel darin steh!
von: Newbe
Geschrieben am: 08.12.2003 14:46:49

Ich habe von Boris folgenden Code erhalten


Sub druckena()
Dim Ws As Worksheet, Lz As Long
Set Ws = Worksheets("Auswertung")
Lz = Ws.Range("A65536").End(xlUp).Row
With Ws
    .PageSetup.Zoom = False
    .PageSetup.FitToPagesWide = 1
    .PageSetup.FitToPagesTall = False
    .PageSetup.PrintArea = "A4:G" & Lz + 2
    .PrintOut
    .PageSetup.PrintArea = ""
End With
End Sub



Dieser liest mir aus wann die letzte beschrieben Zeile eintrifft und druckt das file dann nur bis zur letzten Zeile - Dies funktioniert allerdings nicht wenn Formeln in den Zellen steht, da er nicht erkennt das die Zelle leer ist auch wenn die Funktion schreibt das sie leer ist - Kann mir jemand weiter helfen??

In so einer zelle steht dann z.B. =wenn(b5=6;"";Sechs) (Nur ein Beispiel)
Und der oben genannte Code denkt dann die Zeile ist beschrieben und druckt sie leer aus!!!
Bild


Betrifft: AW: Zellen sind nicht leer da eine Formel darin steh!
von: Martin Beck
Geschrieben am: 08.12.2003 15:54:00

Hallo ??? (bitte Real(vor)namen angeben),

ersetze mal die Zeile

Lz = Ws.Range("A65536").End(xlUp).Row


durch

Lz = Ws.Range("A65536").End(xlUp).Row
Do Until Len(Ws.Cells(Lz, 1)) > 0
Lz = Lz - 1
Loop

Gruß
Martin Beck


Bild


Betrifft: AW: Zellen sind nicht leer da eine Formel darin steh!
von: Newbe
Geschrieben am: 08.12.2003 16:14:37

Hallo Martin - Der Hammer - hat gleich beim erstenmal funktioniert. kannst du mir die zwei Zeilen noch in ein paar Worten erklären - dann bin ich überglücklich :-D

Lieber Gruß und Danke - Stefan


Bild


Betrifft: Erklärungsversuch
von: Martin Beck
Geschrieben am: 08.12.2003 16:58:59

Hallo Stefan,

Lz = Ws.Range("A65536").End(xlUp).Row

bestimmt die Nummer der letzten Zeile in Spalte A, in der etwas steht. Nach Deiner Beschreibung kann der Zellinhalt ein Leerstring als Ergebnis einer WENN-Funktion sein.

Ein Leerstring hat die Länge 0, während alle anderen Formelergebnisse eine Länge größer als 0 haben.

Do ... Loop ist eine Schleife, die solange durchlaufen wird, bis die in der Do-Zeile angegebene Bedingung erfüllt ist. Diese lautet

Until Len(Ws.Cells(Lz, 1)) > 0

d.h. im Klartext solange, wie in Spalte A Zellinhalte der Länge 0 vorkommen.

Bei jedem Schleifendurchlauf, bei dem die Bedingung noch erfüllt ist, wir mit

Lz = Lz - 1

die Zeilennummer um 1 verringert. Im Prinzip wird also ausgehend von der letzten belegten Zelle die Spalte A solange nach oben durchlaufen, bis das erste "richtige" Formelergebnis auftaucht.

Gruß
Martin Beck


Bild


Betrifft: Finished
von: NEWBE
Geschrieben am: 09.12.2003 09:44:33

Danke Martin

Hat mich um einiges weitergbracht

Frohes Fest - Stefan


Bild

Beiträge aus den Excel-Beispielen zum Thema " Zellen sind nicht leer da eine Formel darin steh!"