Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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
Anzeige

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
Anzeige
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
Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige