Microsoft Excel

Herbers Excel/VBA-Archiv

Abstandsmessungen | Herbers Excel-Forum


Betrifft: Abstandsmessungen von: Stephan
Geschrieben am: 29.12.2009 21:45:26

Hallo Profis,
brauch mal eure Hilfe!

Es soll grundsätzlich immer der Abstand zur letzten gleichen Zahl der selben Spalte (ab Zeile xx)
ermittelt werden. Ist dieser Abstand größer 12 wird eine 0 in Spalte 2 eingetragen, ansonsten
wird der Abstand zur vorherigen Zahl in der Zelle daneben geschrieben.
Die berechung sollte dynamisch beim eingeben der Zahl erfolgen, sollte dies ein Problem sein, so kann ich auch damit leben wenn diese beim verlassen der Zelle geschieht.

Siehe Beispiel:
https://www.herber.de/bbs/user/66877.xls

  

Betrifft: Abstandsmessungen zwischen Zahlen von: Stephan
Geschrieben am: 29.12.2009 23:42:25

Falls meine 1. Ausführung doch nicht so verständlic ist, hier nochmals ein Versuch mein Problem zu beschreiben:

Es werden versch. Zahlen in eine Spalte eingetragen. Beim eingeben der Zahl soll überprüft erden, ob es diese Zahl bereits in der Spalte gibt, ist dies der Fall soll in der Spalte daneben der Abstand zu vorherigen Zahl ermittelt werde.
Ich denke da an einen VBA Code, der die Zeile der vorherigen Zahl von der Zeile der aktuell eingegeben Zahl abzieht und das Ergbniss in der Zelle rechts davon ausgibt.
Am Beispiel währe dies bei der 8 (C8) in Spalte 1 der Fall. Diese gibt es bereits in der Zelle C6 deshalb soll nun in der Zelle neben der zweiten 8 die 2 stehen (8-6=29)

Anderes Beispiel: Die 46 wiederholt sich in Zelle C14 (Zeile 14). Die vorherige 46 steht in Zelle C10 (Zeile 10) Folglich 14 - 10 = 4
usw.

Bei der 99 in Zelle C21 erscheint eine "0", da der Abstand zur vorherige 99 in Zelle C7 (21 - 7 = 14) ist, also größer als 12.

Ich habe bereits hier im Forum nach ansätzen gesucht aber bin leider nicht fündig geworden. Würde mich sehr freuen wenn sich jemand kurz damit auseinander setzt und mir damit helfen könnte.

Vorab besten Dank.
Gruß
Stephan


  

Betrifft: AW: Abstandsmessungen zwischen Zahlen von: Josef Ehrensberger
Geschrieben am: 30.12.2009 00:04:28

Hallo Stephan,

direkt während der Eingabe geht nicht, auch nicht mit VBA.

Tabelle1

 CD
2Spalte 1Spalte 2
3  
410
550
680
7990
882
9250
10460
11252
12360
13252
14464
151560
16112
17365
1850
191564
201561
21990

Formeln der Tabelle
ZelleFormel
D4=WENN(ZÄHLENWENN($C$4:C4;C4)>1;WENN(ZEILE()-VERWEIS(2;1/($C3:C$4=C4); ZEILE(3:$4))>12;0;ZEILE()-VERWEIS(2;1/($C3:C$4=C4); ZEILE(3:$4))); 0)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4




Gruß Sepp



  

Betrifft: AW: Abstandsmessungen von: Reinhard
Geschrieben am: 30.12.2009 00:04:46

Hallo Stephan,

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zei As Long
On Error GoTo Fehler
Set Target = Intersect(Columns(3), Target)
If Target Is Nothing Then Exit Sub
If Target.Cells.Count <> 1 Then Exit Sub
Application.EnableEvents = False
Cells(Target.Row, 4) = 0
For Zei = Target.Row - 1 To 4 Step -1
   If Cells(Zei, 3) = Target Then
      If Target.Row - Zei <= 12 Then Cells(Target.Row, 4) = Target.Row - Zei
      Exit For
   End If
Next Zei
Fehler:
Application.EnableEvents = True
End Sub

Gruß
Reinhard


  

Betrifft: AW: Abstandsmessungen von: Stephan
Geschrieben am: 30.12.2009 13:08:10

Hallo Sepp, hallo Reinhard,
beide Lösungen super, Fuktioniert so wie ich es wünsche. Hoffe Ihr hattet nicht zuviel Arbeit damit!

Danke!

Gruß
Stephan