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

Warum hilft mir keiner?

Warum hilft mir keiner?
16.11.2006 10:09:28
borntocook
Hallo, liebe Allwissenden!
Ich habe so eine Frage nun schon zweimal gepostet, aber leider keine Antwort bekommen. Da ich in diesen Dingen nicht so bewandert bin weiss ich nicht genau, ob meine Frage zu banal oder zu kompliziert ist.
Ich will auf Buttonklick ein Makro ausführen lassen, dass eine andere Exceldatei öffnet, dort in einer Spalte die nächste freie Zeile sucht und dann ein bestimmtes Feld aus der Ursprungsdatei dort hinein kopiert. Da sich die Ursprungsdatei immer wieder ändert müssen die Daten kopiert werden und nicht nur auf das Feld verwiesen werden.
Mit dem Code:
Workbooks("c:\...\Ziel.xls").Activate
fängt es schon an mit Laufzeitfehler 9.
Momentan überlege ich, ob ich über
Zeile = Range("C5").End(xlDown).row
zumindest die Zeilen zählen kann, aber ich komme einfach auf keinen grünen Zweig.
Ich hoffe, dass ich mein Problem verständlich genug ausdrücke, ich bin da eher immer etwas umständlich.
Gruss
btc

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Warum hilft mir keiner?
16.11.2006 10:21:17
Harald
Hallo btc
Du kannst den Vorgang komplett mit dem Makrorekorder aufzeichnen.
In der Nachbearbeitung vor dem Kopieren die erste freie Zelle für die Zieladresse manuell anpassen.
Erste freie Zelle nimmt man üblicherweise von unten
Zeile = cells(rows.count, 3).end(xlup).row
Gruss Harald
AW: Warum hilft mir keiner?
16.11.2006 12:42:36
borntocook
Hab ich probiert, geht irgendwie nicht. Welchen Wert genau liefert denn die Programmzeile "Zeile=...."? Eine Range, eine Zahl? Und wie kann ich diesen Wert wieder einfügen? Ich habe es direkt mi dem Wert und dann mit einem Umweg, falls er bloss die Zeilennummer angibt probiert. Beides ISt für ihn nicht verträglich. Und mit Goto will er schon gar nicht. Ein Beispiel:
Dim Feld As Range
Zeile = Cells(Rows.Count, 3).End(xlUp).Row
Feld = "c" + Zeile
Windows("Ursprung.xls").Activate
Range("G55").Select
Selection.Copy
Windows("Ziel.xls").Activate
Range("Feld").Select
ActiveSheet.Paste
End Sub
Das ist natürlich nur der Testcode. Was mache ich falsch?
Anzeige
AW: Warum hilft mir keiner?
16.11.2006 13:03:13
Harald
Hallo,
da sind gleich ein paar Böcke drin ;-)
Zeile gibt die Zeilennummer zurück und da das bis 65000nochwas geht ist das As Long
Die richtige Zeile gibts auch nur, wenn es sich auf die richtige Mappe bezieht.
Feld is eigentlich überflüssig und eine Range-Kombi wird mit & und nicht mit + verkettet.
Probiers mal so.(Ist eigentlich ne Krücke...so ganz ohne Blattnamen ;-))
Dim Zeile As Long
Application.ScreenUpdating = False
On Error GoTo ende
Windows("Ursprung.xls").Activate
If Range("G55") = "" Then GoTo ende
Range("G55").Copy
Windows("Ziel.xls").Activate
'und sofern Ziel.xls nur ein Blatt hat
Zeile = ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row + 1
Range("C" & Zeile).PasteSpecial Paste:=xlValues
ende:
With Application
.ScreenUpdating = True
.CutCopyMode = False
End With
If Err.Number &gt 0 Then MsgBox "Es ist ein Fehler aufgetreten"
Gruss Harald
Anzeige
AW: Warum hilft mir keiner?
16.11.2006 13:17:12
gerwas
hallo
versuchs doch mal so:

Sub daten_schaufeln()
Dim ziel As Object
Set ziel = GetObject("L:\zwischenlager\dahin_solls.xls")
erste_freie_zeile = ziel.Sheets(1).Cells(Rows.Count, 3).End(xlUp).Row + 1 'wenn man in spalte 3 sucht
ziel.Sheets(1).Cells(erste_freie_zeile, 3) = ActiveSheet.Cells(3, 1).Value 'wenn die zu übertragenden daten in spalte 1 zeile 3 stehen
ziel.Close savechanges:=True
End Sub

gruss GerWas
etwas kompakter
16.11.2006 14:24:47
Rudi
Hallo,
das mit GetObject zu lösen, gefällt mir sehr gut.

Sub daten_schaufeln()
Dim rngZiel As Range
Set rngZiel = GetObject("c:\temp\ziel.xls").Sheets(1). _
Cells(Rows.Count, 3).End(xlUp).Offset(1, 0) '
rngZiel = ActiveSheet.Cells(3, 1).Value
rngZiel.Parent.Parent.Close True
Set rngZiel = Nothing
End Sub

Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
Anzeige
AW: etwas kompakter
16.11.2006 15:08:22
borntocook
Jetzt habe ich mir mal alle Versionen kopiert und mit der letzten angefangen. Die Namen habe ich noch entsprechend geändert, sieht jetzt etwa so aus:

Private Sub CommandButton5_Click()
Dim rngZiel As Range
Set rngZiel = GetObject("C:\Dokumente und Einstellungen\...liste.xls").Sheets("Nov.06"). _
Cells(Rows.Count, 3).End(xlUp).Offset(1, 0) '
rngZiel = ActiveSheet.Cells(3, 1).Value
rngZiel.Parent.Parent.Close True
Set rngZiel = Nothing
End Sub

Und jetzt ist meine Ziel-Liste komplett weg. Sie ist zwar anscheinend noch da und hat auch noch die richtige Grösse, aber wenn man sie öffnet, sieht es genauso aus wie ein komplett leeres Excel-File, ohne Tabellen oder sonst etwas. Auch der Dateiname ist oben nicht zu sehen, sondern nur ein nacktes 'Microsoft Excel'. So ziemlich jede Auswahl ist zudem gesperrt.
Was ist das? Wie kann ich das ändern?
Anzeige
AW: etwas kompakter
16.11.2006 15:27:50
Rudi
Hallo,
dummer Fehler. Die Datei wird im ausgeblendeten Zustand gespeichert.
Fenster-einblenden
Oder:

Private Sub CommandButton1_Click()
Dim rngZiel As Range
Set rngZiel = GetObject("C:\temp\ziel.xls").Sheets("Tabelle1"). _
Cells(Rows.Count, 3).End(xlUp).Offset(1, 0) '
rngZiel = ActiveSheet.Cells(3, 1).Value
With rngZiel.Parent.Parent
Windows(.Name).Visible = True
.Close True
End With
Set rngZiel = Nothing
End Sub

Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
AW: etwas kompakter
17.11.2006 13:57:30
borntocook
Danke für die Antwort. Jetzt ruft er zwar die Zieldatei auf und geht scheinbar auf die richtige Zelle, allerdings trägt er dort nichts ein, egal wie und wo ich Range.Copy uns PasteSpecial usw. einsetze. Könntest du mir wohl einen kompletten Code inklusive des Kopierens und Einfügens sagen, ich verzweifel hier noch.
Vielen Dank schon mal
borntocook
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige