![]() |
Marko Problem, Hinweisfenster automatisieren
Hallo,
ich schreibe gerade in Excel ein Makro das folgendes macht: Öffnet eine bestimmte Excel Datei (B) Kopiert dort bestimmte Spalten in die Zwischenablage Fügt diese Spalten in Excel Datei (A) ein Schließt Excel Datei (B) wieder. So jetzt mein Problem: Wenn ich die Excel Datei B schließen will, kommen zwei Fenster: 1) Wollen sie das Excel Speichern --> Ich will das automatisch Nein gewählt wird, bzw. das Fenster gar nicht kommt 2) In der Zwischenablage gibts viel drin, soll es nach dem schließen noch verfügbar sein --> deto wie 1 kann mir wer helfen wie ich das realisiere? Mein VBA Script bis jetzt:
Code:
Option Explicit
Sub Button_Formatieren() ' ' Alles löschen Cells.Select Selection.ClearContents ' Öffne das zu formatierend File und kopiere Inhalt herüber Workbooks.Open Filename:="N:\afile.xls" Sheets(2).Select Range("A5:K20000").Select Selection.Copy Windows("Transform_DB_Budget.xls").Activate Range("A2").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Windows("afile.xls").Activate ActiveWindow.Close ' ### --> Bei der Close Anweisung kommen die Fenster ### End Sub |
Re: Marko Problem, Hinweisfenster automatisieren
Probier mal: Application.DisplayAlerts=false
MFG Steffen |
Re: Marko Problem, Hinweisfenster automatisieren
Hello,
danke thx funktioniert. Ich habe jetzt alles noch ein wenig umgeschrieben und bekomme bei einer Paste Anweisung immer einen Fehler. versteh ich überhaupt nicht.... --------------------------- Microsoft Visual Basic --------------------------- Laufzeitfehler '1004': Anwendungs- oder objektdefinierter Fehler --------------------------- OK Hilfe ---------------------------
Code:
Option Explicit
Sub Button_Formatieren() Dim new_excel As Workbook Dim old_excel As Workbook ' New Excel Set new_excel = Workbooks.Add ' Spalten Namen setzen new_excel.Worksheets(1).Range("A1").Value = "Subsegment" new_excel.Worksheets(1).Range("B1").Value = "Region_NR" new_excel.Worksheets(1).Range("C1").Value = "GA_NR" new_excel.Worksheets(1).Range("D1").Value = "Financial Reporting Segment" new_excel.Worksheets(1).Range("E1").Value = "VTGR_ID" new_excel.Worksheets(1).Range("F1").Value = "ADM_ID" new_excel.Worksheets(1).Range("G1").Value = "PROJEKT_ID" new_excel.Worksheets(1).Range("H1").Value = "Optional_2" new_excel.Worksheets(1).Range("I1").Value = "Optional_3" new_excel.Worksheets(1).Range("J1").Value = "KOA_NR" new_excel.Worksheets(1).Range("K1").Value = "Legal Entity" new_excel.Worksheets(1).Range("L1").Value = "Scenario" new_excel.Worksheets(1).Range("M1").Value = "WJ" new_excel.Worksheets(1).Range("N1").Value = "Q" new_excel.Worksheets(1).Range("O1").Value = "Actua l" ' Öffne das zu formatierend File, kopiere Inhalt herüber und schließe das File wieder Set old_excel = Workbooks.Add(Me.TextBox_Pfad.Text) old_excel.Worksheets(2).Range("A5:K20000").Copy new_excel.Worksheets(1).Range("A2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False old_excel.Application.DisplayAlerts = False old_excel.Close ' Actual um drei Tabellen nach rechts verschieben new_excel.Worksheets(1).Range("K2:K20000").Cut new_excel.Worksheets(1).Range("02").Paste ' !###! hier kommt der Fehler ?!?! warum klappt es nicht, habs auch mit PasteSpecial wie ein paar Zeilen darüber ausprobiert. (Und es handelt sich um garantiert um ein O und dicht um eine Null ;-) ' Speichern new_excel.SaveAs Filename:=Mid(Me.TextBox_Pfad.Text, 1, Len(Me.TextBox_Pfad.Text) - 4) + "_formatiert.xls", _ FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False ' Schließe neues Excel new_excel.Close End Sub |
Re: Marko Problem, Hinweisfenster automatisieren
Bin jetzt nicht ganz sicher (lang lang ists her...) aber ich meine, dass dein Range falsch ist.
Versuch mal, den gleichen Bereich anzugeben : Range("O2:O2000").Paste Bin da aber wirklich nicht sicher, schaue heute Abend mal nach... MFG Steffen |
Re: Marko Problem, Hinweisfenster automatisieren
Hallo,
daran liegts leider nicht :-( habe ich schon ausprobiert. |
Re: Marko Problem, Hinweisfenster automatisieren
Hallo ferby,
hast Du mal versucht einen Macro aufzuzeichnen? Und ein zweiter Hinweis, nach dem die Funktion abgearbeitet ist, die eine nicht gewollte Meldung ausgibt, sollte man die Meldungen wieder anschalten. Bis bald Chemiker |
Re: Marko Problem, Hinweisfenster automatisieren
Guten Morgen,
Wenn du einfach nur erreichen willst, dass 3 Spalten eingefügt werden, könntest du auch einfach folgendes probieren:
Delphi-Quellcode:
...andernfalls probier mal:
Columns("K:N").Select
Selection.Insert Shift:=xlToRight
Delphi-Quellcode:
MFG
Range("K3:K20000").Select
Selection.Cut Range("O3").Select ActiveSheet.Paste Steffen |
Re: Marko Problem, Hinweisfenster automatisieren
Hello,
so wie du es schreibst hat es bei mir nur funktioniert, wenn ich nur ein Worksheet offen hab. Den wie weiß VBA sonst, welches Sheet ich jetzt meine... Ich werde deine Lösung am Montag ausprobieren, und dann bescheid geben |
Re: Marko Problem, Hinweisfenster automatisieren
Hallo,
funktioniert leider nicht, ich muss das Workbook mit angeben. Aber warum funktioniert mein Code nicht, weil kurz davor mach ich auch ein paste und es geht !? EDIT Problem nach langer Zeit gelöst
Code:
new_excel_sheet.Range("K2:K20000").Copy
new_excel_sheet.Range("O2").PasteSpecial (xlPasteValues) Es funktioiniert nur die Kombination Copy und PasteSpecial, warum?, ka! Aber so funktionierts jetzt mal :-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz