Forum: PC-Programmierung Zeichnen in Excel


von Robin F. (gehacktes)


Angehängte Dateien:

Lesenswert?

Nabend,

ich möchte automatisiert eine Absicherungsübersicht in Excel zeichnen.
Ziel ist es, aus einem Excel Dokument Informationen von Leitungen zu 
entnehmen (Leitungsnummer, Farbe der Leitung, Querschnitt und von 
welcher Komponente zu welcher Komponente das geht).
Es soll ein Absicherungspfad entstehen. Wie auf dem angehängten Bild zu 
sehen, ist links die Sicherungsbox und von den jeweiligen Pins 
(Sicherungen mit Infos) gehen dann Leitungen direkt zu Komponenten oder 
über Trennstellen auf Komponente. Die Leitungspfade sollen dann 
Informationen enthalten wie Querschnitt, Leitungsfarbe etc. (siehe 
ebenfalls Bild im Anhang).

Meine Frage hierzu ist nun, wie kann man sowas am besten automatisiert 
erstellen lassen?
Ich habe keine Idee wie ich immer die richtigen Positionen finde, wo 
jetzt ein Strich ziehen muss oder wo noch eine Komponente kommt. Bei dem 
Spenderdokument ist das Problem, ein Pfad von Sicherung zu Ende der 
Pfads ist nicht chronologisch mit Leitungsnummer aufsteigend. Es kann 
sein das ein Pfad von Sicherung zu Koppelstelle bsp. Leitungsnummer 100 
hat und dann 102 geht erst weiter zu der Zielkomponente.
Konkret, wie würdet ihr hier an diese Aufgabe ran gehen? Ich brauche nur 
einen Denkanstoß wie man die Navigation im Absicherungsbaum machen kann, 
das ich immer weiß wo ich was einfügen muss bzw. wie lang der Pfad sein 
wird.

Umsetzung kann per Excel Makro, C# oder Python (die Sprachen beherrsche 
ich) geschehen.
Ich hoffe das ich mein Problem einigermaßen rüberbringen konnte.

Danke vorab und beste Grüße
Robin

: Bearbeitet durch User
von PittyJ (Gast)


Lesenswert?

Gibt es keine richtigen Programme dafür?

Kollegen nehmen z.B. Altium für Platinen und EPlan für Schaltkästen.

Da die Anwendung wohl nicht für den Hobbybereich gedacht ist, sollte man 
für so etwas auch ein passendes Werkzeug nehmen und nicht Excel.
Selbstgestrickte Excel Lösungen fliegen einen doch alle Nase lang um die 
Ohren, weil die Grenzen von Excel erreicht werden.

von Wühlhase (Gast)


Lesenswert?

Excel ist wahrlich das am häufigsten mißbrauchte und für völlig fremde 
Zwecke zurechtvergewaltigte Programm, daß die Welt jemals gesehen hat.

Excel jetzt auch als Schaltplaneditor zu mißbrauchen, ach du grüne 
Neune...

Laß dir von deinem Chef eine Lizenz von WSCAD oder Eplan besorgen. Aber 
mit diesem Rumgefrickel verlierst du doch sofort dein Gesicht vor jedem.

von c-hater (Gast)


Lesenswert?

Robin F. schrieb:

> Meine Frage hierzu ist nun, wie kann man sowas am besten automatisiert
> erstellen lassen?

Man schreibt das entsprechende Programm dafür. Entweder ein externes, 
das über die Automatisierungsschnittstelle mit Excel kommuniziert oder 
halt intern, direkt in Excel mittels des eingebauten VBA.

Bei dieser primitiven Aufgabe mit fest umrissenem Funktionsumfang würde 
ich sicher VBA wählen. Erspart das Hantieren mit einem zusätzlichen 
Programm und ggf. auch noch dessen Abhängigkeiten.

> Ich habe keine Idee wie ich immer die richtigen Positionen finde, wo
> jetzt ein Strich ziehen muss oder wo noch eine Komponente kommt.

Dann lerne Programmieren, was sonst? Die konzeptionelle Lösung dieser 
Probleme ist völlig unabhängig von der verwendeten Sprache in jedem Fall 
zu leisten. Das ist halt, was Programmieren ausmacht: Zu einer gegebenen 
Aufgabe ein Konzept zur Lösung zu finden und dies dann mit den Mitteln 
der gewählten Sprache umzusetzen.

von Ich (Gast)


Lesenswert?

Wühlhase schrieb:
> Excel ist wahrlich das am häufigsten mißbrauchte und für völlig fremde
> Zwecke zurechtvergewaltigte Programm, daß die Welt jemals gesehen hat.

Bei dem Aufwand von Genehmigungsverfahren um in der Firma eine weitere 
Software installieren zu dürfen, ist das ja nicht verwunderlich. Excel 
gibt es eben überall.

von Robin F. (gehacktes)


Lesenswert?

Hallo,

ich arbeite für einen riesigen Konzern wo für so gut wie alles EXCEL 
verwendet wird (natürlich gibt es auch hunderte andere Programme aber 
spätestens bei Exports landen wir wieder bei EXCEL).
Das man Schaltpläne in EPlan, Altium, Eagle, EB-Calbe oder weitere Tools 
erstellen kann ist mir durchaus bewusst.
Es wird aber verlangt diese Übersicht in EXCEL zu erstellen.

Vielleicht noch etwas mehr Hintergrund. Wir erstellen Leitungsstränge in 
einer Software welches ein XML Format am Ende ausgibt. In dieser XML 
Datei steckt eine Wirelist und BOM (build of material) welches in EXCEL 
ausgegeben wird.
In diesen beiden Listen finde ich alle Informationen über die Leitungen 
und Komponenten.
Aus diesen Listen sollen dann alle Absicherungsrelevanten Leitungen (zu 
finden anhand von Potenzialen) in die Absicherungsübersicht wie im Bild 
zu sehen, dargestellt werden.

c-hater schrieb:
> Man schreibt das entsprechende Programm dafür.

Danke für den wirklich konstruktiven Vorschlag. Darauf bin ich auch 
schon gekommen.

c-hater schrieb:
> Dann lerne Programmieren, was sonst?

Programmieren kann ich, ich suche nur einen Weg wie man so eine 
grafische Darstellung elegant und universell erstellen kann.
Ich habe keine Idee wie ich an die Sache ran gehe.

Da ich so eine Wirelist bzw. BOM hier nicht zeigen kann glaube ich war 
es nicht so die beste Idee hier allgemein zu fragen.
Ich versuche mich erstmal und melde mich wenn ich weiter gekommen bin 
und dann nochmal konkrete Fragen habe.

von c-hater (Gast)


Lesenswert?

Robin F. schrieb:

> BOM (build of material)

Das Akronym wird normalerweise expandiert zu "bill of materials"...

> c-hater schrieb:
>> Dann lerne Programmieren, was sonst?
>
> Programmieren kann ich

Offensichtlich kannst du das eben nicht. Sonst bräuchtest du deine Frage 
nicht zu fragen.

> ich suche nur einen Weg wie man so eine
> grafische Darstellung elegant und universell erstellen kann.

Also nicht in Excel? Und das gezeigte Beispiel zeigt auch nicht den 
vollen Umfang der Aufgabe (abgesehen davon, dass die Liste in der 
gegebenen Struktur natürlich länger sein könnte)?

Ändert aber letztlich alles rein garnix. Nur vielleicht die Präferenzen 
für die Sprachwahl. Programmieren musst du den Scheiß immer noch selbst. 
Wenn du prinzipell programmieren kannst (wie du behauptest), sollte das 
kein Problem sein.

von oszi40 (Gast)


Lesenswert?

Robin F. schrieb:
> Es wird aber verlangt diese Übersicht in EXCEL zu erstellen.

Wo ist das Problem? Mach ausführlichen Excel-Lehrgang mit 
Makroprogrammierung und dann liest Du automatisch die Zahlen ein. Ist 
zwar wenig elegant, da nächste xls-Version schon wieder anders reagiert, 
sollte jedoch nach längerer Einarbeitung einigermaßen machbar sein.

von c-hater (Gast)


Lesenswert?

oszi40 schrieb:

> Wo ist das Problem? Mach ausführlichen Excel-Lehrgang mit
> Makroprogrammierung und dann liest Du automatisch die Zahlen ein. Ist
> zwar wenig elegant, da nächste xls-Version schon wieder anders reagiert,
> sollte jedoch nach längerer Einarbeitung einigermaßen machbar sein.

Du bist offensichtlich auch kein Programmierer. Die eigentliche Leistung 
ist nicht, eine mehr oder weniger lange Liste von Zahlen einzulesen. Die 
eigentlich Leistung ist, die Struktur der Daten zu bestimmen. Und dann 
entsprechend zu verfahren.

Im gezeigten Beispiel ist das ganz klar ein Baum mit einem Root, 
eventuell einer Schicht "Branches" (die jeweils nur einen Ausgang haben) 
und einer zweiten Schicht mit den Blättern.

Der eigentliche Witz bei der Aufgabe ist, die Struktur der Daten auch 
für den allgemeinen Fall zu erkennen. Die könnte nämlich über das 
gezeigte Beispiel hinaus gehen. Da nix spezifiziert ist, kann man das 
nur, indem man ALLE Beispiele analysiert. Und ist selbst dann noch 
unsicher bezüglich zukünftiger Daten mit möglicherweise komplexerer 
Struktur.

Es fängt also damit an, zu analysieren, was die Quelle überhaupt liefern 
KÖNNTE. Dann geht es weiter damit, zu analysieren, was sie im 
konkreten Fall liefert. Also dieses beliebige Excel-Tabellen-Gedöhns zu 
parsen. Der Rest ist trivial. Aus der erkannten Struktur mit den 
eingelesenen Daten eine Grafik generieren. Und sei es mit den Mitteln 
von Excel selber, wie im Beispiel zu sehen.

von oszi40 (Gast)


Lesenswert?

c-hater schrieb:
> die Struktur der Daten zu bestimmen

Da hast Du sicher Recht. Auf den ersten Blick sah ich 2 Grafiken, die 
nur unterschiedliche Werte enthalten. Wenn die immer ähnlich sind, ist 
es ja mehr Fleißarbeit die Werte die Werte an die passende Stelle zu 
bringen UND ZU PRÜFEN auf Plausibilität. Wobei ich die 
Plausibilitätsprüfung weiter hinten platzieren würde, da sonst nach dem 
1.Fehler Stillstand herrscht.

von Zeno (Gast)


Lesenswert?

@TO
Überlege Dir für die einzelnen Felder/Feldbereiche (Geräte, 
Kabelquerschnitt, Farbe, Strom etc.) passende Präfixe die dann 
entsprechend Deiner XML-Liste aneinander gereiht werden. Die Präfixe 
beschreiben zusätzlich noch eine Art Objekt, so daß man das Ganze auch 
gut programmtechnisch umschreiben kann. Das Objekt speichert z.B. den 
Value, die Farbe und Informationen zum Rahmen um den Bereich.
Für jeden Pfad wird eine Liste erstellt in der die Objekte der Reihe 
nach aufgeführt sind. Diese Listen werden dann z.B. per VBA in 
formatierte Zellenbereiche/Zellen umgesetzt.

von Peter M. (r2d3)


Lesenswert?

Hallo Robin F.,

Robin F. schrieb:
> Nabend,
>
> ich möchte automatisiert eine Absicherungsübersicht in Excel zeichnen.
> Ziel ist es, aus einem Excel Dokument Informationen von Leitungen zu
> entnehmen (Leitungsnummer, Farbe der Leitung, Querschnitt und von
> welcher Komponente zu welcher Komponente das geht).
> Es soll ein Absicherungspfad entstehen. Wie auf dem angehängten Bild zu
> sehen, ist links die Sicherungsbox und von den jeweiligen Pins
> (Sicherungen mit Infos) gehen dann Leitungen direkt zu Komponenten oder
> über Trennstellen auf Komponente. Die Leitungspfade sollen dann
> Informationen enthalten wie Querschnitt, Leitungsfarbe etc. (siehe
> ebenfalls Bild im Anhang).

Du siehst Dein Problem primär als Zeichenproblem. Ich sehe das 
Zeichenproblem als einfach an, bin mir aber nicht über die graphische 
Struktur im Klaren. Da Du von "Absicherungsübersicht" schreibst, dachte 
ich an eine Liegenschaft mit zentralem Stomanschluss, Unterverteilung 
auf Häuser mit eigenen Sicherungskästen, eventuell etagenweise 
Absicherung.

Ein solches Problem würde durch eine Baumstruktur beschrieben werden 
können, wobei die Sicherungskästen als Knoten dargestellt werden können 
und die Kanten die Leitungen.

Wenn ich aber auf Deine Grafik gucke und da so Begriffe wie "SI 5A ATO" 
lesen, muss ich davon ausgehen, dass es sich hier um einen Schaltplan 
eines Fahrzeugs handelt, wie ich ihn auch im Elektroband des 
Reparaturleitfadens meines Oldtimers finde - und das ist eigentlich die 
Beschreibung eines Kabelbaums, der bei meiner PKW-Batterie beginnt.

Da gibt es aber hinter dem Sicherungskasten gefühlt nur noch Kabelstücke 
also eben auch Trennstellen, aber keine "Weichen" oder "Aufspaltungen" 
mehr.

Aus Deiner Darstellung wird aber nicht klar, welche graphische Struktur 
die Sicherungsbox(en)? und die Trennstellen haben.

Hier siehst Du, wie einfach es ist, eine vorhandene Baumstruktur als 
Grafik darzustellen:
https://www.macuser.de/attachments/bildschirmfoto-2020-01-21-um-06-59-28-png.283195/

Leitungsnummer, Farbe und Querschnitt ist nur Schmuck am Nachthemd und 
macht Dein Problem nicht schwierig.

Mach' Doch mal ein Beispiel ohne den Schmuck, aus dem man die 
Komplexität der Struktur ersehen kann!

: Bearbeitet durch User
von Robin F. (gehacktes)


Angehängte Dateien:

Lesenswert?

Hallo,

c-hater schrieb:
>> BOM (build of material)
>
> Das Akronym wird normalerweise expandiert zu "bill of materials"..

da hast du natürlich Recht.

c-hater schrieb:
>> c-hater schrieb:
>>> Dann lerne Programmieren, was sonst?
>>
>> Programmieren kann ich
>
> Offensichtlich kannst du das eben nicht. Sonst bräuchtest du deine Frage
> nicht zu fragen.

Gut das du es so gut beurteilen kannst. Ich wusste nicht das man 
automatisch nicht programmieren kann, wenn man eine Frage im Forum 
stellt weil man ein Denkanstoß oder Hilfe braucht.
Das ich nicht professionell oder besonders gut programmieren kann, mag 
sein aber ich verbitte mir die Unterstellung das ich nicht programmieren 
kann ohne das du meine Kenntnisse kennst...

Peter M. schrieb:
> Wenn ich aber auf Deine Grafik gucke und da so Begriffe wie "SI 5A ATO"
> lesen, muss ich davon ausgehen, dass es sich hier um einen Schaltplan
> eines Fahrzeugs handelt, wie ich ihn auch im Elektroband des
> Reparaturleitfadens meines Oldtimers finde

Richtig, es handelt sich um eine Absicherungsübersicht für PKWs.
Ich habe jetzt nochmal eine etwas komplexere Darstellung angehängt.
Wir starten von der HSB (Hauptsicherungsbox) wo einige große Verbraucher 
angeschlossen werden und gehen dann weiter zu andere Sicherungsbox(en) 
im Fahrzeug. Von dort aus werden die einzelnen Komponente abgesichert, 
was hier dargestellt werden soll.
Es gibt direkte Verbindungen von Sicherung zu Komponente, teilweise 
gehen wir auch über Trennstellen aber es gibt auch Splice (Weichen, wie 
du es nennst) wo mehrere Verbraucher über eine Sicherung abgesichert 
werden. Teilweise werden aber auch über Komponenten weitere Komponenten 
angeschlossen, die zu einem Absicherungszweig gehören.
In einem Fahrzeug gibt es ja mehrere hundert Komponenten, daher wird so 
eine Absicherungsübersicht nachher riesig.

Peter M. schrieb:
> Aus Deiner Darstellung wird aber nicht klar, welche graphische Struktur
> die Sicherungsbox(en)? und die Trennstellen haben.

Ich weiß nicht was du für eine Struktur du bei den Trennstellen meinst. 
Aber wir haben zwei Stecker die sich im Leitungsstrang koppeln um 
beispielsweise zwei Fahrzeugbereiche zu verbinden (bsp. Innenraum und 
Tür) oder eine Komponente in einem Leitungsstrang.

: Bearbeitet durch User
von Peter M. (r2d3)


Lesenswert?

Hallo Robin F.,

Deine eigene Systematik scheint nicht ganz konsequent zu sein.
HSB/S3 geht zum VOSI-Gehäuse ohne Pin.
Wie wird so etwas in den Datensätzen abgebildet?

Kann es einen Baum von Sicherungskästen geben, genauso wie es auf einem 
Laufwerk einen Baum mit Ordnern und Unterordnern gibt?

Ein Baum hat in meiner Vorstellung nur eine Wurzel. Bei Dir sieht es ein 
bisschen so aus, als ob VOSI auch eine Wurzel ist.
Wenn das nicht so ist, hätte ich VOSI rechts von der Hautsicherungsbox 
gezeichnet.

Die Verbindung zwischen TCC.1/KS1 und TCC.2/KS2, wird die auch als 
Datensatz angeliefert?
Oder muss man die Verbindung aus der Benamung ableiten?

VOSI/A3 geht ja gleich auf 3 verschiedene Steckverbindungen, auf XX, TZ 
und STG. Wird diese Verbindung über drei Datensätze beschrieben oder 
gibt es einen Sonderdatensatz?

Der Stromwert ist in Deinen Quelldatensätzen nicht enthalten. Ergibt der 
sich zwangsläufig aus den Leitungsquerschnitten oder kann es bei 
gleichem Querschnitt unterschiedliche Werte geben?

Gibt es auch "Steckerweichen"? Bei der Verbindung zwischen KS_VO und 
KS_V01  gibt es ja eine 1:1-Verbindung. Könnte es auch links eine großen 
Buchse geben und rechts drei kleine Stecker, die in die große Buchse 
gesteckt werden?

Wenn das alles geklärt ist, kann man sich eine (Baum-)Struktur 
überlegen, die allen Schaltvarianten Rechnung trägt.

Im ersten Schritt baut man aus den einzelnen Datensätzen die 
Baumstruktur auf. Da Deine Liste mit der Anordnung der Kabel ja nicht 
dem Wachstum eines Baums folgt, werden sich beim Zusammenbau des Baums 
Einzelbäume bilden, die  verbunden werden müssen, sobald die Datensätze 
abgearbeitet werden, die das Bindeglied darstellen.

Im zweiten Schritt kann man dann den Baum zeichnen.

Eine Möglichkeit in Excel besteht darin, in VBA den Variablentyp 
"Collection" zu verwenden. In die Collection nimmt man dann eigene 
komplexere Datentypen auf, die man selber definiert.

: Bearbeitet durch User
von Val D. (valeri_d)


Lesenswert?

Robin F. schrieb:
> Das ich nicht professionell oder besonders gut programmieren kann, mag sein aber 
ich verbitte mir die Unterstellung das ich nicht programmieren kann ohne das du 
meine Kenntnisse kennst...

Sei bitte nicht sofort auf 180. Gemeint wurde, dass alleine die 
Fragestellung inhaltlich so ist, dass du keine Vorstellung hast, wie wie 
man das umsetzt, obwohl wie du sagst - du kannst programmieren. Oder 
nach deiner Wortwahl - du beherrscht die Sprachen. Wenn man mit so einer 
Eigenbewertung einsteigt, soll man auch die Kritik verkraften können.

Und zweitens, die Bereitschaft bei Menschen ist und soll so sein - sehr 
begrenzt, etwas zu machen, was in einem großen Konzern zugutekommt. 
Kostenlos. Keiner möchte die Arbeit für dich und den Konzern erledigen, 
wo du arbeitest. Und einige haben dir schon sehr viele Anhaltspunkte 
geliefert.

Auch ich werde nur sehr oberflächlich sein. Wenn du möchtest, dein 
Konzern kann jeden von uns beauftragen. Dann wird die Hilfestellung auch 
viel umfangreicher sein. Ok. Hier sind meine 5 Cent.

Du hast diese Aufgaben in diesem Prozess zu erledigen - die Sachen 
klingen banal, aber das ist eine mehr oder weniger Aufgaben-Struktur:

1. Automatisierung
Hier soll bestimmt werden, wie diese Applikation mit den Aufgaben 
umgeht.  Automatisch - von außen wird Excel gestartet und an ihn wird 
z.B. die einzulesende Datei übergeben. Oder manuell - nach dem Excel 
gestartet wurde und dort über einen GUI-Dialog die Datei ausgewählt 
wird.

2. Import Datei-Management
Ein Teil von oben – ein GUI-Dialog, um zu bestimmen, welche Datei 
eingelesen werden kann. Oder Dateien suchen und auswählen.

3. Daten Lesen
Datei auslesen und in eine Datenstruktur in Excel-Speicher ablegen. 
Dafür kann man die Klassen-Struktur benutzen oder die eingelesene 
XML-Struktur als globale Variable verwenden.

4. Engine
Eine Funktion aufrufen, die aus der Daten- oder XML-Struktur ein 
Worksheet in Excel graphisch erstellt. Dafür berechnet man, welche Daten 
zu welchen Zellen in welche Relation stehen. Z.B. dass manche Zellen die 
Boxen sind und Farben und Bezeichnungen haben. Manche Zellen werden zu 
Kanten für die Leitungen bestimmt usw.
Man kann sich die Zellen-Matrix auch als Pixel-Matrix vorstellen. Man 
kann sogar Zellen zu der Größe bringen, dass sie tatsächlich wie Pixel 
aussehen werden. Und dann "programmiert" man Excel-Sheet, als ob das ein 
Display ist. Es gibt im Internet Beispiele, wie man in Excel sogar 
graphische 3D Spiele programmiert. Ob das gut ist - ich bewerte das 
nicht.
Egal wie du es machst - wenn du nicht weißt, wie man die Zellen in Excel 
graphisch formatiert - im Internet gibt es viel dazu. Für Erste kann 
auch die eigebaute Möglichkeit in Excel nützlich sein, Makros 
aufzuzeichnen. Du Startest die Aufzeichnung, danach formatierst du dein 
Excel-Sheet und nach dem Stop kannst du dich vergewissern, was Excel 
Programmcode-artig so alles macht. Daraus baust du dann deine Funktion.

5. Ergebnis archivieren
Nach dem ein Excel-Worksheet erstellt worden ist, soll es evtl. auch 
archiviert werden. In einem bestimmten Archiv-Verzeichnis. 
Namens-Konflikt überwachen, denn die gleiche XML-Datei immer wieder als 
Input vorgesehen werden kann.

6. XML-Datei archivieren
Die XML-Datei soll evtl. in ein backup-Verzeichnis verschoben werden, da 
sie bereits erledigt wurde. Evtl. nach Datum umbenennen oder 
Unter-Verzeichnisse nach Datum erstellen. Denn hier kann ein Konflikt 
immer auftreten, wenn man die gleichnamige Datei immer wieder einliest. 
Das ist aber nur dann eine Aufgabe, wenn eine Automatisierung vorliegt 
und hier die Steuerung dafür vorgesehen werden soll. Sonst auf diesen 
Schritt

Viel Erfolg bei der Umsetzung

: Bearbeitet durch User
von Wühlhase (Gast)


Lesenswert?

Robin F. schrieb:
> Hallo,
>
> ich arbeite für einen riesigen Konzern wo für so gut wie alles EXCEL
> verwendet wird (natürlich gibt es auch hunderte andere Programme aber
> spätestens bei Exports landen wir wieder bei EXCEL).
> Das man Schaltpläne in EPlan, Altium, Eagle, EB-Calbe oder weitere Tools
> erstellen kann ist mir durchaus bewusst.
> Es wird aber verlangt diese Übersicht in EXCEL zu erstellen.

Scheiße...und da nenne einer KMUs nochmal Klitschen oder Bastelbuden. 
Gerade in einem Konzern, wo ein paar k€ für Lizenzen im Rauschen 
untergehen oder die Lizenzen für Alternativprogramme mit hoher 
Wahrscheinlichkeit schon irgendwo da sind, würde ich so ein Gefrickel 
nicht erwarten.

Aber seis drum:
Da du dir selbst über die Sprachwahl noch unsicher warst (und da muß ich 
meinem Vorredner Recht geben, wenn man halbwegs programmieren kann und 
die Sprachen etwas kennt, sollte wenigstens diese Auswahl nicht schwer 
fallen) eine Empfehlung: Wenn du das in Excel machen willst, dann mach 
das in VBA.

Ja, VBA ist eine häßliche Sprache, der VBA-Editor in MS Office nicht 
gerade das Besten, aber für Excelautomatisierung kommt man damit am 
schnellsten sehr weit. Auch der Makrorekorder ist sehr hilfreich wenn 
man mal nicht weiß, wie man etwas umzusetzen hat: Einfach machen, und 
dann das Ergebnis vom Makrorekorder nachvollziehen und verstehen.
Außerdem habe ich bisher immer noch zu jeder Frage, die ich zu VBA 
hatte, sehr schnell irgendeinen Foreneintrag gefunden.

von Thomas_jhfd (Gast)


Lesenswert?

Ich würde das vorzugsweise in VBA machen, weil man damit innerhalb Excel 
am schnellsten experimentieren kann.

Ist Excel absolut gesetzt, oder kann es auch ein anderes gängiges Office 
Programm wie Visio sein?
In Visio wäre das sehr viel eleganter und einfacher umzusetzen.

Gibt es eine endliche Zahl an möglichen Kombinationen für einen Pfad?
Dann mach dir dafür Vorlagen.
Diese dann kopieren und bedaten.

Gibt es einen Pfad mit Maximalausbau, und alle anderen sind Untermengen 
davon?
Dann erstelle eine Klasse mit allen Items und deren Attributen für den 
Vollausbau.
Fülle ein Dictionary mit einem Objekt dieser Klasse für jeden Pfad.
Sammle alle Properties zu jedem Objekt.
Zum Schluss marschierst du durch das Dictionary und baust jeden Pfad 
einzeln zusammen.

von Val D. (valeri_d)


Lesenswert?

Thomas_jhfd schrieb:
> Ich würde das vorzugsweise in VBA machen, weil man damit innerhalb Excel
> am schnellsten experimentieren kann.
>
> Ist Excel absolut gesetzt, oder kann es auch ein anderes gängiges Office
> Programm wie Visio sein?
> In Visio wäre das sehr viel eleganter und einfacher umzusetzen.
Visio braucht zus. Lizenzen. Sehr gute Ergebnisse kann man auch mit 
PowerPoint machen. Denn dort gibt es auch sehr gute vba-Unterstützung + 
sehr guter Umgang mit graphischen Canvas und man kann z.B. eine 
automatisch erstellte Folie auch in pdf-Datei exportieren. Für 
Dokumentation-Zwecke kann das sehr nützliche Sache sein.

von Experte (Gast)


Lesenswert?

Robin F. schrieb:
> Ich habe keine Idee wie ich an die Sache ran gehe.

Im Prinzip ist dat nicht weiter schwer.

Da allerwichtigste im Vorfeld: Das Regelwerk wie die "Zeichnung" 
aussehen soll, muss absolut wasserdicht definiert sein. Es müssen alle 
Randbedingungen und Sonderfälle definiert sein. Hier passieren meiner 
Meinung nach die meisten Fehler, wie auch in Deinem Eingangspost: Die 
drei Zeilen und die Zeichnung passen nicht zusammen.

Schritt eins ist dann das erstellen eines internen Baums oder mehrere 
Teilbäume, so dass Du eben die logische Struktur, was an was hängt, als 
Datenstruktur vorliegen hast. Hier ist es ja pipi-einfach: Boxen sind 
Knoten, und Leitungen sind Kanten.

Der zweite Schritt wird sein, bestimmte Knoten-Kante-Knoten Tripel zu 
einem Knoten zusammen zu führen. In Deinem Beispiel das TCC.1 und TCC.2.

Der dritte Schritt ist das logische Layout zu erstellen. Logisch 
deswegen, weil es erstmal nur um die Positionen relativ zueinander der 
Knoten geht. Es wird immer mindestens einen Knoten geben, der oben links 
hin soll. Dann scheint es noch weiter Knoten (die Sicherungsboxen?) zu 
geben, die immer in der ersten Spalte sein sollen. Gibt es mehrere, 
müssen die nach irgendeinem Kriterium sortiert werden.
Danach kommt im Prinzip eine Rekursion. Für jeden Abgang eines Knotens 
in der ersten Spalte gibt es wiederum eine Liste von Knoten in der 
zweiten Spalte die auch wieder sortiert werden müssen. So geht es immer 
tiefer in den Baum.

Der vierte Schritt ist dann eben, sobald die logischen Positionen der 
Knoten ausgerechnet wurden, diese Knoten in virtuelle Grafikobjekte zu 
überführen. D.h. in einem virtuellen Raster bekommen die Knoten konkrete 
virtuelle Rechtecke, Linien und Textboxen. Hier wird berechnet wie groß 
die Boxen sein sollen und von wo nach wo Linien gezogen werden sollen 
etc.

Der letzte Schritt ist dann auch trivial: Die virtuellen Grafikobjekte 
in einem Excel-Arbeitsblatt zu zeichnen.

That's it.

Eigentlich wie immer, einfach: Die Aufgabe solange in Teilaufgaben 
zerlegen, bis sie trivial werden.

von Experte (Gast)


Lesenswert?

Ach so, die konkrete Programmiersprache ist weitersgehend piepegal...

Zweckmäßig ist, wenn sie Excel ausgeben kann, irgendwie.

von Val D. (valeri_d)


Lesenswert?

Das ist toll (ironie), wie solche Menschen wie du, Robin F. sich so 
benehmen. Du brauchst Unterstützung, du stellst die Frage, Menschen 
diskutieren, überlegen was, schlagen was, schreiben lange Texte mit 
Ideen  und dir ist ein einfacher "Danke" schon lästig zu sagen. So 
unfreundlich muss man nicht sein, aber es ist so wie es ist.

von c-hater (Gast)


Lesenswert?

Valeri D. schrieb:

> Das ist toll (ironie), wie solche Menschen wie du, Robin F. sich so
> benehmen. Du brauchst Unterstützung, du stellst die Frage, Menschen
> diskutieren, überlegen was, schlagen was, schreiben lange Texte mit
> Ideen  und dir ist ein einfacher "Danke" schon lästig zu sagen. So
> unfreundlich muss man nicht sein, aber es ist so wie es ist.

Naja, er wollte doch einen Link auf eine Webseite mit einem "Do what I 
want"-Button, den er nur noch anklicken braucht.

Hat keiner geliefert, also: Alles nur Idioten.

von Buddy haut den Lukas (Gast)


Lesenswert?

Da hat doch mal einer nen Raytracer in Excel geschrieben, jede Zelle=ein 
Pixel.

https://www.heise.de/newsticker/meldung/Raytracing-mit-Microsoft-Excel-Huebsche-Kugeln-statt-langweiliger-Zahlen-4507384.html


Also kannst du frei Zeichnen sogar in 3D, The Sheet is the new Canvas.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.