Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
676to680
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
676to680
676to680
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Fehlermeldung

Fehlermeldung
05.10.2005 15:48:32
Daniel
Hallo @ all.
Er bringt mir immer wieder eine Fehlermeldung. Ich weiß aber nicht woran es liegt. Vllt habt ihr ja ne Idee. Vielen Dank.
Private Sub Bereinigung_Click() Dim obergrenze, untergrenze obergrenze = 150000 untergrenze = 0 Sheets("Daten").Activate Dim spalte, zeile 'a1,b2,c3,d4,e5,f6,g7 spalte = 8 'in der 7ten spalte anfangen zeile = 6 'in der 6ten zeile anfangen While Cells(zeile, spalte).Value <> "Ende" '--- Fehlermeldung Error 1004--- wert = Cells(zeile, spalte).Value If Cells(zeile, spalte).Value > obergrenze Or Cells(zeile, spalte).Value < untergrenze Then Cells(zeile, spalte) = durchschnitt(spalte) End If zeile = zeile + 1 Wend End Sub
Private Function durchschnitt(spalte) Dim zeile zeile = 6 Dim summe Dim anzahl_werte While Cells(zeile, spalte).Value <> "Ende" summe = summe + Cells(zeile, spalte).Value anzahl_werte = anzahl_werte + 1 zeile = zeile + 1 Wend durchschnitt = summe / anzahl_werte End Function

25
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Error 1004
05.10.2005 17:12:27
Daniel
Hat jemand ne Idee?
AW: Error 1004
05.10.2005 17:40:41
Galenzo
schau dir mal den Wert für "obergrenze" an...
Na....?
(wieviel Zeilen hat ein Excelblatt?)
Viel Erfolg! ;-)
AW: Error 1004
05.10.2005 17:43:36
Galenzo
OK, ich war wohl zu eilig. Es hat nix mit "obergrenze" zu tun.
Fakt ist aber, daß du über's Blatt hinausläufst. Ich denke mal, wenn nichts paßt läuft die Schleife immer weiter - und über die Spalten-/Zeilenzahl hinweg.
AW: Error 1004
05.10.2005 17:49:45
Daniel
Es läuft doch nicht weiter als bis "Ende" dort steht. Oder sehe ich das falsch?
AW: Error 1004
05.10.2005 17:57:54
Galenzo
das siehst du falsch ;-)
du kannst ja mal, wenn das Makro abbricht, in den Editor gehen und den Mauszeiger auf das Wort "zeile" stellen - dann wird der aktuelle Wert von "zeile" angezeigt - und da genau ist der Fehler. "Ende" wird übersprungen.
Anzeige
AW: Error 1004
05.10.2005 18:01:23
Daniel
Stimmt. Kannst du mir nen Tipp geben wie man das ändert?
AW: Error 1004
05.10.2005 17:44:10
Daniel
Die Obergrenze bezieht sich aud den Inhalt der Zelle. die darf den Wert nicht überschreiten. Daniel
AW: Error 1004
05.10.2005 17:43:22
Kay
Hallo Daniel,
ich habe dies mal Nachgebaut, bis auf das du die Variable "wert"
nicht Deklariert hast funktioniert alles bei mir.
Gruß
Kay
AW: Error 1004
05.10.2005 17:48:24
Daniel
Ich habe "wert" als long deklariert aber es funktioniert immer noch noch nicht. Kann man den Code vielleicht anders stricken damit es geht?
Danke Daniel
AW: Error 1004
05.10.2005 17:54:06
Kay
Also es muss in der Spalte 8 in der letzten gefüllten Zelle das Wort "Ende" stehen,
dann muss es gehen.
Kay
Anzeige
AW: Error 1004
05.10.2005 17:58:03
Daniel
In Spalte 8 steht als letztes ein Ende. Aber er sagt immer noch die Fehlermeldung. Was kann man da noch machen. Kann man den code vollständig umgraben?
Daniel
AW: Error 1004
05.10.2005 17:58:53
Galenzo
was soll der Code denn machen?
was ist das Ziel der Übung?
AW: Error 1004
05.10.2005 18:02:40
K
hier ein Beispiel mit dem Code:
Daten
 H
4vorher
5 
66
764865484
865375376
94
10Ende
11 
12nachher
136
1432560217,5
1524483900,9
164
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Kay
Anzeige
AW: Error 1004
05.10.2005 18:19:09
Galenzo
Const OBERGRENZE As Long = 150000
Const UNTERGRENZE As Long = 0
Const SPALTE As Integer = 6
Dim rng As Range
Dim c As Range
Dim lngAvg As Long
Set rng = Range(Cells(SPALTE, 8), Cells(Rows.Count, 8).End(xlUp))
For Each c In rng.Cells
lngAvg = WorksheetFunction.Average(rng)
If c OBERGRENZE Then c = lngAvg
Next
Macht das ganze hier für Spalte H von Zeile 6 bis zur letzten befüllten Zelle.
Also ohne "Ende".
Viel Erfolg!
AW: Error 1004
05.10.2005 18:24:25
Daniel
Er zeigt mir bei der Zeile "lngAvg = WorksheetFunction.Average(rng)" im Code wieder die Fehlermeldung 1004 an. *heul*
Muss ich irgendwas von meinem alten Code beibehalten?
Anzeige
AW: Error 1004
06.10.2005 10:53:02
Galenzo
der Fehler tritt dann auf, wenn die letzte befüllte Zeile in einer Zeile kleiner als deine Startzeile 6 liegt. Hier eine Änderung, der das umgeht:

Private Sub CommandButton1_Click()
Const OBERGRENZE As Long = 150000
Const UNTERGRENZE As Long = 0
Const AB_ZEILE As Integer = 6
Const IN_SPALTE As Integer = 8
Dim rng As Range
Dim c As Range
Dim lngAvg As Long
Set rng = Cells(Rows.Count, IN_SPALTE).End(xlUp)
If rng.Row > AB_ZEILE Then
Set rng = Range(Cells(AB_ZEILE, IN_SPALTE), Cells(Rows.Count, IN_SPALTE).End(xlUp))
For Each c In rng.Cells
lngAvg = WorksheetFunction.Average(rng)
If c < UNTERGRENZE Or c > OBERGRENZE Then c = lngAvg
Next
End If
Set rng = Nothing
End Sub

ich habe das ganze in eine IF..THEN.. eingebaut, welche zunächst erstmal prüft, ob die Zeilennummer der letzten befüllten Zelle in Spalte H auch größer als 6 ist.
Ich hoffe, jetzt funktioniert's....
Viel Erfolg!
Anzeige
AW: Error 1004
05.10.2005 18:05:07
Daniel
Der Code soll eine eine Spalte durch gehen und jeden Wert der außerhalb der definierten Grenzen (Obergrenze und Untergrenze) liegt, soll durch den Durschnittswert ersetzt werden. Es darf normalerweise keine Ende in der Spalte stehen. Und der Durschnittswert muss dadurch jedes mal neu berechnen werden.
Daniel
AW: Error 1004
05.10.2005 18:11:46
Kay
Na dann ändere dies
While Cells(zeile, spalte).Value "Ende"
in
While Cells(zeile, spalte).Value ""
dann sollte das funzen
Kay
AW: Error 1004
05.10.2005 18:16:15
Daniel
Also wenigstens ist die Fehlermeldung weg. Aber er ändert immer noch keine Werte in der Spalte.
AW: Error 1004
05.10.2005 18:28:20
Kay
Ich sehe das so, solange die Zahlen von 0 bis 150000 liegen passiert da auch nichts.
Es wird ihm gesagt alles was kleiner als 0 und größer als 150000 dann mach was.
Das soll bestimmt anders sein oder ich bin auf dem falsche Dampfer.
Kay
Anzeige
AW: Error 1004
05.10.2005 18:33:15
Daniel
Er soll erst was machen wenn der Wert außerhalb den Grenzen liegt. Und er soll folgendes machen: Er soll den zu großen oder den zu kleinen Wert durch den Durschnittswert ersetzen.
Daniel
AW: Error 1004
05.10.2005 18:44:22
Kay
Also möchtest du den Wert der Zelle ruch die Anzahl der belegten Zellen teilen richtig, aber nur dann wenn der Wert kleiner "0" oder größer "150000" ist.
;-)
Kay
AW: Error 1004
05.10.2005 18:49:25
Daniel
Der Wert der in die Zelle geschrieben wird. Ist der Durchschnittswert der gesamten Spalte. Also von der Zeile 6 bis zur letzen gefüllten Zeile.
AW: Error 1004
05.10.2005 18:57:59
Kay
Sorry jetzt habe ich im Moment den Durchblick verloren.
Wie wäre es mit einer Beispieldatei?
Kay
Anzeige
AW: Error 1004
05.10.2005 19:09:06
Daniel
Hier ist die Datei. Der bestehende Code soll bei der G eingesetzt werden. Also alle Werte die über 150000 oder unter 0 liegen sollen mit dem Durschnittswert ersetzt werden.
https://www.herber.de/bbs/user/27240.xls
Daniel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige