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

Hilfe zu Makro...

Hilfe zu Makro...
21.04.2003 14:27:05
Harti
Ich muss leider mein Thema noch einmal aufgreifen. Habe zwar eine Antwort bekommen, die Lösung funktioniert aber nicht richtig.

Aber erst einmal zum eigentlichen Hintergrund:

Und zwar habe ich in einer Datei in den Feldern E11 bis E316 und G11 bis G316 Werte stehen. Diese möchte ich jetzt mittels Makro in eine andere Datei kopieren, nennen wir sie einfach datei2.xls. Das Makro soll aber vorher abfragen, in welches Tabellenblatt die Werte (inklusive Formatierung der Zellen) kopiert werden sollen. Dann gebe ich etwa tabelle1 ein und die Werte werden dann in die Tabelle1 kopiert und zwar sollen die Werte stets in die Felder B11 bis B316 und D11 bis D316 kopiert werden.

So...dazu habe ich folgende Lösung (die leider nicht funktioniert) erhalten. Wer kann helfen...ist wirklich wichtig und dringend:

Public Sub CopyColumns()
'kopiert 2 Bereiche in ausgewählte Tabelle
Const strOutFile = "F:\projekte\dunst\datei2.xls"
Dim rngInput1 As Range 'Input-Spalte 1
Dim rngInput2 As Range 'Input-Spalte 2
Dim rngOutput1 As Range 'Output-Spalte 1
Dim rngOutput2 As Range 'Output-Spalte 2
Dim wbkOutput As Workbook 'Output-File
Dim shtOutput As Worksheet 'Output-Tabelle
Dim strSheet As String 'Tabellen-Name

strSheet = InputBox("Tabellenblatt:") 'Tabellen-Namen abfrage

Set rngInput1 = [E11:E316] 'Input-Spalte 1 zuweisen
Set rngInput2 = [G11:G316] 'Input-Spalte 2 zuweisen
Set wbkOutput = Workbooks.Open(strOutFile) 'Output-File öffnen
On Error GoTo errhand
Set shtOutput = wbkOutput.Worksheets(strSheet) 'Output-Tabelle zuweisen
On Error GoTo 0
Set rngOutput1 = shtOutput.[B11:B316] 'Output-Spalte 1 zuweisen
Set rngOutput2 = shtOutput.[D11:D316] 'Output-Spalte 2 zuweisen

rngInput1.Copy 'Spalte 1 kopieren
rngOutput1.PasteSpecial xlPasteValues 'als Wert einfügen
rngInput2.Copy 'Spalte 2 kopieren
rngOutput2.PasteSpecial xlPasteValues 'als Wert einfügen
Application.CutCopyMode = False 'Kopiermodus beenden

shtOutput.Activate 'Output-Tabelle anzeigen
[A1].Activate 'go home

Exit Sub




12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Hilfe zu Makro...
21.04.2003 16:47:43
ChrisL

Hallo Harti

Was funktioniert denn bei deinem Code nicht (Zeile und Fehlermeldung)?

Jedenfalls denke ich, dass es auch einfacher geht. Versuch mal nachstehendes Beispiel.

Option Explicit

Sub Makro1()
On Error GoTo errorhandler

Workbooks.Open Filename:="F:\projekte\dunst\datei2.xls"

With Workbooks("datei2.xls").Sheets("Tabelle1")
.Range("B11") = Workbooks("datei1.xls").Sheets("Tabelle1").Range("E11")
.Range("D11") = Workbooks("datei1.xls").Sheets("Tabelle1").Range("G11")
.Range("B316") = Workbooks("datei1.xls").Sheets("Tabelle1").Range("E316")
.Range("D316") = Workbooks("datei1.xls").Sheets("Tabelle1").Range("G316")
End With

errorhandler:
End Sub


Gruss
Chris


Anzeige
Re: Hilfe zu Makro...
21.04.2003 16:51:42
andre

hallo harti,
xp haben noch nicht viele, daher musst du bestimmt warten. habe auch keins, aber beschreibe mal den fehler, vielleicht bekommt man es "theoretisch" hin.
gruss andre

Re: Hilfe zu Makro...
21.04.2003 17:10:14
Harti

Fehlermeldung lautet:

Die Fehler beim Kompilieren.
Sprungmarke nicht definiert!

Wichtig bei dem ganzen ist, dass vorher die Abfrage erscheint, bei der ich den Tabellennamen der Datei datei2.xls eingeben kann.

Die Datei hat nämlich mehrere Tabellenblätter und ich muss die Auswahl treffen


Re: Hilfe zu Makro...
21.04.2003 17:11:17
ChrisL

Hallo Harti

Hab jetzt mal genauer gelesen... :-)

Der erste Vorschlag war schon nicht schlecht... noch ein paar kleine Änderungen.

Option Explicit

Private Sub CommandButton1_Click()
'kopiert 2 Bereiche in ausgewählte Tabelle
Const strOutFile = "C:\Dokumente und Einstellungen\Administrator\Desktop\datei2.xls"
Dim rngInput1 As Range 'Input-Spalte 1
Dim rngInput2 As Range 'Input-Spalte 2
Dim rngOutput1 As Range 'Output-Spalte 1
Dim rngOutput2 As Range 'Output-Spalte 2
Dim wbkOutput As Workbook 'Output-File
Dim shtOutput As Worksheet 'Output-Tabelle
Dim strSheet As String 'Tabellen-Name

strSheet = InputBox("Tabellenblatt:") 'Tabellen-Namen abfrage

Set rngInput1 = [E11:E316] 'Input-Spalte 1 zuweisen
Set rngInput2 = [G11:G316] 'Input-Spalte 2 zuweisen
Set wbkOutput = Workbooks.Open(strOutFile) 'Output-File öffnen
On Error GoTo errhandler
Set shtOutput = wbkOutput.Worksheets(strSheet) 'Output-Tabelle zuweisen
On Error GoTo 0
Set rngOutput1 = shtOutput.[B11:B316] 'Output-Spalte 1 zuweisen
Set rngOutput2 = shtOutput.[D11:D316] 'Output-Spalte 2 zuweisen

rngInput1.Copy 'Spalte 1 kopieren
rngOutput1.PasteSpecial xlAll 'als Wert einfügen
rngInput2.Copy 'Spalte 2 kopieren
rngOutput2.PasteSpecial xlAll 'als Wert einfügen
Application.CutCopyMode = False 'Kopiermodus beenden

shtOutput.Activate
shtOutput.Range("A1").Select 'go home

errhandler:
End Sub


Gruss
Chris

Anzeige
Re: Hilfe zu Makro...
21.04.2003 17:15:49
andre

hallo harti,
chris hat's ja gerade geschrieben:
errhandler:
hat bei dir gefehlt
gruss andre

Re: Hilfe zu Makro...
21.04.2003 17:52:55
Harti

Hat wunderbar geklappt....vielen Dank!

Eine Frage noch: Wie muss ich die Zeile

Const strOutFile = "C:\Dokumente und Einstellungen\Administrator\Desktop\datei2.xls"

ändern, damit das Makro funktioniert, egal in welchem Ordner die Datei datei2.xls steht? Beide Dateien sind stets im selben Ordner...

Harti

Re: Hilfe zu Makro...
21.04.2003 17:58:58
Harti

Noch eine Frage (ich weiß, heute bin ich echt unverschähmt).

Was bedeutet am Anfang des Makros
Option Explicit

Private Sub


Habe Option Explicit und Private weggelassen. Makro funktioniert trotzdem. Brauche ich die beiden Einträge unbedingt?

Harti

Anzeige
Re: Hilfe zu Makro...
21.04.2003 18:31:48
andre

hallo harti,
1. o..e.. du musst alle variablen definieren, z.B. mit dim
2. makro ist z.b. bei extra-makro-ausführen verborgen
gruss andre

Re: Hilfe zu Makro...
21.04.2003 18:37:07
andre

hallo harti,
( den pfad mit activeworkbook.path feststellen )
Const strOutFile = activeworkbook.path & "\datei2.xls"
gruss andre

Re: Hilfe zu Makro...
21.04.2003 18:42:00
ChrisL

Hallo Harti

Wenn du wie folgt abänderst müsste es funken...

Dim strOutFile As String

strOutFile = ThisWorkbook.Path & "\datei2.xls"
Set wbkOutput = Workbooks.Open(strOutFile) 'Output-File öffnen

statt...
Const strOutFile = "C:\Dokumente und Einstellungen\Administrator\Desktop\datei2.xls"


Und zur Frage betr. Option Explicit. Zwingend brauchen ist nicht der Fall, aber schau mal hier...
https://www.herber.de/forum/archiv/228to232/t230670.htm

Gruss
Chris

Anzeige
Re: Hilfe zu Makro...
21.04.2003 18:45:41
ChrisL

Hallo Andre

Glaube nicht. Bin kein Profi, aber Const steht vermutlich für konstant, was es eben nicht ist. Jedenfalls hat es bei mir nicht funktioniert.

Gruss
Chris

Re: Hilfe zu Makro...
21.04.2003 19:23:46
andre

...stimmt. das const muss in dem fall weg.
gruss andre

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige