Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
744to748
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
744to748
744to748
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zwischenspeicher leer nach Anlegen neuen Files

Zwischenspeicher leer nach Anlegen neuen Files
21.03.2006 16:01:06
JMR
Forum! Hallo!
Verdammt, nun wurde mir hier gerade prima geholfen, jetzt hab ich schon das naechste Problem:
Der Zwischenspeicher ist leer nachdem ich ein neues File angelegt habe, in das Daten uebertragen werden sollen. Das doofe dabei ist, dass ich das Abspeichern des neuen Files dem Anwender ueberlassen muss und daher der Speicherpfad unbekannt ist. Hier der Codeauszug:
Range(Suche, Suche.Offset(Suche.Offset(0, 6).End(xlDown).Row - Suche.Row, 8)).Copy
'Neues File anlegen
Application.SheetsInNewWorkbook = 1
Workbooks.Add
ActiveSheet.Name = CasaEstero & Data
Range("A1").Paste 'an dieser Stelle tritt der Fehler auf, da nun der Zwischenspeicher leer ist.
Gibts es hierfuer eine Loesung?
Vielen Dank fuer eure Denkanstoesse!
Gruss,
Jan

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zwischenspeicher leer nach Anlegen neuen Files
21.03.2006 16:22:04
u_
Hallo,
kopiere doch nachdem du die Mappe eingefügt hast.
By the way: dafür Application.SheetsInNewWorkbook = 1 würde ich dir den Hals umdrehen ;-))
Gruß
Geist ist geil!
AW: Zwischenspeicher leer nach Anlegen neuen Files
21.03.2006 16:31:18
JMR
Hallo!
Hm, dann muss ich doch zwischen den Workbooks wechseln, was nicht geht, da der Name des neuen Workbooks vom Anwender festgelegt wird...!?! Oder hab ich da n Denkfehler?
Gruss,
Jan
P.S.: Warum? Gefaellt dir die = 1 nicht?
AW: Zwischenspeicher leer nach Anlegen neuen Files
21.03.2006 16:34:39
u_
Hallo,
nein, gefällt mir nicht! Dann muss ich erst in den Optionen meine Einstellung wieder herstellen. Keine Einstellungen, die nicht wieder rückgängig gemacht werden!
Gruß
Geist ist geil!
Anzeige
AW: Zwischenspeicher leer nach Anlegen neuen Files
21.03.2006 16:48:23
JMR
ahja, hab ich verstanden...:-)War mir allerdings nicht klar, dass ich das mit meiner schoenen VBA-Zeile bewirke...
AW: Zwischenspeicher leer nach Anlegen neuen Files
21.03.2006 16:26:38
IngGi
Hallo Jan,
kopiere doch einfach erst nach dem Einfügen der neuen Arbeitsmappe. So kannst du das Problem elegant umgehen. Und noch ein Tipp. Du kannst dir eine Menge Ärger ersparen, wenn du dem Anwender mit deinen Makros nicht die persönlichen Einstellungen zerschiesst. Stell die Anzahl von Tabellenblättern bei neuen Arbeitsmappen wieder auf den Ausgangswert zurück.
Also:
intTBs = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 1
Workbooks.Add
ActiveSheet.Name = CasaEstero & Data
Range(Suche, Suche.Offset(Suche.Offset(0, 6).End(xlDown).Row - Suche.Row, 8)).Copy _
Destination:=Workbooks("CasaEstero" & Data).Sheets(1).Range("A1")
Application.SheetsInNewWorkbook = intTBs
Gruß Ingolf
Anzeige
AW: Zwischenspeicher leer nach Anlegen neuen Files
21.03.2006 16:46:19
JMR
Hallo Ingolf!
Schoen wieder von dir zu hoeren:-)
Klappt leider nicht bei mir...
Fehler "9" taucht auf nach Ausfuehren dieser Zeile:
Range(Suche, Suche.Offset(Suche.Offset(0, 6).End(xlDown).Row - Suche.Row, 8)).Copy _
Destination:=Workbooks("CasaEstero" & Data).Sheets(1).Range("A1")
Ich vermute mal, dass das Workbook ("CasaEstero" & Data)nicht gefunden wird, da es ja als solches noch nicht angelegt ist ? Das Abspeichern/Benennen muss ich dem Anwender ueberlassen...
Gruss,
Jan
AW: Zwischenspeicher leer nach Anlegen neuen Files
21.03.2006 16:56:47
JMR
Hallo Ingolf,
wenn ich deine Zeile wie folgt modifiziere, klappts auch nicht (Fehler 424, wenn ich richtig uebersetze Erforderliches Obejekt =necessario oggetto):
Range(Suche, Suche.Offset(Suche.Offset(0, 6).End(xlDown).Row - Suche.Row, 8)).Copy _
Destination:=NewWorkbook.Sheets(1).Range("A1")
Welchen Namen hat das neue Workbook in VBA, solange es nicht abgespeichert wird, so dass ich drauf zugreifen kann?
Gruss,
Jan
Anzeige
versuchs mal mit einer klaren Objectzuweisung
21.03.2006 17:03:10
Peter
Servus,
musst noch kleine Details ändern, dann müste es klappen.


Option Explicit
Sub basTestCopy()
Dim QuWbk As Workbook, ZiWbk As Workbook
Dim rngCopy As Range
Dim intOld As Integer, Data As Integer
    Data = 15
    intOld = Application.SheetsInNewWorkbook
    Set rngCopy = Sheets("Tabelle1").Range("C9:G16") 'Sheetnamen ändern siehe unten
    'Bei dir halt obrige Zeile mit unterer Zeile austauschen
    'Set rngCopy = Range(Suche, Suche.Offset(Suche.Offset(0, 6).End(xlDown).Row - Suche.Row, 8))
    'Du musst noch die SheetNamen des Quellsheets ändern !
    Set QuWbk = ThisWorkbook
    Application.SheetsInNewWorkbook = 1
    Set ZiWbk = Workbooks.Add
    With ZiWbk.Sheets(1)
        .Name = "CasaEstero" & Data
        QuWbk.Sheets("Tabelle1").Range(rngCopy.Address).Copy _
            Destination:=.Range("A1") 'Sheetnamen ändern siehe oben
    End With
    Application.SheetsInNewWorkbook = intOld
End Sub


MfG Peter
Anzeige
Back to the roots
21.03.2006 17:17:08
JMR
Hi Peter!
Da das Makro mittlerweile recht maechtig ist hab ich mal hier das wesentliche zusammengestellt:

Sub InputBoxTest()
Dim CasaEstero As Variant
Dim Data As Variant
Dim Cerca As Range
CasaEstero = Application.InputBox("Digitare Nome : ", "Scelta Casa Estero")
Data = Application.InputBox("Digitare Data di oggi (in senso GG_MM_AAAA) : ", "Data")
MsgBox "Casa scelta : " & CasaEstero
Set Cerca = Range("A:A").Find(CasaEstero)
If Cerca Is Nothing Then
MsgBox "Casa Estero non trovato"
End If
If Cerca Is Nothing Then Exit Sub
Range(Cerca, Cerca.Offset(Cerca.Offset(0, 6).End(xlDown).Row - Cerca.Row, 8)).Copy
Application.SheetsInNewWorkbook = 1
Workbooks.Add
ActiveSheet.Name = CasaEstero & Data
Range("A1").Paste' HIER TRITT DAS PROBLEM AUF, Zwischenspeicher leer
End Sub

VBA kenn ich bis dato fast nur per Recorder, daher brauche ich noch n bissl bis ich dahinterkomme, was du geschrieben hast...
Danke!
Gruss,
Jan
Anzeige
So gehts...
21.03.2006 17:42:01
JMR
Hallo Peter!
Hab deine Objektzuweisung entsprechend eingebaut und die Sheets benannt.
Es klappt spitzenmaessig!
Dank an alle !
So funzt es, fuer alle die's interessiert:

Sub Peter()
Dim CasaEstero As Variant
Dim Data As Variant
Dim Cerca As Range
Dim QuWbk As Workbook, ZiWbk As Workbook
Dim rngCopy As Range
Dim intOld As Integer
CasaEstero = Application.InputBox("Digitare Nome : ", "Scelta Casa Estero")
Data = Application.InputBox("Digitare Data di oggi (in senso GG_MM_AAAA) : ", "Data")
MsgBox "Casa scelta : " & CasaEstero
Set Cerca = Range("A:A").Find(CasaEstero)
If Cerca Is Nothing Then
MsgBox "Casa Estero non trovato"
End If
If Cerca Is Nothing Then Exit Sub
intOld = Application.SheetsInNewWorkbook
Set rngCopy = Sheets("ESTRATTO").Range(Cerca, Cerca.Offset(Cerca.Offset(0, 6).End(xlDown).Row - Cerca.Row, 8))
'Du musst noch die SheetNamen des Quellsheets ändern !
Set QuWbk = ThisWorkbook
Application.SheetsInNewWorkbook = 1
Set ZiWbk = Workbooks.Add
With ZiWbk.Sheets(1)
.Name = CasaEstero & Data
QuWbk.Sheets("ESTRATTO").Range(rngCopy.Address).Copy _
Destination:=.Range("A1") 'Sheetnamen ändern siehe oben
End With
Application.SheetsInNewWorkbook = intOld
End Sub

Anzeige
freut mich, Danke f.d.RM. o.w.t.
21.03.2006 18:16:48
Peter
MfG Peter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige