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

VBA

VBA
03.01.2005 23:23:15
Uwe
Ich habe mal wieder ein Problem mit VBA und bräuchte eure Hilfe:
Ich habe im Bereich M8:M157 mehrere Werte, die = 0 sind.
Die Nullwerte beziehen sich auf den Bereich A8:A157 (z.B. Formel in Zelle M12: =wenn(A12="Text";0;1).
Der oberste Null-Wert im Bereich M8:M157 soll gefunden werden.
Im Feld A1 ist wiederum ein Wert, der dem obersten Null-Wert in der entsprechenden Zeile zugeordnet werden soll,
d.h. wenn z.B. M12 der oberste Null-Wert ist, dann kopiere A1 in A 12.
Dadurch wird der ursprüngliche Wert in A12 durch A1 überschrieben. Da sich der ursprüngliche Null-Wert (M12) von dem Wert in Spalte A (A12) abhängt, ändert sich dieser z.B. in „1“ und fällt bei der nächsten Suche weg.
Ich baue leider immer irgendwelche Schleifen ein. Ich bin schon fast am verzweifeln.
Ich hoffe, ich konnte mein Problem einigermaßen verständlich rüberbringen.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA
04.01.2005 02:29:48
Matthias
Hallo Uwe,
also, wenn ich dich richtig verstanden habe:
benutze eine Hilfszelle (bei mir: H1) mit folgender Formel:
=VERGLEICH(0;M8:M157;0)+ZEILE(M8)-1
Dann verwende folgende Formel in M8:
=WENN(ZEILE()=$H$1;A$1;WENN(A8="Text";0;1))
und kopiere die Formel bis Zeile 157 runter.
Ich hab auch lange getüftelt, aber das müsste es doch sein, oder?
Gruß Matthias
AW: VBA
Uwe
Hallo Matthias,
ich bin leider nicht weitergekommen. Trotzdem vielen Dank für deinen Tipp. Ich habe vergessen zu sagen, dass der Vorgang über eine Schaltfläche bzw. Makro laufen soll.
In der Zelle A1 ist ein Name hinterlegt, der sich nach jedem Zugriff ändern kann. In den Zellen A8, A23, A32 usw. steht zu Anfangs "Text". Dem "Text" ist die Kennzahl "0" zugeordnet. Die Kennzahl steht in der Zelle M8. Wenn in A8 nicht "Text stehen sollte, dann wird aus der Kennzahl eine "1". Für die Zuordnung der Kennzahl ist in M8 eine Formel hinterlegt(z.B. Formel in Zelle M8: =wenn(A8="Text";0;1).
Wenn ich also mehrere Zellen habe, in denen "Text" steht, dann habe ich auch mehrere Kennzahlen, die = 0 sind.
Über das Makro soll nun der oberste Nullwert gesucht werden. Hat das Makro den obersten Nullwert gefunden (z.B. M8), dann soll er in die entsprechende Zeile/ Zelle A8 den Namen aus A1 einfügen. Durch diesen Vorgang wird A8 überschrieben und aus M8 wird 1. Wird dieser Vorgang wiederholt, ist der nächste oberste Nullwert in Zelle M23 und A23 wird entsprechend überschrieben, usw. bis es keinen Nullwert mehr gibt.
Folgendes habe ich bereits ausprobiert, jedoch ohne Erfolg:
Dim r
Dim n

Sub Makro_7()
' zu vergleichenden Bereich definieren
Set r = Range("M8:M157")
' Suchen
For n = 1 To r.Rows.Count
If r.Cells(n, 1) = 0 Then
Range("A1").Select
Selection.Copy
Cells(n + 1, 1).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
GoTo Ende
End If
Next n
Ende:
End Sub

Ich hoffe, dass ich mein Problem etwas deutlicher als vorher geschildert habe.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige