Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
340to344
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
340to344
340to344
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Hilfe!!! Daten aus einem WS in ein anderes kopiere

Hilfe!!! Daten aus einem WS in ein anderes kopiere
25.11.2003 08:32:09
Helmut
Hallo liebe Forumleute,

ich habe wieder ein kleines Problem, bei dem ich mächtig anstehe.
Ich habe eine Excel-Datei, in der ich am ersten Tabellenblatt einige Buttons habe, um Macros auszuführen.
Ein Macro davon sucht im zweiten Tabellenblatt dieser Excel-Datei in einer Spalte nach dem Eintrag "0A Ergebnis". Wenn dieser Eintrag gefunden wurde, soll eine andere Excel-Datei geöffnet werden und aus der ersten Datei ein Wert aus einer Zelle in die neu geöffnete Datei in eine bestimmte Zelle kopiert werden.
Danach soll die neu geöffnete Datei gespeichert und geschlossen werden.
(Später sollen noch andere "Case"-Abfragen für solche Kopiervorgänge eingebaut werden)

Dazu habe ich ein Macro "manuell" aufgezeichnet und angepasst, aber es kommt nur bis zum Kopiervorgang des Wertes aus der ersten Datei.
Die 2. Datei wird zwar geöffnet, aber mehr schon nicht.
Fehlermeldung:
Laufzeitfehler '9'
Index außerhalb des gültigen Bereichs

Meine Syntax ist folgende:
(der Debugger bleibt in der Zeile stehen, die ich mit 2 Rufzeichen am Anfang markiert habe!! Die Variablen KST, Jahr und Monat sind global gesetzt und bekannt; die Datei wird ja auch geöffnet)
Mit der Variablen m zähle ich die Anzahl der "belegten" Zeilen in der Spalte.


Private Sub CommandButton3_Click()
' Wenn in Spalte F (Auftragsarten AA) die verschiedenen Auftragsarten "XY Ergebnis" stehen, zugehörige Werte
' der Spalten I (6) (Std.) und M (13) (Kosten) kopieren und in Periodenarbeitsmappe einfügen
Dim m As Integer
Dim n As Integer
m = 1
Sheets("ETODATE").Activate
Sheets("ETODATE").Range("F2").Select
While IsEmpty(ActiveCell.Value) = False
ActiveCell.Offset(1, 0).Select
m = m + 1
Wend
For n = 2 To m
Select Case Sheets("ETODATE").Cells(n, 6)
Case "0A Ergebnis"
Workbooks.Open FileName:="H:\20031124\" & KST & "_" & Jahr & "_" & Monat & ".xls"
Windows("E-Todate.xls").Activate
Sheets("ETODATE").Range("I" & n & "").Copy
!!          Windows(" " & KST & "_" & Jahr & "_" & Monat & ".xls").Activate
Sheets("Tabelle1").Range("C4").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.Close SaveChanges:=True
End Select
Next n
End Sub


Was mache ich hier falsch?? Beim Kompilieren kommt keine Fehlermeldung! Schafft VBA den Fensterwechsel für den Kopiervorgang nicht? Gehört vor ..Windows("....) noch eine genauere Angabe? Auch für die Range-Auswahl davor mußte ich das aufgezeichnete Macro anpassen indem ich den Sheetnamen vor den Range gesetzt habe (Sheets("ETODATE").Range("I" & n & "").Select)!)
Bei Windows() finde ich aber keinen geeignete Angabe "davor"!?

Bitte euch um Hilfe und eventuelle genaue Scriptangabe, denn ich bin noch recht Anfänger und mache Learning by Doing, aber hier weiß ich nach Stunden des Ausprobierens auch nicht weiter!

Danke im Voraus!

LG
Helmut

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe!!! Daten aus einem WS in ein anderes kopiere
25.11.2003 08:43:27
Gunther
Du musst das Worksheet aktivieren, nicht nur die Datei!

Bsp.
Workbooks("Name").Worksheets("Name").Activate

Gruß Gunther
AW: Hilfe!!! Daten aus einem WS in ein anderes kopiere
25.11.2003 08:52:22
Martial
Die Datei heisst auch
(KST & "_" & Jahr & "_" & Monat & ".xls")
und nicht
(" " & KST & "_" & Jahr & "_" & Monat & ".xls")

Gruss, Martial
AW: Hilfe!!! Daten aus einem WS in ein anderes kopiere
25.11.2003 10:24:16
Helmut
Hi Martial,

super, danke dir recht herzlich!!! Es war wirklich nur der Dateiname mit den Hochkommas!!?
Wieso ist beim Kompilieren für Excel-VBA die Syntax von mir vorher aber in Ordnung??
Da wäre ich nie dahintergekommen!!!
Weißt du vielleicht noch wie ich mehrere Case-Abfragen in der Schleife einbinden kann, wobei bei jedem richtigen "Case" ein anderer Wert in eine andere Zelle kopiert werden soll. Die komplett ausgefüllte Tabelle soll dann gespeichert un geschlossen werden.
Sollte ich dazu das Workbook außerhalb der Schleife öffnen, dann in der ersten Datei suchen und bei richtigem "Case" 2. Datei aktivieren und hineinkopieren?

Danke dir nochmals!

LG
Helmut
Anzeige
AW: Hilfe!!! Daten aus einem WS in ein anderes kopiere
25.11.2003 11:32:50
Martial
Hi Helmut

Ja, wenn auf jeden Fall immer in dasselbe Workbook kopiert wird, dann machst du es besser einmal auf, lässt die Schleife laufen und schliesst es dann wieder. Das kann z.B. so aussehen (Korrigier evtl die Namen etc.): Man kann übrigens auch auf das Selektieren verzichten...


Sub versuchNr1()
Dim cell
Dim WB_KST_Tab1
'folgende Zeile verhindert die Bildschirmaktualisierung, damit man das Öffnen nicht mitbekommt (einkommentieren)
'nicht vergessen wieder auf true zu stellen
'Application.ScreenUpdating = False
Workbooks.Open FileName:="H:\20031124\" & KST & "_" & Jahr & "_" & Monat & ".xls"
Set WS_KST_Tab1 = Workbooks(KST & "_" & Jahr & "_" & Monat & ".xls").Worksheets("Tabelle1")
With Workbooks("E-Todate.xls").Worksheets("ETODATE")
'wenn alle Zellen ausgefüllt sind, gehts so:
For Each cell In .Range("F2:F" & .Range("F2").End(xlDown).Row)
Select Case cell
Case "OA Ergebnis"
.Range("I" & cell.Row).Copy
WS_KST_Tab1.Range("I" & cell.Row).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Case "Was auch immer"
.Range("K" & cell.Row).Copy
WS_KST_Tab1.Range("K" & cell.Row).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
End Select
Next cell
End With
Workbooks(KST & "_" & Jahr & "_" & Monat & ".xls").Close SaveChanges:=True
Set WS_KST_Tab1 = Nothing
'falls auf false gestellt wurde, wieder auf true stellen
'Application.ScreenUpdating = True
End Sub

Anzeige
AW: Hilfe!!! Daten aus einem WS in ein anderes kopiere
25.11.2003 20:54:58
Helmut
Hi Martial,

das funktioniert sehr gut! Ich danke dir! Vor allem das mit der Bildschirmaktualisierung ist superfein! Habe es ohne probiert, kein Vergleich!!

Schönen Abend,
LG
Helmut
AW: Hilfe!!! Daten aus einem WS in ein anderes kopiere
25.11.2003 10:27:21
Helmut
Hi Gunther,

danke für den Tipp; die Ursache war zwar der Dateiname, wie Martial das geschrieben hat, aber dein Tipp war sehr wichtig für mich, denn über diese Sache bin ich schon des Öfteren gestolpert!

Danke dir für die rasche Hilfe!

LG
Helmut

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige