Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Leere Zellen in Spalte mit Mittelwert Füllen

Leere Zellen in Spalte mit Mittelwert Füllen
13.02.2017 21:08:13
Martina
Hallo,
ich habe eine kurze Frage. Ähnliche Beitraäge habe ich auch schon im Forum gefunden, komme aber nicht auf die Lösung.
Ich würde gerne, in den leeren Zellen zwischen zwei Werten in einer Spalte, den Mittelwert letzten ZElle mit Wert und der darüber liegenden Zelle bilden. Dieses Mittelwert soll dann in alle freien Zellen eingetragen werden, bis ein neuer Wert angegeben ist.
Hier ist mein bisheriger Code:
Sub LueckenFuellen()
Dim lgRow As Long
Dim lgZeile As Long
lgZeile = Cells(Rows.Count, 1).End(xlUp).Row
Do While lgRow  ""
lgRow = lgRow + 1
Cells(lgRow, 3) = Cells(lgRow - 1, 3)
Loop
End If
End If
Loop
End Sub
https://www.herber.de/bbs/user/111463.xlsm
Die zweite Schleife, die quasi den Mittelwert nur die nächsten Freien Zellen kopieren soll, gelingt mir nicht. Vielleich könnten mir hier jemand helfen.
Dankeschön, Martina

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leere Zellen in Spalte mit Mittelwert Füllen
14.02.2017 09:47:40
Max2
Hallo,
sei mir nicht böse aber dein Code ist Chaos und du solltest das ganze in einer Schleife ausführen.
Verschachtelte Schleifen bringen nur Probleme und Rechenzeit.
Ich verstehe auch nicht wirklich was du brauchst.
Wie werden denn die Zellen befüllt?
Dein Makro fügt lediglich Nuller in jede zweite Zelle ein...
Da kann es keinen Mittelwert geben.
Also Frage 1: Welche Werte kommen in jede zweite Zelle.
Frage 2: Dein Mittelwert ergibt sich also aus Zelle1 und Zelle0 dann aus Zelle2 und Zelle1..usw.?
Dein Code sagt bis Dato wirres Zeug:
Solange x kleiner y ist tue..
x = x + 1
wenn zelle leer dann
zelle = zelle + zelle - 1 geteilt durch 2
x = x + 1
Wenn zelle kleiner zellen Anzahl dann
Solange zelle + 1 Nicht nichts ist
x = x + 1
zelle = zelle - 1
*Solange
*Wenn
*Wenn
*Solange
Anzeige
AW: Leere Zellen in Spalte mit Mittelwert Füllen
14.02.2017 11:20:27
Antonia
Hi Max,
sorry für das Durcheinander. Hatte gestern abend noch Verschiedenes ausprobiert und das dann auch hier rein gepostet. Das macht natürlich so keinen Sinn.
Eigentlich möchte ich, wenn eine leere Zelle in einer Spalte auftaucht, diesen mit dem Mittelwert aus den beiden Zellen darüber füllen. In die weiteren leeren Zellen in diesem Bereich soll dann dieser Wert kopiert warden (bis zur nächsten Zelle, in der schon ein wert steht.
Bisher habe ich es nur geschafft, dass in alle leeren Zellen der Mittelwert der beiden darüberliegenden Zellen kopiert wird. Ich kann diesen Wert aber nicht in die nächsten leeren Zellen kopieren.
Sub LueckenFuellen()
Dim lgRow As Long
Dim lgZeile As Long
lgZeile = Cells(Rows.Count, 1).End(xlUp).Row
Do While lgRow 
https://www.herber.de/bbs/user/111475.xlsm
Hoffe, das macht nun mehr Sinn.
Liebe Grüße,
Martina
Anzeige
So vielleicht?
14.02.2017 13:47:46
Max2
Meinst du so?

Sub LueckenFuellen()
Dim lgRow As Long
Dim lgZeile As Long
Dim lmittel As Long
Dim lzahl_1 As Long
Dim lzahl_2 As Long
lzahl_1 = 0: lzahl_2 = 0:
lmittel = 0
lgZeile = Cells(Rows.Count, 1).End(xlUp).Row
Do While lgRow  1 Then
If IsEmpty(Cells(lgRow, 2)) Then
Cells(lgRow, 2) = lmittel
'Cells(lgRow, 2) = (Cells(lgRow, 2) + Cells(lgRow - 1, 2)) / 2
' dieser Wert soll dann in alle leeren Zellen bis zu zum nächsten wert in der  _
Spalte kopiert werden
Else
lzahl_1 = Cells(lgRow, 2)
lzahl_2 = Cells(lgRow - 1, 2)
lmittel = (lzahl_1 + lzahl_2) / 2
End If
End If
Loop
End Sub

Anzeige
AW: So vielleicht?
14.02.2017 14:14:35
Martina
Jaaaa, Super vielen dank. Genau das wollte ich machen.
Double statt Long
14.02.2017 15:33:17
Max2
Hallo, schön wenn es passt.
Mir ist gerade noch aufgefallen dass du folgende Variablen als Double
deklarieren solltest und nicht als Long:
lmittel As Double
lzahl_1 As Double
lzahl_2 As Double
sonst stimmen die Mittelwerte nicht, bzw. werden sie auf ganze Zahlen gerundet
AW: Double statt Long
15.02.2017 11:08:26
Martina
Hi Max,
stimmt, da hast du Recht. Vielen Dank für den Tipp!!
Gruß, Martina

367 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige