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

Fehler bei Makro wenn leere Zellen

Fehler bei Makro wenn leere Zellen
26.06.2004 15:47:09
Daniel
Hallo Zusammen,
ich habe folgendes Problem:
In der beigefügten Datei möchte ich eine Berechnung durchführen. Ab und an kommt es vor, dass Zellen nicht gefüllt sind. Dann kommt es zu Problemen mit dem Makro das ich bisher nutze, da die Ergebnisse dann verschoben sind.
Für eine genauere Beschreibung und damit man sich überhaupt vorstellen kann um was es geht, hier die Datei:
https://www.herber.de/bbs/user/7754.xls
Für Hilfe bin ich sehr dankbar!
Grüße
Daniel

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler bei Makro wenn leere Zellen
Ulf
Bitte Datei zippen!
Ulf
AW: Fehler bei Makro wenn leere Zellen
26.06.2004 17:46:11
Daniel
Warum, ich habe außerdem kein WinZip installiert. Nur rar und das geht hier nicht.
Daniel
AW: Fehler bei Makro wenn leere Zellen
Ulf
Weil mir z.B. die Datei zum download zu groß ist.
Ulf
einfachere Schlaufe
27.06.2004 00:32:23
Hans
Hallo Daniel
Versuch es mal mit diesem Schluss:
lngE = IIf(IsEmpty(.Range("B65536")), .Range("B65536").End(xlUp).Row, 65536)

On Error Resume Next
For c = 2 To maxc
For lngRow = 2 To lngE
wsROCs.Cells(lngRow + 1, c) = (wsData.Cells(lngRow + 1, c) / wsData.Cells(lngRow, c)) - 1
Next lngRow
Next c
End With
End Sub
Mit "On Error Resume Next" musst du nicht auf leere Zellen testen, da diese einen Fehler auslösen und einfach übersprungen werden. Durch Verwendung von "For ... Next" anstelle von "For Each ... Next" bist du auf beiden Blättern immer auf der gleichen Zeile.
Gruss
Hans T.
Anzeige
Ok, noch zwei kleine Dinge
27.06.2004 09:57:49
Daniel
Hallo Hans!
Ok, das sieht schon deutlich besser aus.
Zwei Dinge müssten jedoch noch geändert werden:
- Wenn ein Tag ohne Daten vorkommt, dann soll an die Veränderung zum Vortag Null betragen und zum nächsten Tag auch Null.
- Es wird eine Zeile am Ende zu viel berechnet. Es darf nur bis zur letzten gefüllten Spalte der Daten gehen.
Hier nochmal die Datei mit Markierung.
https://www.herber.de/bbs/user/7766.xls
Besten Dank für die Hilfe und viele Grüße,
Daniel
AW: Ok, noch zwei kleine Dinge
27.06.2004 11:53:17
Hans
Hallo Daniel
Mir war nicht klar, was du eigentlich berechnen willst. Jetzt verstehe ich die Aufgabe besser.
Wenn du die Veränderung zum Vortag berechnen und eintragen willst, dann musst du auch den aktuellen Tag mit dem Vortag vergleichen und das Resultat am aktuellen Tag eintragen.
On Error Resume Next
For c = 2 To maxc
For lngRow = 2 To lngE
If IsEmpty(wsData.Cells(lngRow, c)) Or IsEmpty(wsData.Cells(lngRow - 1, c)) Then
wsROCs.Cells(lngRow, c) = Empty
Else
wsROCs.Cells(lngRow, c) = wsData.Cells(lngRow, c) / wsData.Cells(lngRow - 1, c) - 1
End If
Next lngRow
Next c
End With
End Sub
Mit "Empty" bleiben Zellen leer. Das ist vermutlich übersichtlicher als 0-Werte einzufüllen.
Gruss
Hans T.
Anzeige
Ok, das ist gut so
27.06.2004 12:21:09
Daniel
Hallo Hans,
danke für die Hilfe. So ist es gut.
Schönen Sonntag!
Daniel

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige