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

Ganze tabelle in .csv Speichern.

Frage Microsoft Microsoft Office

Mitglied: Hummel85

Hummel85 (Level 1) - Jetzt verbinden

08.08.2006, aktualisiert 15.08.2006, 13111 Aufrufe, 11 Kommentare

Hallo.

Ich würde gern meine Exceldatei(*.xls) in *.csv speichern. Das Problem ist nur das ich nicht die ganze Datei speichern kann sondern nur die einzelnen Tabellenblätter. Da ich aber keine Lust habe die ganzen Tabellenblätter einzeln zu speichern würde ich das gerne so machen.

Also jetzt mal zur Frage gibt es eine Möglichkeit das so zu speichern wenn nicht geht das über ein Makro? Wenn ja wie würde das Makro aussehen?
Mitglied: 16568
10.08.2006 um 12:48 Uhr
Du hast es schon erkannt, das ganze geht nur über ein Makro.
Tabellenblätter auslesen, jedes als Objekt deklarieren, als CSV speichern, feddisch


Lonesome Walker
Bitte warten ..
Mitglied: 8644
10.08.2006 um 13:08 Uhr
Hi,

versuchs mal so:

01.
Sub speichern_als() 
02.
 Dim I_Sheets As Integer 
03.
 Dim F_Name As String 
04.
  
05.
  For I_Sheets = 1 To Sheets.Count 
06.
   F_Name = "E:\Daten\" + Sheets(I_Sheets).Name + ".csv" 
07.
   Sheets(I_Sheets).SaveAs Filename:=F_Name, FileFormat:= _ 
08.
   xlCSV, CreateBackup:=False 
09.
  Next I_Sheets 
10.
End Sub
Psycho
Bitte warten ..
Mitglied: Hummel85
14.08.2006 um 11:26 Uhr
Vielen dank schon mal für die antworten.

Aber hier sind noch ein paar fragen offen.

1. In deine Makro Psycho Dad, steht F_Name = "E:\Daten\" bei mir existiert dieser Pfad aber nicht da E mein DVD-Laufwerk ist. Oder ist das egal? muss ich noch andere Anpassungen vornehmen?

2. wo schreibe ich die Makros rein? und vor allem wie führe ich das Makro dann aus?

3. Bekomm ich bei dem Makro eine art Menü wo ich auswählen kann wo die .csv gespeichert werden soll?

Vielen dank schon ein mal im voraus.
Bitte warten ..
Mitglied: 8644
14.08.2006 um 11:52 Uhr
Moin,

die Pfadangabe muss natürlich angepasst werden. Das ginge evtl. mit einer InputBox:

01.
Sub speichern_als() 
02.
Dim I_Sheets As Integer 
03.
 Dim F_Name As String 
04.
 Dim F_Path As String 
05.
 F_Path = Application.InputBox("Pfad angeben") 
06.
  For I_Sheets = 1 To Sheets.Count 
07.
   F_Name = F_Path + Sheets(I_Sheets).Name + ".csv" 
08.
   Sheets(I_Sheets).SaveAs Filename:=F_Name, FileFormat:= _ 
09.
   xlCSV, CreateBackup:=False 
10.
  Next I_Sheets 
11.
End Sub
Einbinden geht folgendermassen:

Menü Extras -> Makro -> Makros -> hier den Namen Eingeben speichern_als -> Erstellen

jetzt hast du den VBA-Editor vor dir und der Teil

01.
Sub speichern_als() 
02.
End Sub 
steht schon da. Den Rest kopierst du dann rein!
Zum Aufrufen kannst du eine Tastenkombination vergeben oder du positionerst eine Autoform (Symbolleiste Zeichnen) auf dem Blatt und weist dann über das Kontextmenü (rechte Maustaste) das entsprechende Makro zu.

Psycho
Bitte warten ..
Mitglied: Hummel85
15.08.2006 um 07:52 Uhr
Guten Morgen Psycho Dad,

danke für die Antwort. Aber jetzt kommt mein Problem vom 1. mal wieder. Ich möchte alle Tabellenblätter in einer .csv haben. Geht das auch oder muss ich das von Hand kopieren?
Das was ich bis jetzt habe ist auf jeden fall schon mal ein Riesen fortschritt. Und was ich jetzt noch endeckt habe. Wenn ich bei der InputBox auf Abbrechen drücke legt das Makro mir die .csv Dateien einfach in Eigene Dateien. Kann ich da nicht sagen dass das ganze Makro beendet wird?

Und noch eine Excel frage, wie kann ich Makros in jeder Excel Tabelle verfügbar machen ohne das ich das immer in die Tabelle kopieren muss?

Have a nice day

Sebastian
Bitte warten ..
Mitglied: 8644
15.08.2006 um 10:05 Uhr
Moin,

also erstmal zur Problematik des Zusammenführens (hast du vorher nicht erwähnt!).
Ich habe mal vorausgesetzt, dass die Tabellen gleich aufgebaut sind.
Hier wird eine temporäre Tabelle erstellt, in der die Werte aus allen Blättern zusammengefasst werden. Diese wird dann als *.csv gespeichert. Das Blatt wird hinterher wieder gelöscht.

01.
Sub zusammenfuehren_speichern() 
02.
    Dim I_Sheets As Integer        ' Anzahl der Blätter 
03.
    Dim F_Name As String           ' Pfad und Dateiname 
04.
     
05.
    F_Name = InputBox("Pfad und Dateinamen angeben") ' Hier kompletten Pfad und Namen angeben! 
06.
    ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count) ' Temporäre Tabelle erstellen 
07.
                                                                 ' und ans Ende setzen 
08.
    For I_Sheets = 1 To Sheets.Count - 1   ' Zählschleife für Anzahl der Blätter 
09.
                                           ' ohne das neu Erstellte 
10.
     
11.
     Sheets(I_Sheets).Select               ' Tabellenblatt wählen 
12.
     If I_Sheets = 1 Then Range("A1").Select Else Range("A2").Select ' Im ersten Blatt 
13.
                                                                     ' den Kopf mit kopieren 
14.
     Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select    ' Tabelle bis zu letzten Zelle 
15.
                                                                     ' markieren, die Wert enthält 
16.
     Selection.Copy                        ' Alles in Zwischenablage kopieren 
17.
     Sheets(Sheets.Count).Select           ' Temporäre Tabelle wählen 
18.
     If I_Sheets = 1 Then Range("A1").Select Else Range("A65536").End(xlUp).Offset(1, 0).Select 
19.
                                           ' Ende der Tabelle suchen 
20.
     ActiveSheet.Paste                     ' Werte einfügen 
21.
      
22.
    Next I_Sheets                          ' Ende der Zählschleife 
23.
    ActiveWorkbook.SaveAs Filename:=F_Name, FileFormat:=xlCSV _ 
24.
        , CreateBackup:=False              ' Temporäre Tabelle als *.csv speichern 
25.
     
26.
    ActiveWindow.SelectedSheets.Delete     ' Temporäre Tabelle wieder löschen 
27.
End Sub
Über die anderen Fragen muss ich noch nachdenken - bin auch kein Experte!

Psycho
Bitte warten ..
Mitglied: Hummel85
15.08.2006 um 10:21 Uhr
Vielen dank Psycho Dad.

Ich habe mich wahrscheinlich in der eigentlichen Frage ein wenig bescheiden ausgedrückt aber nun ist ja alles so wie es sein soll.

Wenn du oder ein anderer User eine Idee hat wie ich das machen kann.

Das dieses Makro in allen Excel Tabellen verfügbar ist( also in der art wie ein Template).
Und wenn ich die InputBox Abbrechen drücke das das Makro sich auch Beendet.

Vielen dank schon einmal im Voraus.
Bitte warten ..
Mitglied: 8644
15.08.2006 um 10:29 Uhr
Hi,

hier wird erklärt, wie man Makros global verfügbar macht.

[Edit: Gib mal unter der InputBox-Zeile noch folgendes ein:
01.
If F_Name = "" Then Exit Sub
]

Psycho
Bitte warten ..
Mitglied: Hummel85
15.08.2006 um 11:02 Uhr
Hi,

vielen dank nochmal hat alles wunderbar funktioniert.

Also wünsche ich dir noch einen schönen Tag.
Bitte warten ..
Mitglied: 8644
15.08.2006 um 11:10 Uhr
...kein Thema! Setzt aber bitte den Beitrag auf "Gelöst"

und dir auch noch einen schönen Tag!

Psycho
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
Bestimmte Daten aus eine CSV-Datei in eine Excel-Tabelle importieren (2)

Frage von MariaElena zum Thema VB for Applications ...

Batch & Shell
CSV nach CSV durchsuchen und speichern (6)

Frage von jocheng zum Thema Batch & Shell ...

VB for Applications
gelöst Xml-Datei laden bzw. auf Festplatte kopieren und per VBA in eine Access-Tabelle speichern (22)

Frage von machohunk zum Thema VB for Applications ...

VB for Applications
gelöst Excel VBA .csv Import in Tabelle x, ab Spalte y

Frage von drimrim zum Thema VB for Applications ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...