Anzeige
Archiv - Navigation
1200to1204
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
Inhaltsverzeichnis

zelleninhalte mittels vba verketten

zelleninhalte mittels vba verketten
domda
Hallo zusammen,
Für den Austausch mit einem CAD Programm benötige ich folgende Funktionen und werde einfach durch zuwenig vba Kenntnisse nicht fündig. Vielleicht kann mir von euch jemand auf die Sprünge helfen.
Ich lese mittels eines aufgezeichneten Makros eine tabulatorgetrennte txt datei in excel ein:
Sub txt2xls()
' txt2xls Makro
Workbooks.OpenText Filename:="C:\test.txt", Origin:=xlMSDOS, StartRow:=1 _
, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
Array(3, 1), Array(4, 1)), TrailingMinusNumbers:=True
End Sub

Die excel Datei die ich dabei erhalte ist wie folgt aufgebaut:
Zeile 1: Enthält die Überschriften (Spalte A bis "X" --> je nach Zeichnung Verschieden)
Eine dieser Überschriften lautet "HYPERLINK", nun sollte ich in jeder Zelle ab Zeile 2 unter Hyperlink eine Verkettung der Restlichen Spalten wie folgt erstellen (automatisiert) .
Für Hyperlink Zelle in Zeile 2,3 bis z sollte es wie folgt aussehen
http://www.xy.com/index.php?TextfeldA1=TextfeldA2&Textfeld
B1=TextfeldB2&Textfeld X1=TextfeldX2
http://www.xy.com/index.php?TextfeldA1=TextfeldA3&Textfeld
B1=TextfeldB3&Textfeld X1=TextfeldX3
http://www.xy.com/index.php?TextfeldA1=TextfeldAz&Textfeld
B1=TextfeldBz&Textfeld X1=TextfeldXz
Bei "http://www.xy.com/index.php?" handelt es sich immer um einen reinen Text.
Bei den ganzen vba Fragmenten die ich finde erkenne ich die Zusammenhänge einfach nicht wenn alles Variabel bleiben muss.
Leider ist der Text "HYPERLINK" auch immer in einer anderen Spalte, somit muss beim Erstellen des Zelleninhaltes immer eine andere Spalte ausgenommen werden.
Beim dynamischen Link ist es zum Glück egal in welcher Reihenfolge die Werte eingegeben werden.
Weiters würde ich gerne die Datei am Ende der Routine wieder als txt tabulatorgetrennt speichern .
Ich weiß dass das schon an einen Programmierauftrag erinnert aber vielleicht suche ich ja auch einfach nach den falschen Begriffen.
Bin schon für jeden Tipp dankbar mit dem ich "weiterbasteln" kann.
Danke EUCH
Dominik

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: zelleninhalte mittels vba verketten
13.02.2011 10:16:14
Oberschlumpf
Hi Dominik
Wenn die Spalte Hyperlink nicht immer die selbe ist, dann sind ja auch die Spalten, aus denen sich der Hyperlink zusammen setzen soll, auch nicht immer die selben, oder?
Zeig mal bitte eine der txt-Dateien und die xls-Datei, um die es geht.
(natürlich kann es sich auch um Bsp-Dateien handeln)
Wichtig ist aber, dass innerhalb der xls-Datei noch mal genau erklärt wird, welche Spalten es genau sind, die zu einem Hyperlink werden sollen - und auch die Reihenfolge, wann welche Spalte, ist wichtig.
Ciao
Thorsten
AW: zelleninhalte mittels vba verketten
13.02.2011 11:58:27
Dominik
Hallo !
Anbei ein Tabellenbeispiel jedoch ohne irgendwelche vba gehversuche nur zur Veranschaulichung.
Bei Verwendeten CAD Programm handelt es sich um Autocad welches MS VBA unterstützt.
Wäre es da dann theoretisch auch möglich excel von acad mittels eines makros anzusprechen und das von extern laufen zu lassen?
Wichtig ist nur dass die erste Spalte über die Überschriften definiert sind (WEBADRESSE),
die weiteren Spalten sind von der Reihenfolge her beliebig, d.h. einfach A-Z aufsteigend.
Danke schon vorab
Dominik
https://www.herber.de/bbs/user/73517.xls
Anzeige
kleine Korrektur
13.02.2011 12:51:05
Oberschlumpf
Hi
Tausch diese zwei Zeilen
Cells(liRow, liHL).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=lstrHL, TextToDisplay:=lstrHL

