PDA

Vollständige Version anzeigen : Kopiermakro hat Fehler


VBAUser1234
09.09.2011, 15:24
Hallo,

bei dem nachfolgenden Makro tritt bei der Range immer ein Fehler auf:

Private Sub CommandButton_Kopieren_Click()

Dim Tabellen As Integer
Dim i As Integer
Dim j As Integer

j = 2

Tabellen = Workbooks("xyz.xls").Sheets.Count

Windows("xyz.xls").Activate

For i = 9 To Tabellen

Sheets(i).Select

Range("J1").Select ' (Hier tritt der Fehler auf und es wird nicht weiter ausgeführt)
'Cells(1, 10).Select
Selection.AutoFill Destination:=Range("J1:BS1"), Type:=xlFillDefault
Range("J1:BS1").Select
Selection.Copy
Sheets("Übersicht").Select
'Range("B2").Select
Cells(j, 2).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

j = j + 1


Next


End Sub

Das Makro an sich funktioniert. Ich hab es aufgezeichnet und wenn ich es einzeln nutze passt es.
Nur wenn ichs auf meinem ersten Blatt per Knopfdruck ausführen will geht es nicht und bleibt bei Range stehn.
Hat wer eine Ahnung?

Danke im Voraus

Hasso
09.09.2011, 18:26
Hallo VBAUser1234,

dein Code ist voll mit Selects, die überflüssig sin und es ist auch nicht ganz klar, welche Tabelle jeweils angesprochen wird.

In welcher Mappe ist denn die Tabelle "Übersicht" - ich nehme mal an, in der Mappe mit dem Button? Deren Name sollte unten statt des roten Textes eingesetzt werden.

Ich habe mal den Code etwas abgeändert:
Private Sub CommandButton_Kopieren_Click()

Dim Tabellen As Integer
Dim i As Integer
Dim j As Integer

j = 2
Tabellen = Workbooks("xyz.xls").Worksheets.Count

With Workbooks("xyz.xls")
For i = 9 To Tabellen
.Worksheets(i).Range("J1").AutoFill Destination:=.Worksheets(i).Range("J1:BS1"), Type:=xlFillDefault
.Worksheets(i).Range("J1:BS1").Copy
Workbooks("hier der Name der Mappe").Worksheets("Übersicht").Cells(j, 2).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
j = j + 1
Next
End With

End Sub


Ansonsten gilt mein immer wieder gerne gegebener Tipp: Das Hochladen einer Beispieldatei erhöht die Aussicht auf eine hilfreiche Antwort ungemein

VBAUser1234
12.09.2011, 08:57
Hallo,

Leider passiert gar nichts wenn ich den Code anpasse und einpflege :-(

Hier noch ein paar Infos.
dies ist der Originalteil des Kopiermakros der mit Makroaufzeichen enstanden ist:

Sub MittelwerteInUebersichtKopierenZeile()

Range("J1").Select
Selection.AutoFill Destination:=Range("J1:BS1"), Type:=xlFillDefault
Range("J1:BS1").Select
Selection.Copy
Sheets("Übersicht_Mittelwert").Select
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Und der Knopf ist in dem Sheet Daten wie im Anhang zu sehen ist.
Nach Übersicht Standardabweichung soll eben der Mittelwert der danach erzeugten Sheets, hier eben Auswahl 1 und 2 in Übersicht_Mittelwert kopiert werden. Der Mittelwert steht in diesen von J1 bis BS1.
Mich wunderts halt dass das Kopiermakro so funktioniert mit den ganzen selects und in dem umgebauten gehts nicht weil er bei Range("J1").Select
nicht mehr weitermacht.

Hoffe die Informationen reichen aus für eine Hilfe :-)

Danke im Voraus :-)