Hilfe bei der Erweiterung eines VBA-Codes
21.09.2024 13:27:03
yello74
ich scheitere leider an der Erweiterung eines bestehenden Makros und bitte daher hier um Hilfe.
Ziel ist es, aus einer Exceltabelle eine spezifizierte kml-Datei zu erzeugen, die dann auch ohne Fehler geladen wird.
Das Beispiel der Excel-Tabelle hänge ich hier an. https://www.herber.de/bbs/user/172329.xls
In dieser alten Excel-Datei (Beispiel.xls) ist ein Makro, das ich erweitern wollte. Das schaffe ich aber leider nicht, da mir da einige Kenntnisse fehlen. Ich möchte - wie erkennbar - nach Kontinenten sortiert Städte mit ihren Koordinaten und eine kurze Bescheibung eingeben können. Deshalb die Spalte "Folder". Zur Spalte "Range" kann ich nicht sagen, woher sie kommt, und was sie bewirkt. Sie scheint aber für die Anzeige der Städte im Programm nicht relevant zu sein. Dennoch möchte ich dieses Merkmal behalten, da es in der exprtierten Datei auftaucht, um keine Schwierigkeiten beim laden zu bekommen.
Das bestehende Makro funktioniert soweit. Es ist mit bei der Beispiel-Datei
Wie ich jedoch die Erweiterung um den Folder und die anderen benötigten - ständig wiederkehrenden Zeilen (z.B. der des Icon) - erzeugen kann - das ist für mich sehr langwieriges "Try & Error". Und hierfür würde ich mich über Hilfe sehr freuen.
Ich glaube, das es für einen versierten VBA-Experten gar kein so langer Code ist. (Meine ich ...)
Die fertige kml-Datei, nachdem das Makro durchgelaufen ist, soll dann so aussehen:
#?xml version="1.0" encoding="UTF-8"?§
#kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2"§
#Document§
#name§Bookmarks#/name§
#Folder§
#name§EUROPA#/name§
#Placemark§
#name§AMSTERDAM#/name§
#description§#![CDATA[Amsterdam City]]§#/description§
#LookAt§
#longitude§4.8896900000#/longitude§
#latitude§52.3740300000#/latitude§
#altitude§0.0000000000#/altitude§
#range§49190.6554370995#/range§
#/LookAt§
#Style§
#IconStyle§
#Icon§
#href§D:/Orte/data/bitmaps/bookmark.png#/href§
#/Icon§
#/IconStyle§
#/Style§
#Point§
#coordinates§4.8896900000,52.3740300000,0.0000000000#/coordinates§
#/Point§
#ExtendedData§
#Data name="isBookmark"§
#value§true#/value§
#/Data§
#/ExtendedData§
#/Placemark§
#Placemark§
#name§SIDNEY#/name§
#description§#![CDATA[Town of Sidney]]§#/description§
#LookAt§
#longitude§151.209900#/longitude§
#latitude§-33.865143#/latitude§
#altitude§0.0000000000#/altitude§
#range§165653.5462586893#/range§
#/LookAt§
#Style§
#IconStyle§
#Icon§
#href§D:/Orte/data/bitmaps/bookmark.png#/href§
#/Icon§
#/IconStyle§
#/Style§
#Point§
#coordinates§151.209900,33.865143#/coordinates§
#/Point§
#ExtendedData§
#Data name="isBookmark"§
#value§true#/value§
#/Data§
#/ExtendedData§
#/Placemark§
#/Folder§
#/Document§
#/kml§
Ich habe hier alle "" durch "#" und alle ">" durch "§" ersetzt, da mit ich den ganzen Code posten konnte. Das kann man im Editor ja wieder ändern. Das geht bestimmt auch geschickter, aber ich wusste mir nicht besser zu helfen. Sorry.
Im originalen Code sind dann auch noch Einzüge. Die dienen bestimmt zur Übersichtlichkeit. Die Einzüge konnte leider ich nicht darstellen. ("#" und "§" tauchen im Ziel-Code sonst nicht auf. Die Zeichen haben sich deshalb als Ersatz geeignet.)
Diesen Code habe ich - wie gesagt - als Export aus dem Programm erhalten, für das ich das neue Makro benötige. Es ist daher mein Ziel.
Ich würde mich riesig über Rückmeldungen freuen.
LG
Yello74
Anzeige