Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA- Wert in benachbarte Zelle schreiben
#11
(22.08.2019, 14:20)WillWissen schrieb: Hi,

hast du denn rechts den Button "Attachment hinzufügen" angeklickt?

Nein, den hatte ich übersehen. :30:
Ist bearbeitet, Danke
Antworten Top
#12
Tja, wieder mal ein klassischer Fall von unzureichender Information durch den Fragesteller. Hättest du entweder gleich eine Beispielmappe gepostet oder zumindest den kompletten Code und nicht nur Fragmente, wäre alles klar gewesen.
Eine Function gibt einen Wert zurück und ist im Prinzip eine selbstgebastelte Formel. Und wie du bestimmt weißt, kann eine Formel niemals etwas in die Zelle daneben schreiben, sondern nur in die Zelle, in der sie steht.
Du kannst nun entweder eine "normale" Prozedur erstellen:

Code:
Sub Vergleich()
For j = 2 To 15
   For i = 0 To 100 Step 5
       If (Cells(j, 2) >= (i - 2.5)) And (Cells(j, 2) < (i + 2.5)) And (Cells(j, 1) < (i + 2.5)) And (Cells(j, 1) > (i - 2.5)) Then
           Cells(j, 3) = i
           Exit For
           
       ElseIf (Cells(j, 2) >= (i - 7.5)) And (Cells(j, 2) < (i + 7.5)) And (Cells(j, 1) < (i + 2.5)) And (Cells(j, 1) > (i - 2.5)) Then
           Cells(j, 3) = "halt"
           Exit For
           
       ElseIf (Cells(j, 2) >= (i - 2.5)) And (Cells(j, 2) < (i + 2.5)) And (Cells(j, 1) < (i + 7.5)) And (Cells(j, 1) > (i - 7.5)) Then
           Cells(j, 3) = i
           Cells(j, 4) = i + 5
           Exit For
       
       Else
           Cells(j, 3) = "Das war nix"
       
       End If
   
   Next i
Next j
End Sub
oder du erstellst eine zweite Function, welche dann in der zweiten Spalte ausgeführt wird:

Code:
Function compare_own2(max, min)
For i = 0 To 100 Step 5
   If (min >= (i - 2.5)) And (min < (i + 2.5)) And (max < (i + 2.5)) And (max > (i - 2.5)) Then
       Exit For
       
   ElseIf (min >= (i - 7.5)) And (min < (i + 7.5)) And (max < (i + 2.5)) And (max > (i - 2.5)) Then
       Exit For
       
   ElseIf (min >= (i - 2.5)) And (min < (i + 2.5)) And (max < (i + 7.5)) And (max > (i - 7.5)) Then
       compare_own2 = i + 5
       Exit For
   End If
Next
End Function

Soweit klar?
Und für das nächste mal: Gib von Anfang an alle Infos bekannt, dann erspart man sich das Geschreibsel und die viel Zeit.
Schöne Grüße
Berni
Antworten Top
#13
Nun...ich gelobe Besserung. Das war, wie eingangs geschrieben, mein erster Post hier und für mich stand fest, dass mein "Plan" funktionieren sollte.

Deine Lösung ist natürlich deutlich einfacher (vor allem funktioniert sie auch). Ein bisschen enttäuscht bin ich dennoch, dass ich das Vorhaben nicht mit einer einzigen Funktion umsetzen kann.

Danke für deine Hilfe und bei zukünftigen Fragen kommt gleich ein Beispiel mit dazu ;)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste