AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Marko Problem, Hinweisfenster automatisieren
Thema durchsuchen
Ansicht
Themen-Optionen

Marko Problem, Hinweisfenster automatisieren

Ein Thema von ferby · begonnen am 14. Aug 2008 · letzter Beitrag vom 18. Aug 2008
Antwort Antwort
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#1

Marko Problem, Hinweisfenster automatisieren

  Alt 14. Aug 2008, 12:01
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
  Mit Zitat antworten Zitat
WIng2005

Registriert seit: 20. Mär 2006
Ort: Thüringen
388 Beiträge
 
Delphi XE Starter
 
#2

Re: Marko Problem, Hinweisfenster automatisieren

  Alt 14. Aug 2008, 12:17
Probier mal: Application.DisplayAlerts=false


MFG
Steffen
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#3

Re: Marko Problem, Hinweisfenster automatisieren

  Alt 14. Aug 2008, 14:40
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
  Mit Zitat antworten Zitat
WIng2005

Registriert seit: 20. Mär 2006
Ort: Thüringen
388 Beiträge
 
Delphi XE Starter
 
#4

Re: Marko Problem, Hinweisfenster automatisieren

  Alt 14. Aug 2008, 15:09
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
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#5

Re: Marko Problem, Hinweisfenster automatisieren

  Alt 14. Aug 2008, 16:21
Hallo,

daran liegts leider nicht
habe ich schon ausprobiert.
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Marko Problem, Hinweisfenster automatisieren

  Alt 14. Aug 2008, 21:15
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
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
WIng2005

Registriert seit: 20. Mär 2006
Ort: Thüringen
388 Beiträge
 
Delphi XE Starter
 
#7

Re: Marko Problem, Hinweisfenster automatisieren

  Alt 15. Aug 2008, 08:11
Guten Morgen,

Wenn du einfach nur erreichen willst, dass 3 Spalten eingefügt werden, könntest du auch einfach
folgendes probieren:

Delphi-Quellcode:
Columns("K:N").Select
Selection.Insert Shift:=xlToRight
...andernfalls probier mal:

Delphi-Quellcode:
Range("K3:K20000").Select
Selection.Cut
Range("O3").Select
ActiveSheet.Paste
MFG
Steffen
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#8

Re: Marko Problem, Hinweisfenster automatisieren

  Alt 15. Aug 2008, 12:31
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
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#9

Re: Marko Problem, Hinweisfenster automatisieren

  Alt 18. Aug 2008, 09:37
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz