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

knifflige VBA-Aufgabe

knifflige VBA-Aufgabe
11.09.2007 11:33:55
Ben
Hi,
vielleicht kann mir hier jnd helfen, bin etwas ratlos. Ich habe folgende Tabelle:

3530	7401401	 a	T	6°36’25.6945"E	46°03’01.0049"N	1125.94
3530	7401401	 b	T	6°36’25.7630"E	46°03’01.0533"N	1125.64
3530	7401401	 c	T	6°36’25.8054"E	46°03’00.9099"N	1124.54
3530	7401402	 a	T	6°37’21.4613"E	46°01’48.1575"N	1108.5
3530	7401402	 b	T	6°37’21.7920"E	46°01’47.8673"N	1109.6
3530	7401402	 c	T	6°37’21.7911"E	46°01’47.8498"N	1109.6
3530	7401403	 a	T	6°38’31.9368"E	46°04’03.4712"N	1496.07
3530	7401404	 a	T	6°39’49.2134"E	46°00’25.0495"N	2004.06
3530	7401405	 a	T	6°40’04.6195"E	46°02’26.4720"N	1760.74
3530	7401405	 b	T	6°40’03.7112"E	46°02’26.3830"N	1767.34
3530	7401406	 a	T	6°41’50.1870"E	46°01’52.2297"N	2169.58
3530	7401406	 b	T	6°41’48.6426"E	46°01’51.6040"N	2169.08
3530	7401406	 c	T	6°41’49.6879"E	46°01’52.0326"N	2182.28
3530	7401407	 a	T	6°44’00.4881"E	45°59’59.7023"N	2527.13


Die Höhenwerte (Spalte ganz rechts) gleicher Aufnahmestellen (2.Spalte) sollen jeweils miteinander verglichen werden. Ist die Differenz zwischen den höchsten und dem niedrigsten Punkt an der gleichen Aufnahmestelle größer einem vorgegebenen Wert, so soll in der Reihe mit dem jeweils größten Höhenwert in eine hinten angefügte Zelle "Building" geschrieben werden.
Meine Versuche sind bis jetzt nicht besonders erfolgreich verlaufen. Im Moment kann ich nur überprüfen, ob es sich jeweils um die gleiche Aufnahmestelle handelt. Das habe ich so gelöst:


Do
If Cells(reihenzahl + 1, 2) - Cells(reihenzahl, 2) = 0 Then
Cells(reihenzahl, 9) = "gleich"
End If
reihenzahl = reihenzahl + 1
If Cells(reihenzahl, 2) - Cells(reihenzahl - 1, 2) = 0 Then
Cells(reihenzahl, 9) = "gleich"
End If
Loop Until reihenzahl = lastrow


Mein Problem ist, wie ich jeweils die Max und Minwerte bestimme, ohne den Zeilenbezug zu verlieren. Vielleicht geht das ganze ja ganz einfach, bin ein ziemlicher Neuling in VB. Sobald ich mit mehrdimensionalen Feldern rumprobiere, funktioniert irgendwie gar ncihts mehr.
Ich bin für jeden Tipp sehr dankbar.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: knifflige VBA-Aufgabe
11.09.2007 12:08:00
Reinhard2
Hallo,
gibt es denn pro Messtation jeweils einen eigenen Vorgabewert? Oder nur einen einzigen für alle Stationen? Du bräuchtest eventuell gar kein VBA. Wäre die Funktion:
=MAX(G2:G15) vielleicht hilfreich?
!! G2:G15 !! ist hier die Beispielargumentenliste oder Umgangsdeutsch, die Liste in der ein maximaler Wert aus vielen gesucht wird. Die Standard-Excel-Onlinehilfe hilft Dir sicherlich weiter.
Apropos; entsprechend gibt es noch die Funktion =MIN().
Gruß
Reinhard2

AW: knifflige VBA-Aufgabe
11.09.2007 12:17:56
Ben
Hi,
danke für die schnelle Antwort. Die Excelfunktion Max und Min habe ich mir auch schon angeschaut, aber ich weiß nicht genau wie man diese mit Variablen füttern kann. Das Problem ist ja, dass die Anzahl der an einer Messstation (Spalte 2) aufgenommenen Punkte jeweils variiert, nur mit Excelformeln ist das glaube ich sehr schwierig zu lösen. Man kann die Excelfunktionen ja mit Application. (z.b. Application.Min() auch in VB verwenden, aber gerade die Max und min Funktionen können, so glaube ich, nicht mit Variablen benutzt werden (oder ich weiß auf jeden Fall nciht wie es geht)
Der Vorgabewert ab wann "building" zugewiesen wird, wird für alle gleich vergeben.

Anzeige
AW: knifflige VBA-Aufgabe
11.09.2007 12:12:00
Rudi
Hallo,
dafür brauchst du doch kein VBA. Das kannst du mit Formeln lösen.
Minimum in H: {=MIN(WENN($B$2:$B$15=B2;$G$2:$G$15))}
Maximum in I: {=MAX(WENN($B$2:$B$15=B2;$G$2:$G$15;0))}
Bemerkung in J: =WENN(UND(I2-H2>0,2;G2=I2);"Building";"")
{} nicht eingeben, sondern Formel mit shift+strg+enter abschließen.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: knifflige VBA-Aufgabe
11.09.2007 12:26:00
Reinhard2
Hallo Ben,
muß Dich jetzt leider vertrösten, da ich ganz schnell weg muß. Ist Rudis Absatz i.O?
Gruß
Reinhard2

AW: knifflige VBA-Aufgabe
11.09.2007 12:34:00
Ben
Vielen Dank auch für deine Hilfe, muss mich echt nochmal intensiver mit den Excelformeln auseinandersetzen. Das ist das erste Mal, das ich Excel wirklich für etwas aufwendigere Arbeiten verwenden muss.
Viele Grüße
Ben

Anzeige
AW: knifflige VBA-Aufgabe
11.09.2007 12:31:00
Ben
Hi,
JUHU ! Super , vielen Dank, es funktioniert einwandfrei. Hätte nicht gedacht, dass man des echt nur mit Excelformeln hinkriegt. Bni gerade erst so richtig am Einsteigen in die Excelwelt.
Was bewirken denn die eckigen Klammern bei den Formeln?
Nochmal vielen Dank =)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige