Hallo Ihr VBA Profis,
ich habe hier ein kleines kniffliges Problem, bei dem ich einfach nicht weiter komme. Vielleicht kann mir ja jemand von euch helfen. Wäre echt klasse.
Basis ist ein Excel Tabellenblatt in welchem alle Informationen in der Spalte "A" stehen. Diese Daten müssen nach den unten beschrieben Randbedingungen konvertiert bzw. ergänzt werden.
Bei den zu konvertierenden Daten, handelt es sich um Auftragsinformationen für ein Traktor- Lenksystem. Zu fast jedem Acker werden Spurinformationen mitgegeben. Diese werden jedoch nur bei einer Punktdichte von mindestens sechs, vom Lenksystem akzeptiert. Ziel ist es die Auftragsdatei im Tabellenblatt1 zu durchsuchen und die Daten entsprechend anzupassen. In der Auftragsdatei kommen zahlreiche unterschiedliche Spurinformationen vor.
Eine Fahrspurinformation ist immer gleich aufgebaut.
<LSG A="5" B="3m Spur Hecke"> |
|
<PNT A="2" C="49.126109" D="8.740531"></PNT> |
<PNT A="2" C="49.126430" D="8.739091"></PNT> |
</LSG> |
|
|
|
<LSG A="5" B="3m Spur Hecke, Weg, Oben"> |
<PNT A="2" C="49.127741" D="8.739521"></PNT> |
<PNT A="2" C="49.127748" D="8.739689"></PNT> |
<PNT A="2" C="49.127656" D="8.740370"></PNT> |
<PNT A="2" C="49.127569" D="8.740995"></PNT> |
<PNT A="2" C="49.127555" D="8.741030"></PNT> |
<PNT A="2" C="49.127454" D="8.741045"></PNT> |
<PNT A="2" C="49.126145" D="8.740630"></PNT> |
<PNT A="2" C="49.126111" D="8.740523"></PNT> |
<PNT A="2" C="49.126430" D="8.739091"></PNT> |
</LSG> |
|
|
|
Der Start einer neuen Spur (A-B Kontur) beginnt immer mit <LSG A=“5“…… und das Ende der Spurkoordinaten ist immer </LSG>.
Nun gilt es zu prüfen, ob sechs oder mehr Koordinaten hinterlegt sind. Eine neue Koordinate beginnt immer mit <PNT A=“2“…… und endet mit </PNT>.
Sollten weniger als sechs Punkte vorhanden sein, gilt es, diese aufzufüllen. Wobei die erste und letzte Koordinate der vorhanden nicht verändert werden darf. Dies geschieht, wenn man die Nord- und Ost-Koordinaten der Erste und der darauffolgende Koordinate addiert und anschließend durch zwei teilt. Unter dem „C“-Wert ist die Nord-Koordinate und unter dem „D“-Wert die Ost-Koordinate hinterlegt. Ein Rechenbeispiel ist hier:
Erste Koordinate: <PNT A="2" C="49.127741" D="8.739521"></PNT>
Zweite Koordinate: <PNT A="2" C="49.127656" D="8.740370"></PNT>
Rechnung C-Wert = (Wert „C1“+ Wert „C2“)/2
= (49,127741+49,127656)/2
C = 49.127699
Rechnung D-Wert = (Wert „D1“- Wert „D2“)/2
= (8.740370-8.739521)/2
D = 8,739946
Das Ergebnis, muss anschließend in eine neue Zeile geschrieben werden, welche zwischen den beiden Basiskoordinaten lag. Beispiel:
Erste Koordinate: <PNT A="2" C="49.127741" D="8.739521"></PNT>
Neue Koordinate: <PNT A="2" C="49.127699" D="8,739946"></PNT>
Zweite Koordinate: <PNT A="2" C="49.127656" D="8.740370"></PNT>
Wichtig hierbei ist, dass die Nachkommastellen auf sechs begrenzt sind
Dieser Schritt soll nun so oft durchgeführt werden, bis sich mindestens sechs Spurkoordinaten im aktuellen Pool befinden.
Ich sag schon mal 1000 Dank
Liebe Grüße
Oliver
|