VBA zweites Blatt mit Daten importieren

Lars02

Banned
Registriert
Juni 2019
Beiträge
130
Hallo,

weiß jemand wie ich mitten im Skript noch ein zweites Excel Blatt erstelle (an zweiter stelle/ an letzter stelle) und in dieses Blatt die Daten einer anderen Excel Tabelle einfüge/ importieren.
Bis jetzt habe ich eine neue Mappe mit dem richtigen Namen:
Code:
myXL.Sheets.Add

myXL.ActiveSheet.Name = "DESC"

Das verschieben funktioniert nicht wie ich es vom Internet so finde...
Code:
myXL.ActiveSheet.Move After:=Sheets(Sheets.Count)

er erwartet nach dem : eine Aktion .......wenn ich das = entferne kommt ein fehler das,dass verschieben dieses Objekts nicht möglich ist...
 
Also, ohne jetzt der große Excel König zu sein:

Damit kann ich problemlos das erste Sheet an letzte Stelle verschieben.
Code:
Sheets(1).Move After:=Sheets(Sheets.Count)
mit
Code:
Sheets.Add After:=Sheets(Sheets.Count)
kannst du das neue Sheet gleich an letzter Stelle erzeugen und musst es nicht erst dort hin verschieben.

Soweit stimmt das ja mit dem überein was du geschrieben hast.
Was genau sagt denn die Fehlermeldung und wie sieht der Rest vom Code bzw. deine Mappe aus?
 
Sorry das ich mich jetzt erst melde.... das Thema ist immer noch aktuell!!

1580200548815.png


Zeile 28 , Zeichen 23 ist der Part mit dem ":="

Code:
myXL.Sheets.Add After:=Sheets(1)
 
Kann es sein dass Excel die Referent auf die Sheets so nicht findet?
Könnte sein dass da

Code:
myXL.Sheets.Add After:=myXL.Sheets(1)

hin gehört.

Was ich ganz gerne mache ist über den Makrorecorder aufnehmen was zu tun ist und den Code dann säubern oder erweitern. Liefert einem meist brauchbare Codeschnipsel oder zumindest Ansatzpunkte.
 
Werde mich am Abend melden danke schon mal für den tipp mit dem Makrorecorder.!
 
Alsoo es kommt der gleiche fehler wie oben....

Wenn ich das "=" nach dem ":" weg lösche kann ich es starten ...nur kommt dann das:
1580414955794.png
 
Zuletzt bearbeitet:
VBS ist nicht VBA. Was genau versuchst du denn zu tun?
 
Das Skipt nimmt eine .csv Datei und speichert sei mit der richtigen Formatierung als .xls ab. Im nächsten schritt sollte ein zweites Blatt erstellt werden. Dann sollte von einer .xlsx Datei (speicher ort immer gleich) die Daten in das 2. Blatt der csv kopiert werden.

Edit: So funktioniert das erstellen von dem zweiten Blatt

Code:
myXL.Sheets.Add ,myXL.Sheets(1)

Jetzt fehlt im prinzip nur noch der Import der Daten aus dem anderen Excel file
 
Das wird dir vermutlich noch öfter passieren, dass die Syntax in VBS nicht genau die ist, die du im Interenet zu VBA findest. Theoretisch könntest du auch per vbs ein vba makro ausführen, aber es scheint ja auch so zu klappen.

Für das Kopieren der Daten aus der bestehenden .xlsx würde ich eigentlich so vorgehen, dass ich zusätzlich zur neuen .xls die bestehende xlsx öffne und dann das fragliche Blatt in die neue .xls rüberkopiere.
Alternativ könnte man auch mit dem Daten-Import-Tool arbeiten, aber das ist, meine ich, eigentlich eher für Textdaten gedacht.
Grundsätzlich solltest du die notwendigen Befehle mit dem Makrorekorder schnell finden, auch wenn du die Syntax wegen vbs evtl. etwas anpassen musst.
 
  • Gefällt mir
Reaktionen: Lars02
Danke für den Tipp mit dem Macro Recorder!

Nur leider steck ich komplett mit dem Syntax.....
erste zeile ....die open methode konnte nicht ausgeführt werden
Rich (BBCode):
myXL.Workbooks.Open Filename ,"K:\BENUTZER\GRU\LARS-SCRIPT\vorlage.xlsx"
Range("A1:G10").Select
Selection.Copy
Windows("1455213-01.xls").Activate
Sheets("DESC").Select
Range("A1").Select
ActiveSheet.Paste
Range("A7").Select
Application.CutCopyMode = False
 
Zuletzt bearbeitet:
Ich hab hier am Privatrechner momentan kein MS-Office, kann also nicht testen. Aber im Zweifel, mach es so, wie hier beschrieben und rufe direkt ein VBA-Makro über vbs auf. Hat den kleinen Nachteil, dass du dir dann eben noch zusätzlich zu deinem vbs-Skript eine weitere Excelmappe vorhalten musst, die den Makrocode enthält. Du könntest das aber alternativ auch direkt in deinen schon bestehende Mappe packen, von welcher aus Daten kopiert werden sollen.
Ansonsten spuckt mir Google noch aus, dass sich per vbs Excelmappen auf folgende Weise öffnen lassen sollen:
Code:
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\test.xls")
Zumindest wirkt das alleinstehende "Filename" bei dir etwas deplatziert.
 
Ich hätte noch eine Frage zu dem Macro Thema... kann ich in der Vorlage automatisiert ein Macro starten dass mir die Zellen (X:YZ Q:WE) in die Zwischenablage kopiert und ich dann in dem Ziel Excel Sheet (welches immer einen anderen namen hat) in Zelle A1 einfügen --> Das eifügen würde dann mit dem VBS-Script erfolgen, weil der name der Zieldatei immer variiert.

Der Name der Zieldatei wird am Anfang vom Benutzer eingegeben.
 
Sollte eigentlich machbar sein. Leider habe ich, wie gesagt, keine Möglichkeit zu Testen da. Von daher kann ich hier auch nicht wirklich weiterhelfen.
 
Zurück
Oben