[Excel] Bestimmte Werte aus Zelle in txt-Datei übergeben

viking2001a

Grünschnabel
Hallo,
ich möchte folgendes Problem lösen.
Version Excel 2003 Betriebssystem Win7 und WinXP
Wie kann ich aus einer Arbeitsmappe mittels eines Mausklicks auf eine Zelle eine TXT Datei erzeugen lassen, welche auf einen festen Pfad gespeichert werden soll (c:\temp) mit der Namenskonvention abc.txt welche im Anschluss daran direkt geöffnet werden soll.

Dabei sollen die Informationen aus der der Excel Mappe (nur der Zeileneintrag der geklickten Zelle an die txt Datei mit Zeilenumbruch übergeben werden. Zusätzlich soll in der txt Datei als erster Wert immer der Begriff "Suche" stehen und es soll ein Zeilenumbruch nach jedem Wert sein.
Der zweite Wert (2-te Zeile) soll der Wert "Pop" sein.
Der dritte Wert soll Zusammengesetzt sein aus "Name="und der Wert "Maier"
Vergleiche das Ergebnis unten.

Der Klick erfolgt immer auf eine Zeile in Spalte A, die Inhalte kommen immer aus Spalte A und B für die jeweiligen Zeilen.

Beispiel der Tabelle:
Tabellenname = Tabelle1, 4 Spalten



Klick auf Zelle A2 "Rock"

Ergebniss:
die Datei abc.txt mit dem Aufbau:

Suche
Pop
Name=Maier


Wie kann ich das lösen?

Danke für Eure Hilfe!

viking2001a
 

Anhänge

  • Beispiel.JPG
    Beispiel.JPG
    38,6 KB · Aufrufe: 76
  • abc.txt
    23 Bytes · Aufrufe: 47
Zuletzt bearbeitet:
Versuche mal das hier:

Visual Basic:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Column = 1 Then

datei = FreeFile

Open "c:\temp\abc.txt" For Output As #datei

Print #datei, "Suche"
Print #datei, Cells(Target.Row, 1).Value
Print #datei, "Name=" & Cells(Target.Row, 2).Value

Close datei

End If

End Sub

Gruß Thomas
 
Zuletzt bearbeitet:
Hallo Thomas,

nun muss ich nochmal etwas unbedarft fragen.

Wie füge ich den Code in eine Excel Mappe ein.

Ich habe die Datei geöffent und drücke ALT + F11 und dann lande ich in ungeahnten Excel tiefen.

Vergleiche Modul.jpeg

Bin ich da richtig, und was muss ich nun tun?

Gruß viking
 

Anhänge

  • Modul.JPG
    Modul.JPG
    104,1 KB · Aufrufe: 66
Nein nicht in ein Modul sondern in die Tabelle in der die Daten stehen.

Ich gehe jetzt mal davon aus das die Daten in Tabelle 1 stehen, dann klickst du doppelt in dem Fenster auf eben diese Tabelle 1 und im dem Fenster dann in der rechten Auswahl auf "Workbook" und (sofern nicht gleich angezeigt) in der Linken auf "SelectionChange" und fügst dort den Code ein.

Die Zeilenumbrüche gehen beim Einfügen glaube ich verloren. Das ist ein bisschen fummelarbeit aber.

Gruß Thomas
 
OK Thomas,

das habe ich hinbekommen.

Jetzt fehlt mir nur noch das automatische Öffnen der erzeugten txt Datei.
Die Datei wird bei mir ja immer überschrieben, was ich auch so haben will.

Frage:
Kann man an den Code auch noch eine Ausführungsanweisung hinzufügen, damit die Datei danach geöffent wird?

Gruß und Danke bis dahin viking!
 
Schreib die folgende Zeile als letzte Anweisung in das Makro:

Visual Basic:
Shell ("winword.exe c:\abc.txt")

Gruß Thomas
 
Hallo Thomas,

Bin fast am Ende :)

soweit funktioniert das ganze ganz gut.
Allerdigns habe ich mit dem öffnen der Datei ein Problem, weil es eigentlich keine txt Datei ist.
Die Datei selbst wurde ergeugt.

Es ist allerdings keine txt, das habe ich geändert.
Es ist eine Datei mit der Endung .d3l
Diese öffnet wenn man sie direkt ausführt mit der richtigen Anwendung.
Wenn ich eine Batchdatei, "1.cmd" in den ensprechenden Ordner lege, und diese Doppleklicke funtioniert die Ausführung der Datei wie gewünscht..
Allerdings möchte ich das Aufpoppen des Dosfensters unbedingt unterdrücken.
Daher die Frage:
Wie kann ich in der bisherigen Lösung am Ende eine Anweisung eingeben, welche die in dem Ordner befindliche Datei c:\temp\ 1.cmd Datei unterdrückt ausführt?

An welcher Stelle muss welcher Code rein.

Gruß und Danke bis dahin viking
 
Hallo Thomas,

funktioniert so wie ich es unrsprünglich wollte.
Danke!

Allerdings habe ich nun feststellen müssen, dass ich sobald der Fokus auf dem Feld liegt die Funktion ausgeführt wird.
Das möchte ich nun gerne umgehen, und zwar am liebsten druch ein Makro welches ich mit einer belibiegen Tastenkombination starten kann.
Eine belibige Tastenkombination für ein Makro kann ich selbst erstellen.
Allerdings wie bringe ich den "abgewandelten Code" für ein Makro Excel bei?
Wenn ich Beispielsweise "STRG + 1" drücke soll egal wo ich stehe für die markierte Zeile die Funktion ausgeführt werden.

Allternativ wäre ein eine Ausführung des Codes durch einen Doppelklick auf eine Zelle denkbar.


Gruß viking
 
Hi,

du kannst entweder den Code aus der jetztigen Prozedur löschen und bei "Worksheet_BeforeDoubleClick" einfügen oder aber du erstellst eine "eigene" Prozedur mit beliebigem Namen und gibst ihr eine bestimmte Tastenkombination zum Ausführen.

Gruß Thomas
 

Anhänge

  • excel.jpg
    excel.jpg
    64,6 KB · Aufrufe: 52
Zurück