Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Excel 2007 hrausschreiben von Spalteninhalten

Frage Microsoft Microsoft Office

Mitglied: barashnukor

barashnukor (Level 1) - Jetzt verbinden

18.05.2009, aktualisiert 18.10.2012, 4532 Aufrufe, 18 Kommentare

Hallo!

Ich arbeite mit Excel 2007 und hätte da jetzt eine Frage. Ist es möglich, dass ich Inhalte aus einer Spalte per Makro herausschreiben lasse, in eine Textdatei rein, und zwar so, dass in der Textdatei dann pro Zeile immer nur ein Eintrag ist?

Wie sieht mein Excel ca aus?
Also das Excelblatt wird sagen wir mal von Spalte A-S mit Daten befüllt sein. Und das bis ca in die 100erste Zeile. Jetzt will ich alle Einträge aus Spalte T in einem Textfile haben, das irgendwo liegen kann (wo ich natürlich Schreibberechtigung habe.

Ist das möglich? Wenn ja, kann mir vielleicht einer die Lösung posten?

Wäre wirklich super!

LG Barashnukor alias Stefan
Ps.: Danke schon mal im vorraus
Mitglied: h1e15
18.05.2009 um 08:10 Uhr
Heyho Stefan...
...ich würde mir das nicht so schwer machen und das mit nem Makro machen.
Markier einfach den ganze Spalte T. Dann machste Copy - Paste in eine ganz normale .txt und dann nochmal Copy - Paste in Word.
Fertig ;)

Mit freundlichen Grüßen h1e
Bitte warten ..
Mitglied: barashnukor
18.05.2009 um 08:16 Uhr
Hallo!

Ist für einen Prozess in der Firma, und ja, mir ist klar, dass es sicher leichter geht mit copy Paste, aber da diesen Teil des Prozesses, eine andere Abteilung machen soll, und es einfacher ist, ein Knöpfchen zu klicken, als irgendwas irgendwohin zu schreiben, naja, brauch ich dieses makro

Lg
Bitte warten ..
Mitglied: h1e15
18.05.2009 um 08:30 Uhr
Alles klar....bin selber Systemverwalter und mir sind DAUs wohl bekannt ;)
Leider kenn ich mich mit Makros nicht so gut aus das ich hier weiterhelfen könnte. Sorry. ^^
Bitte warten ..
Mitglied: IT-Muscle
18.05.2009 um 13:51 Uhr
Hallo Stefan,

möglicherweise ist der Lösungansatz von --h1e-- aber gar nicht so schlecht! Folgenden Vorschlag habe ich für Dich, da ich schon öfters mit Makros innerhalb von Word, Excel, usw. gearbeitet habe!..

Mit ALT + F8 kannst du unter Microsoft Excel "Makros aufzeichnen". Das bedeutet, jegliche Akiton, die du ausführst wird im Hintergrund durch den Makro "Aufzeichner" aufgenommen und in einem Makro gespeichert! Nun zu deinem "Problem"

Lass doch von dem Makro die Spalte makieren, kopieren und in einem neuen Datenblatt einfügen, welches widerrum dann unter einer *.txt abgespeichert wird! Ist vielleicht auf den ersten Blick etwas umständlich, aber nacher bedeutet es nur noch einen dumpfen Klick und die Sache ist geritzt ... Darüber hinaus kannst du dann das Makro danach über die Konsole noch nach Belieben anpassen!..

Probier das doch einfach mal?!.. Solltest du irgendwie Hilfe brauchen dabei sag mir einfach bescheid=)

Mit freundlichen Grüßen,
Michael
Bitte warten ..
Mitglied: bastla
18.05.2009 um 15:38 Uhr
Hallo Stefan!

Wenn's aber doch ein Stück VBA sein soll, dann etwa so (erstellt unter Excel 2003):
01.
Sub ExportiereSpalte() 
02.
Const Spalte As String = "T" 
03.
Const AbZeile As Integer = 3 
04.
Datei = "D:\Export.txt" 
05.
 
06.
Open Datei For Output As 1 
07.
Zeile = AbZeile 
08.
Do While Cells(Zeile, Spalte) <> "" 
09.
    Print #1, Cells(Zeile, Spalte) 
10.
    Zeile = Zeile + 1 
11.
Loop 
12.
Close 1 
13.
MsgBox "Die Spalte """ & Spalte & """ wurde in die Datei " & vbCrLf & """" & Datei & """ exportiert." 
14.
End Sub
Es werden alle Zellinhalte aus der vorgegebenen "Spalte" (beginnend in Zeile "AbZeile") in die angegebenen "Datei" geschrieben, bis die erste leere Zelle erreicht wird.

In dieser "Minimalvariante" erfolgt keine Überprüfung auf Schreibrechte bzw auf das Vorhandensein einer gleichnamigen Zieldatei (welche kommentarlos überschrieben würde).

Grüße
bastla
Bitte warten ..
Mitglied: van-delle
21.05.2009 um 01:42 Uhr
und mit :

Dim DatNam As String
Dim NeuDatNam As String

DatNam = "c:\dateiname.txt"
NeuDatNam = Mid(DatNam, 1, InStrRev(DatNam, ".") - 1) & _
Format(Date, "yyyymm") & Mid(DatNam, InStrRev(DatNam, "."))
Name DatNam As NeuDatNam

Kann man noch das Datum anhängen.

Quelle: http://www.office-loesung.de/ftopic63624_0_0_asc.php
Bitte warten ..
Mitglied: Yosimo
13.04.2011 um 15:57 Uhr
Hallo,

ich habe das Script - Dank an bastla - für mich ein wenig abgeändert, damit die Textdatei immer in das Verzeichnis geschrieben wird, in dem auch die Exceldatei liegt, aus der es ausgeführt wird.
Das Makro funktioniert so in Excel 2003 einwandfrei.


01.
Sub ExportiereSpalte() 
02.
Const Spalte As String = "E" 
03.
Const AbZeile As Integer = 1 
04.
Datei = "Export.txt" 
05.
Open ActiveWorkbook.Path & "\" & Datei For Output As 1 
06.
Zeile = AbZeile 
07.
Do While Cells(Zeile, Spalte) <> "" 
08.
    Print #1, Cells(Zeile, Spalte) 
09.
    Zeile = Zeile + 1 
10.
Loop 
11.
Close 1 
12.
MsgBox "Die Spalte """ & Spalte & """ wurde in die Datei " & vbCrLf & """" & Datei & """ exportiert." 
13.
End Sub

In Excel 2007 läuft es jedoch nicht. Fehlermeldung ist: Fehler beim Kompilieren: Syntaxfehler (in der Zeile: Print #1, Cells(Zeile, Spalte)
Wie muss ich es denn anpassen, damit es auch unter Excel 2007 funktioniert? (ich führe es dort als Add-In aus, damit ich ich es immer in allen Excel-Dateien zur Verfügung habe).

Mit freundlichen Grüßen
Yosimo
Bitte warten ..
Mitglied: bastla
13.04.2011 um 17:49 Uhr
Hallo Yosimo!

Du kannst auf die Verwendung des "FileSystemObjects" umstellen:
01.
Sub ExportiereSpalte() 
02.
Const Spalte As String = "E" 
03.
Const AbZeile As Integer = 1 
04.
Datei = "Export.txt" 
05.
Set fso = CreateObject("Scripting.FileSystemObject") 
06.
Set DateiAus = fso.CreateTextFile(ActiveWorkbook.Path & "\" & Datei) 
07.
Zeile = AbZeile 
08.
Do While Cells(Zeile, Spalte) <> "" 
09.
    DateiAus.WriteLine Cells(Zeile, Spalte) 
10.
    Zeile = Zeile + 1 
11.
Loop 
12.
DateiAus.Close 
13.
MsgBox "Die Spalte """ & Spalte & """ wurde in die Datei " & vbCrLf & """" & Datei & """ exportiert." 
14.
End Sub
Grüße
bastla
Bitte warten ..
Mitglied: Yosimo
14.04.2011 um 12:31 Uhr
Hallo bastla,

funktioniert jetzt in Excel 2007 bestens,
vielen Dank!

Grüße
Yosimo
Bitte warten ..
Mitglied: Yosimo
31.05.2011 um 13:09 Uhr
Hallo,

ich habe die MsgBox-Zeile dahin abgeändert, dass Sie mir auch die Anzahl der erstellten TXT-Dateien meldet:

01.
Sub ExportiereSpalte(control As IRibbonControl) 
02.
Ziel = ActiveWorkbook.Path & "\" 
03.
Stellen = 5 
04.
Typ = ".txt" 
05.
AbZeile = 2 
06.
Spalte = "A" 
07.
 
08.
Zeile = AbZeile 
09.
Nr = 1000001 
10.
 
11.
Set fso = CreateObject("Scripting.FileSystemObject") 
12.
If Right(Ziel, 1) <> "\" Then Ziel = Ziel & "\" 
13.
 
14.
Do While Cells(Zeile, Spalte).Value <> "" 
15.
    fso.CreateTextFile(Ziel & Right(Nr, Stellen) & Typ).Write Cells(Zeile, Spalte).Value 
16.
    Zeile = Zeile + 1 
17.
    Nr = Nr + 1 
18.
Loop 
19.
MsgBox "Fertig!" & vbCrLf & "Aus Spalte """ & Spalte & """ wurden  """ & Zeile & """  TXT-Dateien erzeugt." 
20.
End Sub
Allerdings werden immer 2 zuviel gemeldet. Und wenn die Spalte, aus der die TXT-Dateien geschrieben werden, leer ist, werden zwar keine TXT-Dateien erzeugt, aber die MsgBox meldet 2.
Ich lasse immer ab der 2. Zeile rausschreiben.

Wie muss ich denn den Code ändern, damit die richtige Anzahl gemeldet wird?
(Excel2007 unter Win7)

Grüße
Yosimo
Bitte warten ..
Mitglied: bastla
31.05.2011 um 15:39 Uhr
Hallo Yosimo!

Wenn immer 2 zuviel angezeigt wird, würde sich anbieten, 2 abzuziehen ...

... da der Grund aber die Vorgabe durch "AbZeile" (siehe Zeilen 5 und 8) ist, solltest Du besser "Zeile - AbZeile" rechnen.

Grüße
bastla
Bitte warten ..
Mitglied: Yosimo
31.05.2011 um 16:06 Uhr
Hallo Bastla,

ja wirklich simpel, schande über mich.
Wahrscheinlich bin ich nicht drauf gekommen, weil ich zu viel über die Ursache gegrübelt habe:
wenn ich ein 10-zeiliges Exceldokument habe, dann erhalte ich ohne der ersten Zeile 9 Dokumente. Nach meiner Logik also immer ein Dokument weniger als Excel Zeilen hat. Warum die MsgBox dann eine Differenz von 2 statt 1 ausgibt, will sich mir da nicht erschließen.

Aber egal, wenn ich es mit Deinem Tipp lösen kann, ist es für mich völlig ausreichend.

Vielen Dank!

Grüße
Yosimo
Bitte warten ..
Mitglied: bastla
31.05.2011 um 16:19 Uhr
Hallo Yosimo!
wenn ich ein 10-zeiliges Exceldokument habe

Warum die MsgBox dann eine Differenz von 2 statt 1 ausgibt, will sich mir da nicht erschließen.
Es wird ja immer schon eine Zeile weitergezählt - daher sind in der Anzahl enthalten die (übersprungene) Zeile 1 und die aktuelle (leere, zumindest in Spalte A) Zeile 11 ...

Grüße
bastla
Bitte warten ..
Mitglied: Yosimo
01.06.2011 um 09:03 Uhr
ok, ist jetzt klar. Ich bin nicht davon ausgegangen, dass die übersprungenen Zeilen auch mitgezählt werden.

Danke und Gruß
Yosimo
Bitte warten ..
Mitglied: Yosimo
06.06.2011 um 09:04 Uhr
Hallo,

so jetzt bin ich in der Zwischenzeit wieder etwas weiter gekommen und habe noch eine Abfragebox zur exportierenden Spalte eingebaut.

01.
Sub ExportiereSpalte(control As IRibbonControl) 
02.
Ziel = ActiveWorkbook.Path & "\" 
03.
Stellen = 5 
04.
Typ = ".txt" 
05.
AbZeile = 2 
06.
 
07.
On Error GoTo Fehler 
08.
 
09.
Spalte = InputBox _ 
10.
("Welche Spalte soll exportiert werden?") 
11.
If IsEmpty(Spalte) Then 
12.
    MsgBox "Nichts eingegeben ..." 
13.
        Exit Sub 
14.
End If 
15.
 
16.
Zeile = AbZeile 
17.
Nr = 1000001 
18.
 
19.
Set fso = CreateObject("Scripting.FileSystemObject") 
20.
If Right(Ziel, 1) <> "\" Then Ziel = Ziel & "\" 
21.
 
22.
Do While Cells(Zeile, Spalte).Value <> "" 
23.
    fso.CreateTextFile(Ziel & Right(Nr, Stellen) & Typ).Write Cells(Zeile, Spalte).Value 
24.
    Zeile = Zeile + 1 
25.
    Nr = Nr + 1 
26.
Loop 
27.
MsgBox "Fertig!" & vbCrLf & "" & vbCrLf & "Aus Spalte """ & Spalte & """ wurden  """ & Zeile - AbZeile & """  TXT-Dateien erzeugt." 
28.
Exit Sub 
29.
 
30.
Fehler: 
31.
    MsgBox "Hallo!! - Fehler!!" & vbCrLf & "" & vbCrLf & "Wohl keinen Spaltentitel eingegeben?" 
32.
 
33.
End Sub
An meiner nächsten Ergänzung scheitere ich aber leider schon wieder an meinen geringen VBA-Kenntnissen.
Hauptaufgabe meines Makros ist es ja, den Inhalt einer Spalte zeilenweise in Textdateien zu exportieren.
Nun möchte ich das Script gerne noch dahingehend erweitern, dass die erzeugten Dateinamen zusätzlich in eine leere Spalte ins Excelblatt zurückgeschrieben werden. Der Spaltentitel sollte auch gleich mit eingesetzt werden.
Dabei soll berücksichtigt sein, dass, wenn ab Zeile 2 exportiert wurde, auch erst ab Zeile 2 wieder die Dateinamen zurückgeschrieben werden. Es soll also der entsprechende Dateiname in seinem zugehörigen Datensatz platziert werden.

Bin dankbar, wenn mir wieder geholfen wird.

Gruß
Yosimo
Bitte warten ..
Mitglied: bastla
06.06.2011 um 12:08 Uhr
Hallo Yosimo!

Vielleicht solltst Du Dir schön langsam (da aus dem "hrausschreiben" ein "Hin und Her" zu werden scheint) einen eigenen Thread leisten - kostet ja nix ...

Grüße
bastla
Bitte warten ..
Mitglied: Yosimo
06.06.2011, aktualisiert 18.10.2012
Hallo bastla,

das mit dem eigenen Thread habe ich beherzigt:

http://www.administrator.de/forum/spalte-zeilenweise-als-dateien-raussc ...

Es tut mir leid, wenn es wegen meinen Anfragen wie ein "Hin und Her" erscheint. Aber jeder Schritt ist für mich ein wichtiger Baustein, und kein Tipp aus dem Forum war bisher vergeudet.

Ich bastle an einer Automatisierung für die Erstellung personalisierter Barcodes. Es gibt zwei Textbausteine mit PostScript-Code, die per Batch um die aus Excel exportierten Textdateien, den Barcodenummern, ergänzt und als EPS-Grafiken abgelegt werden.
Die Dateinamen dieser EPS-Dateien sollen dann in die Exceldatei zurückgeschrieben werden. Eine Personalisierungssoftware, die die Exceldatei ausliest, platziert die EPS-Grafiken und weitere Personalisierungsdaten in ein Layoutprogramm, aus dem die Auflage auf einer Digitaldruckmaschine produziert wird.
Die ganze PostScript-Programmierung steht bereits und der Workflow im ganzen läuft auch schon gut. Aber das Handling in Excel möchte ich noch verbessern.

Deine Tipps, bastla, haben mir bisher am meißten weitergeholfen. Deshalb hier mein besonderer Dank an Dich!

Gruß
Yosimo
Bitte warten ..
Mitglied: bastla
06.06.2011 um 20:40 Uhr
Hallo Yosimo!

Das mit dem "Hin und Her" war nicht böse gemeint - ich hatte Deinen Wunsch als "Export und Re-Import" interpretiert ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Microsoft Office
Excel 2007: Sortierung ohne ins Datenblatt zu springen (2)

Frage von JoSiBa zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel 2007 und der Cosinus (3)

Frage von Henere zum Thema Microsoft Office ...

Microsoft Office
Excel 2007 jedes Fenster in extra Instanz (7)

Frage von xbast1x zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...