aus gegen nur diese Zeile:
ActiveSheet.Hyperlinks.Add Anchor:=Cells(liRow, liHL), Address:=lstrHL, TextToDisplay:=lstrHL

Es funktionieren zwar beide Varianten, aber die untere ist die "sauberere" Lösung, weil ohne Select.
Befehle, die Select oder Activate beinhalten, verlangsamen den Ablauf eines Makros.
Und daher sollte man die Verwendung von Select + Activate vermeiden, was bei 95% aller Befehle, in denen man Select verwenden könnte, eh nicht erforderlich ist.
Ciao
Thorsten
Anzeige
Ablauf der Prozedur
13.02.2011 13:51:38
domda
Hallo Thorsten,
Funktioniert einwandfrei, super Danke!
Eine weitere Frage hätte ich noch ganz Grundlegender Art:
Wie kann man mehrere Sub hintereinander laufen lassen?
Solange ich jeden Teilschritt in eine eigenes Modul packe und seperat starte funkt. alles.
Weiters bin ich grade auf der Suche nach dem öffnen dieser txt Datei (über excel) von einem anderen CAD Programm aus.
Der ganze Ablauf sieht wie folgt aus:
Im CAD Programm wird mit einer Vielzahl von Objekten gearbeitet welche Informationen enthalten....,
diese Informationen kann ich über diese txt Schnittstelle ausgeben und wieder einlesen.
Folgender Ablauf sollte sein:
1)Durch Aufruf eines Buttons starte ich die Ausgabe welche die Herstellerdatenexport.txt (o.ä.) erstellt.
2)Als nächsten Schritt starte ich dieses Vba MAkro welches folgendes erledigen muss:
- Öffnen der txt Datei mittels Excel (muss nicht sichtbar erfolgen muss nur meine rohe txt datei (tabstop getrennt) einlesen (s.o.)
- Austausch der Texte in der Hyperlink Spalte
- Schließen und Speichern der Datei als txt (wie bereits importiert)
3.)starten des Einleseprozesses der txt Datei -- Dadurch wird mir der Hyperlink wieder zurückgeschrieben
Der Punkt 2 sollte völlig eigenständig sein und im CAD Prog. gleich funkt. wie in anderen MS Produkten.
Danke schon vorab für deine Hilfe
Dominik
Anzeige
AW: Ablauf der Prozedur
13.02.2011 18:09:40
Oberschlumpf
Hi Dominik
mehrere Subs hintereinander:
hier ein Grundkonzept
Sub Makro1()
MsgBox "Makro 1 wurde gestartet"
Makro2 'die Eingabe des Makronamens startet ein Makro mit eben genau dem Namen
End Sub

Sub Makro2()
MsgBox "Makro2 wurde aus Makro1 heraus gestartet."
End Sub

Öffnen der txt-Datei aus einem CAD-Programm:
Dazu kann ich leider nix erklären, da ich kein einziges CAD-Programm kenne.
Die Punkte 1 - 3 funktionieren nur in Excel-VBA, bzw. zumindest ich könnte es nur in Excel programmieren, weil, wie gesagt, ich kein CAD kenne.
Ciao
Thorsten
Anzeige
AW: Ablauf der Prozedur
13.02.2011 22:29:37
domda
Danke für Info!
Werd unter der Woche mal ein wenig basteln ;-)
Ciao
Dominik

329 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige