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

Spalten einer Excel sortieren mit Hilfe von Batch

Frage Entwicklung Batch & Shell

Mitglied: Underdog81

Underdog81 (Level 1) - Jetzt verbinden

27.11.2012 um 11:17 Uhr, 3594 Aufrufe, 14 Kommentare

Hallo Forum,
da ich hier schon häufiger auf schnelle und gute hilfe getroffen bin frage ich euch wiedermal um Hilfe.
Ich hab schon google gequält aber das hat mir nicht wirklich die Lösung gebgeben.

Hier mal das was ich vorhabe.

Ich exportiere eine .xls aus einem Programm und habe hier die Sortierung nach Spalte "A" (Zahlen)
Es sind 3 Spalten mit Überschrift und sortiert werden soll nach Spalte "B".

aktueller Stand
Das hier habe ich gefunden aber wenn der nächste Export kommt, (kommt jeden tag) ist logischerweise alles wieder weg.

Option Explicit
Private Sub Workbook_Open()
Dim Sortierspalte As String
Dim Bereich As String
Bereich = "A2:C300"
Sortierspalte = "B"
ActiveSheet.Range(Bereich).Sort Key1:=Range(Sortierspalte & "1"), Order1:=xlAscending, Header:=xlGuess, MatchCase:=False, Orientation:=xlTopToBottom
End Sub


offene Fragen
Aus dem Programm, das die .xls exportiert aknn ich noch nach abschluss eine .bat ausführen lassen.

Wie bekomme ich es hin, daß eine "sortieren.xls" durch eine "sortieren.bat" geöffnet wird?
Wie muss der Code genau aussehen, dass durch die öffnung der "sortieren.bat" die "sortierung.xls"
startet, die "exportierte.xls" sortiert nach Spalte "B" und wieder geschlossen wird?

Wenn ihr mir helfen könnt bei den 2 Fragen, dann wäre ich euch sehr dankbar.

Gruß Underdog81

Mitglied: 106543
27.11.2012 um 11:41 Uhr
Hi,

sehe ich das richtig, dass du schon den fertigen funktionieren Sortiercode hast, und nur noch mit dem Aufruf des kleinen Sortiermacros in einer batch hängst ?

Grüße
Exze
Bitte warten ..
Mitglied: Underdog81
27.11.2012 um 11:48 Uhr
nein nicht ganz....

Die Batch ist das kleinere übel
Ich bekomm den Code nicht richtig hin, daß er mir mit der "sortieren.xls" die "exportiere.xls" Sortiert und dann wieder gespeichert schliesst.

hier mal was ich momentan habe in der "sortieren.xls"...
und er meckert wegen der Zeile hier im Code.
ActiveSheet.Range(Bereich).Sort Key1:=Range(Sortierspalte & "1"), Order1:=xlAscending, Header:=xlGuess, MatchCase:=False,


Option Explicit
Private Sub Workbook_Open()
Dim excel
Dim Sortierspalte As String
Dim Bereich As String
Dim wbdatei As Workbook

Set excel = CreateObject("Excel.Application")
excel.Visible = True
Set wbdatei = Workbooks.Open("Z:\exportieren.xls")
Bereich = "A2:C300"
Sortierspalte = "B"
ActiveSheet.Range(Bereich).Sort Key1:=Range(Sortierspalte & "1"), Order1:=xlAscending, Header:=xlGuess, MatchCase:=False, Orientation:=xlTopToBottom

End Sub
Bitte warten ..
Mitglied: 106543
27.11.2012 um 11:59 Uhr
Hi,

gibt ne genauere Beschreibung des Fehlers "er meckert wegen der Zeile hier im Code"?
ok mir würde jetzt spontan dazu einfallen, dass du hier:
01.
ActiveSheet.Range(Bereich).Sort Key1:=Range(Sortierspalte & "1"), Order1:=xlAscending, Header:=xlGuess, MatchCase:=False, Orientation:=xlTopToBottom
das "ActiveSheet" durch den tatsächlichen Namen ersetzt.

Sorry zum Sortieren kenne ich mich leider nicht aus, habbisher nur wenig in der Richtung gebraucht.

Grüße
Exze
Bitte warten ..
Mitglied: Underdog81
27.11.2012 um 12:20 Uhr
Aber das ist doch 2 Zeilen weiter oben angegeben....
Bereich = "A2:C300"

Wenn ich den Code in die datei exportiern.xls selber einfüge geht er auch.
Ich hänge also daran, daß er aus der sortieren.xls auf die exportieren.xls zugreifen soll und die dann sortiert.
Er macht auch die andere Datei (exportieren.xls) auf aber sortiert sie nicht und meckert bei der oben gennanten Zeile.
Bitte warten ..
Mitglied: 106543
27.11.2012 um 12:46 Uhr
Hi,

was bringt er dir denn für eine Fehlermeldung wenn man fragen darf ?

Grüße
Exze
Bitte warten ..
Mitglied: Underdog81
27.11.2012 um 12:53 Uhr
ich bekomme keine Fehlermeldung sondern er makiert mir die Zeile Gelb
Bitte warten ..
Mitglied: 106543
27.11.2012 um 12:57 Uhr
Hi,

Dann muss was mit der Syntax nicht stimmen ...
d.h. ich schau was ich über die Syntax von dem Befehl finde und du schaust ob du irgendwelche Fehler drin erkennen kannst ;)
Am Besten wäre es natürlich wenn du mir sagen könntest, wo du den Code Schnipsel her hast.

Grüße
Exze
Bitte warten ..
Mitglied: Underdog81
27.11.2012 um 13:02 Uhr
das seltsame ist doch auch, wenn ich den Code in die Datei selber einfüge geht alles ohne Probleme.
Nur wenn ich den Code aus der anderen Datei ausführe um die exportieren.xls zu bearbeitern meckert er.
Muss also irendwas noch geändert werden, daß er erkennt in welcher Datei er arbeitern soll.
Bitte warten ..
Mitglied: 106543
27.11.2012 um 13:08 Uhr
Das hatte ich gemeint vorhin ;)
setzte statt "ActiveSheet" den Namen des Workbooks ein (zu finden : Excel unten die drei Reiter normalerweise benannt mit "Tabelle1", "Tabelle2", "Tabelle3"
Bitte warten ..
Mitglied: Pjordorf
27.11.2012 um 13:50 Uhr
Hallo,

Zitat von Underdog81:
das seltsame ist doch auch, wenn ich den Code in die Datei selber einfüge geht alles ohne Probleme.
Nein, nicht seltsam sondern so gewollt.

Nur wenn ich den Code aus der anderen Datei ausführe um die exportieren.xls zu bearbeitern meckert er.
Klar, auch das ist so gewollt und somit kein Fehler.

Muss also irendwas noch geändert werden, daß er erkennt in welcher Datei er arbeitern soll.
Ja. Lass dir den Begriff "Activesheet" mal in seine Bestandteile zerlegen und übersetzen. Was bedeutet es dann? Richtig "Aktives Tabellenblatt". Was ist ein "Aktives tabellenblatt"? Nun, das welches gerade im Momemt den Fokus (Aktiv) hat. ist deine andere Excel Arbeitsmappe und die darin enthaltenen Blätter hiermit gemeint? Nein. Somit ist es kein Fehler von Excel, sondern von dir. Du musst dem VBA auch sagen welche Excelmappe und welches darin enthalten Tabellenblatt du meinst. Dann klappt auch das Sortieren der Daten in "export.slx" aus deiner "sortieren.xls" heraus. Wie du den Aufruf dann richtig machst sagt dir die Suchmaschine deiner Wahl oder die F1 Taste deiner Tastatur oder mal ein Makro Aufzeichen und dann anschauen.

Und bitte nutze Code - Tags hier wenn du Quellcode für uns lesbar darstellen willst. Wie? Siehe http://www.administrator.de/faq/20#toc-43173643557-28

Und bedenke das dein
und er meckert wegen der Zeile hier im Code
auch so aufgefasst werden kann: "Sucht die Fehlermeldung selbst heraus oder was ich als Meckern bezeichne, ich sage es euch nicht. Das müsst ihr schon selbst herausbekommen wenn ihr mir helfen wollt".

Wie gesagt es kann auch anders verstanden werden. Du hast ein Problem. Du willst hilfe. Wir lesen nur das was hier steht. Wir sind sozusagen Blind und Taub und haben keine ahnung wovon du redest udn was dein Wissenstand oder Fähigkeiten sind.

Nur irgendwo ein Codeschnipsel zu kopieren ist einfach. Diesen dann aber auch korrekt Anzuwenden erfordert schon mehr können als nur zu "Gutenbergen"

Gruß,
Peter
Bitte warten ..
Mitglied: 106543
27.11.2012 um 14:24 Uhr
Hi,

danke Pjordorf.
Trau mich immer net so grob zu sein

Grüße
Exze
Bitte warten ..
Mitglied: Underdog81
27.11.2012, aktualisiert um 14:56 Uhr
So Ihr beiden Helfer
Super großes Danke an euch und natürlich war es nicht so im negativem Sinne gemeint wie ich evtl geschrieben habe.

Hab den Code nun fertig und würed ihn gerne hier schreiben, aber ich finde dieses "Quellcode, Code oder HTML Snippets" nicht.
wo finde ich das?

Entschuldigung nochmal wenn ich zu unfreundlich geschrieben habe.


Edit: gefunden
Es musste noch das wbdazei vor ActiveSheet.Range(Bereich) und am Ende eben das Speicerhn und schließen rein.

01.
Option Explicit 
02.
Private Sub Workbook_Open() 
03.
    Dim excel 
04.
    Dim Sortierspalte As String 
05.
    Dim Bereich As String 
06.
    Dim wbdatei As Workbook 
07.
        
08.
    Set excel = CreateObject("Excel.Application") 
09.
    excel.Visible = True 
10.
    Set wbdatei = Workbooks.Open("Z:\exportieren.xls") 
11.
    Bereich = "A2:C300" 
12.
    Sortierspalte = "B" 
13.
    wbdatei.ActiveSheet.Range(Bereich).Sort Key1:=Range(Sortierspalte & "1"), Order1:=xlAscending, Header:=xlGuess, MatchCase:=False, Orientation:=xlTopToBottom 
14.
    Workbooks("exportieren.xls").Close SaveChanges:=True 
15.
    Application.Quit 
16.
End Sub
Bitte warten ..
Mitglied: 106543
27.11.2012 um 14:55 Uhr
Hey Underdog81

Kein problem ;)
die nötige Formatierung sieht wie folgt aus
du schreibst einfach < CODE > und am Ende von deinem Code < /Code > (ohne Leerzeichen)

Achja und nicht vergessen auf gelöst zu klicken ;)

Grüße
Exze
Bitte warten ..
Mitglied: Underdog81
27.11.2012 um 14:59 Uhr
ach schau ich habs selber gefunden ....Augen auf bei Eierkauf

Danke nochmal für die Hilfe und nen schönen Tag moch euch beiden.
Gelöst.......
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung!

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Microsoft Office
Excel 2016 anzeige der markierten Spalten (1)

Frage von endurance zum Thema Microsoft Office ...

VB for Applications
gelöst Spalten nach Titel sortieren (2)

Frage von Anrion zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...