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

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

Nein, den hatte ich übersehen. :30:
Ist bearbeitet, Danke
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
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 ;)
Top


Gehe zu:


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