Anzeige
Archiv - Navigation
348to352
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
348to352
348to352
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellen sind nicht leer da eine Formel darin steh!

Zellen sind nicht leer da eine Formel darin steh!
08.12.2003 14:46:49
Newbe
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!!!

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

Betreff
Datum
Anwender
Anzeige
AW: Zellen sind nicht leer da eine Formel darin steh!
08.12.2003 15:54:00
Martin Beck
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
AW: Zellen sind nicht leer da eine Formel darin steh!
08.12.2003 16:14:37
Newbe
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
Erklärungsversuch
08.12.2003 16:58:59
Martin Beck
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
Anzeige
Finished
09.12.2003 09:44:33
NEWBE
Danke Martin

Hat mich um einiges weitergbracht

Frohes Fest - Stefan

333 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige