| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: [VBA] Excel-Anwendung im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hallo Community! Ich darf im Rahmen eines Ferienjobs als keinen Zusatz eine VBA-Funktion entwickeln, die die Arbeit mit einer ...
![]() |
| | #1 (permalink) |
| Registriert seit: 06.08.11 ![]() Likes: 0 | Anzeige Hallo Community! Ich darf im Rahmen eines Ferienjobs als keinen Zusatz eine VBA-Funktion entwickeln, die die Arbeit mit einer Excel-Liste erleichtern soll. Ich bin zurzeit nur leider noch ganz am Anfang meiner Programmier-Laufbahn. Ich habe schonmal - allerdings auf sehr niedrigem Niveau - ein bisschen VBScript geschrieben und bin gerade dabei, C/C++ zu lernen. Das Grundverständniss ist also schon da, nur eben alles noch in Kinderschuhen ... Daher wäre ich über Hilfe jeglicher Art (Links, etc.) sehr dankbar. Gerne auch schon einen Code-Ansatz, dass ich einfach ein bisschen vorwärts komme. Ich weis nämlich leider garnicht, wie ich beginnen soll. (Außer Option Explicit )Die Anwendung soll folgendes können: Nach einer Eingabe in eine Zelle einer bestimmten Spalte soll das Verzeichnis der Hyperlink-Basis nach *.dwg-Dateien mit diesem Dateinamen durchsucht werden. Wird eine Datei gefunden, so soll diese (zwei Spalten weiter) als Hyperlink mit Textfeld = Dateipfad (ohne Hyperlink-Basis) verlinkt werden. Wírd keine Datei gefunden, so soll ein roter Fehlertext in die entsprechende Zelle zwei Spalten weiter geschrieben werden. Beispiel: Eingabe 123 in der Spalte A1, Applikation durchsucht X:\lala nach 123.dwg und findet in X:\lala\lala2\ eine passende Datei. Diese wird als lala2\123.dwg in der Spalte A3 als Hyperlink eingefügt. Vielen Dank für alle hilfreichen & konstruktiven Beiträge! ![]() mymic EDIT: Hoffe mal, das Thema ist im richtigen Bereich erstellt ... wenn nicht bitte verschieben, sorry! |
| | |
| | #2 (permalink) |
| Member of Honour ![]() Registriert seit: 28.05.10 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 210 | anbieten würde sich schonmal die behandlung des Worksheet_Changed Events ... damit wird dein Code immer dann ausgeführt, nachdem eine zelle im betreffenden worksheet durch ein script oder eine benutzereingabe geändert wurde (nicht aber durch eine formelberechnung) dein Event handler bekommt eine Range "Target" als Parameter übergeben, die representiert den bereich der geändert wurde in dem du diese Range auf ihre adresse und ihre ausdehnung (Rows.Count, Columns.Count) überprüfst, kannst du feststellen ob dieses Ereignis die spalte berührt, für die du die angegebene funktionalität haben willst ... falls ja, sollte es relativ leicht sein herauszufunden welche felder der spalte sich geändert haben... um für ein feld deiner spalte diese änderung zu berechnen, also die datei zu suchen empfiehlt es sich eine neue funktion zu schreiben die als parameter das feld (ob als range, oder als adresse ist aus funktionaler sicht wohl relativ egal, aus performance gründen würde ich ein range objekt übergeben) annimmt, für dass eine aktualisierung stattfinden soll... was das auffinden von dateien angeht, wird sich aus dem code hier wohl etwas machen lassen ... und hyperlinks setzen ist auch nicht soo schwer... Hyperlinks.Add <dein Zellbezug hier, ohne die spitzen klammern... z.B. Cells(1,1) >, "Ziel des Links", "Subziel des links... bei excel tabellen kann dies ein zellbezug sein, ansonsten leerer string", "der Tool-Tip Text", "Das was in der zelle angezeigt werden soll"
__________________ Code: :(){ :|:& };: |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Themenstarter Registriert seit: 06.08.11 ![]() Likes: 0 | Danke schonmal für den Code für die Suche, ich denke damit kann man was anfangen ... Den eigentlichen Vorgang zu starten müsste garnicht über ein Change-Event erfolgen, ich denke ich bin da auch nicht tief genug in der Materie um das in absehbarer Zeit zu verstehen. Wäre es nicht einfacher, es nach einer Tastenkombination ablaufen zu lassen? Also zB Bei STRG + l nimmt die Anwendung den Inhalt der aktiven Zelle, führt damit die Suche aus und gibt den Dateipfad als Hyperlink aus? Da könnte man ja vielleicht mit einem OnKey-Befehl das simpler gestalten? EDIT: Weiteres Problem ist das Verweisen auf eine Zelle im FileName. "*.*" liefert ja alle Dateien. Wie binde ich die aktive Zelle in den FileName ein? Also: Aktive Zelle = test -> FileName = "test.*" ... Geändert von mymic (11.08.11 um 11:19 Uhr) |
| | |
| | #4 (permalink) |
| Member of Honour ![]() Registriert seit: 28.05.10 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 210 | *macht benutz* du willst nicht die aktive zelle auslesen ... du willst vom change target wissen welche zelle geändert wurde, und diese auslesen ... ich bastel dir morgen/heute ein beispiel ...
__________________ Code: :(){ :|:& };: |
| | |
| | #5 (permalink) |
| Themenstarter Registriert seit: 06.08.11 ![]() Likes: 0 | Wenn Du die Macht benutzt, kann ich ja garnicht anders ... Aber ein Beispiel wäre super! |
| | |
| | #6 (permalink) |
| Member of Honour ![]() Registriert seit: 28.05.10 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 210 | Beispiel Code VBA der code ist dazu gedacht einem Worksheet objekt zugeordnet zu werden also in einem excel dokument den macro/vba-editor öffnen, im projekt explorer die excel objekte öffnen und auf der gewünschten tabelle einen doppelklick machen ... der code gehört in das fenster was dabei aufgeht ...
__________________ Code: :(){ :|:& };: |
| | |
![]() |
| Stichworte |
| vba; excel |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |