3.5k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

ich bin noch nicht lange dabei und habe auch im Netz nichts gefunden, was mir helfen könnte.

Ich habe in meinem Makro folgenden Code hinterlegt, der auch funktioniert. Allerdings muss ich jede einzelne Zelle ansprechen.
Leider sind es dann 100 (!)...
Wenn ich Bezug nehme auf die Zellen z.B.("J15:J114"), um mir diese
mühsame Arbeit zu ersparen, dann erscheint eben die Fehlermeldung
'Typen unverträglich' Fehler 13

Kann mir da vielleicht jemand von den Experten weiterhelfen
?
Für jeden Tipp bin ich sehr dankbar.

Sub Makro1()
'
' Makro1 Makro

'POSITION 1

Do
'Zellen markieren
Range("I15").Select

If ActiveCell.FormulaR1C1 = 10800 And [b]Range("J15") = Range("N15") Then GoTo line2
[/b]
ActiveCell.FormulaR1C1 = ((ActiveCell.FormulaR1C1) - 100)


'Schleife bis der Wert passt
Loop Until Range("J15") = Range("N15")

line2:

18 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Michael,

für mich ist die Frage noch nicht klar.

Auf Basis der Zelle I15 mit dem Ausgangswert 10800 möchte ich gerne die Zellen J15 und N15
vergleichen


....soll nun verglichen werden,
- ob die Werte von J15 und N15 beide dem Wert aus I15 entsprechen
- ob einer der Werte also J15 oder N15 dem Wert aus I15 entspricht oder
- ob die Summe der Werte von J15 und N15 dem Wert aus I15 entspricht???

Sobald dann J15 und N15 passen....


.....was verstehst Du hier unter "passen"?
Eine Erläuterung anhand von Zahlenbeispielen wäre nicht schlecht.

...soll das Makro aussteigen


....vor dem Makroausstieg stellt sich doch die Frage, was bei einem positiven Vergleich passieren
soll, ohne ein Ergebnis wäre doch der Makrolauf umsonst??

Gruß
Rainer
0 Punkte
Beantwortet von
Hallo Rainer,

der Wert, der in der Zelle I15 ermittelt wird. (Beispiel = Wert 23) soll mit den Zellen J15 und N15
verglichen werden. Dieser Wert wird immer um den Wert 100 vermindert, bis 6400.

Wenn der Wert >=23 in Zelle J15 und der Wert <= 23 als in Zelle N15, dann "OK" und nächste Zelle.

Sollte das Ergebnis nicht in diesem Bereich liegen, kommt eine Meldung "Gewicht nicht möglich", dann nicht OK und auch hier nächste Zelle.

Meine Frage: Wie kann ich es schaffen, mit einer Schleife nicht jede einzelne Zelle anzusprechen, sondern das in einer Schleife zu handeln ? z.B. Schleife I15=I15+1, J15=J15+1 N15 = N15+1....bis Ergebnis da, dann nächste Zelle usw.


Anmerkung: Habe in meinem Beispiel nur "=" gesetzt, was nicht richtig ist
0 Punkte
Beantwortet von
Anmerkung: Der Ausgangswert 10800 wird immer um 100 gemindert.
Der ermittelt dann das Ergebnis mit einer Formel, wie hier angegeben, als Beispiel 23
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Michael,

jetzt ist das Chaos perfekt.

Bitte stelle eine Beispielmappe zur Verfügung, ohne dies kann ich Dir leider nicht helfen.

Du könntest die Mappe unter dieser Adresse ins Netz stellen und
den angebotenen Download-Link hier posten.

Gruß
Rainer
0 Punkte
Beantwortet von
Hallo Rainer,

die Details sind eigentlich hier nicht wichtig.

Meine Kernfrage lautet : Wie kann ich es in einer Schleife schaffen, die Zellen so zu behandeln, dass ich nicht immer jede einzelne Zelle ansprechen muss ?


Beispiel : NICHT I15 mit allen Anweisungen und was dazu gehört und dann die Zelle I16 behandeln, ebenfalls mit allen Anweisungen etc.

sondern: Schleife I15 = I15 + 1 nächste Zelle in der Schleife I16 = I16 + 1.
Und jedes mal in EINEM Block die gleichen Anweisungen dazwischen.
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Nun dann, tschüss Michael, hatte jedenfalls versucht Dir zu helfen.

Gruß
Rainer
0 Punkte
Beantwortet von
Hallo Rainer,

ja, vielen Dank für dein Engagement.

Gruß

I15
0 Punkte
Beantwortet von
Hallo Hajo,

hat geklappt. Vielen Dank !
...