Office: VBA / kopieren+inhalte einfügen--> Fehler 400

Helfe beim Thema VBA / kopieren+inhalte einfügen--> Fehler 400 in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich komme nicht wirklich weiter... ich versuche einen copy-insertbefehl in ein existierendes makro zu intergrieren und es kommt immer ein... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Gomorra, 16. August 2010.

  1. Gomorra Erfahrener User

    VBA / kopieren+inhalte einfügen--> Fehler 400


    Hallo,

    ich komme nicht wirklich weiter...
    ich versuche einen copy-insertbefehl in ein existierendes makro zu intergrieren und es kommt immer ein Fehler 400

    Von 1.xls soll ein bestimmter bereich nach D.xls rüberkopiert werden, aber da dieser Bereich aus vielen formeln besteht und ich die ganze Sache weiterverarbeiten muß soll es als copy-insert sein.

    ich habe untenstehend mal meinen aktuellen versuch angegeben (der so wahrscheinlich falsch ist), habe es mit vielen möglichkeiten versucht, ihn stört irgendwie dieses selection.

    Habs auch als extrabefehl am Ende schon mal versucht... will er auch nicht.

    Danke für eure Hilfe

    Dim b

    Workbooks.Open "1.xls"

    Workbooks(" 1.xls").Worksheets("T").Activate
    Worksheets("T").Range("B9:Ac108").Copy Workbooks("D.xls").Worksheets("B1").Range("B9:AC108")
    ''Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    b = Worksheets("Teilnehmerliste").Range("W1")

    Workbooks("D.xls").Worksheets("B1").Range("AD9:AD108") = b
    Workbooks("1.xls").Save
    Workbooks("1.xls").Close




    End Sub

    grüße

    Boris
     
    Gomorra, 16. August 2010
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi Boris,

    hast du es schon mal so versucht (ungetestet):
    Code:
    Worksheets("T").Range("B9:Ac108").Copy
    Workbooks("D.xls").Worksheets("B1").Range("B9").PasteSpecial Paste:=xlPasteValues
    Bis später,
    Karin
     
    Beverly, 16. August 2010
    #2
  3. Gomorra Erfahrener User
    ;-)

    Besten Dank..

    nur warum funktioniert es so? Stört ihn dieser Selectbefehl?

    dankeschöön
    grüße

    Boris
     
    Gomorra, 16. August 2010
    #3
  4. schatzi Super-Moderator

    VBA / kopieren+inhalte einfügen--> Fehler 400

    Hallo!
    Welcher Select-Befehl?
    "Selection" kann nur auf etwas zugreifen, was du vorher mit "Select" ausgewählt hast!
    Du hast aber nix mit "Select" ausgewählt, und das ist auch gut so, denn "Select" ist in ca.99% aller Fälle überflüssig, wie du an Karin's Lösung sehen kannst.
     
    schatzi, 16. August 2010
    #4
  5. Beverly
    Beverly Erfahrener User
    Hi Boris,

    Kopieren und Einfügen ist etwas anderes als Kopieren -> Bearbeiten -> Inhalte Einfügen, folglich unterscheiden sich auch die Befehle dafür.

    Bis später,
    Karin
     
    Beverly, 16. August 2010
    #5
  6. miriki Erfahrener User
    Code:
    Dim b
    Wenn irgend möglich, vermeide den "Variant" Datentyp, indem Du explizit angibst, welchen Datentyp Du benutzen möchtest. Hier also z.B.
    Code:
    Dim b as String
    Code:
    Workbooks.Open "1.xls"
    Workbooks(" 1.xls").Worksheets("T").Activate
    Die zweite Zeile ist nicht zwingend notwendig, wenn Du nur aus irgendeinem Bereich aus irgendeinem Blatt der Mappe etwas herauskopieren möchtest. (Stört sich das Ding nicht an dem Leerzeichen vor der "1"?)

    Code:
    Worksheets("T").Range("B9:Ac108").Copy Workbooks("D.xls").Worksheets("B1").Range("B9:AC108")
    Wenn Du mit mehreren parallel geöffneten Mappen (workbooks) arbeitest, ist es immer sinnvoll, explizit anzugeben, wo sich das Blatt (worksheets) befindet, das Du gerade ansprichst. Außerdem verwende ich gerne, in erster Linie für die Lesbarkeit, die Angabe des Parameters.
    Code:
    Workbooks("1.xls").Worksheets("T").Range("B9:Ac108").Copy destination:=Workbooks("D.xls").Worksheets("B1").Range("B9:AC108")
    Code:
    ''Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Das Problem hier ist wohl: Du greifst auf eine "Selection" zu, also einen "augewählten Bereich". Du hast aber vorher gar keinen Bereich als "ausgewählt" deklariert:
    Code:
    Workbooks("D.xls").Worksheets("B1").Range("B9:AC108").Select
    Aber: Ein .select ist eigentlich überhaupt nicht notwendig und macht die Abarbeitung eigentlich nur unnötig langsam.
    Code:
    Workbooks("D.xls").Worksheets("B1").Range("B9:AC108").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    BTW: Wenn Du mit PasteSpecial nur die Werte einkopieren möchtest, brauchst Du den Kladderadatsch mit destination:=... nicht mehr hinter dem obigen Copy-Befehl. Sonst würdest Du den Kram ja 2x einkopieren:
    Code:
    Workbooks("1.xls").Worksheets("T").Range("B9:Ac108").Copy
      'destination:=Workbooks("D.xls").Worksheets("B1").Range("B9:AC108")
    Workbooks("D.xls").Worksheets("B1").Range("B9:AC108").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Code:
    b = Worksheets("Teilnehmerliste").Range("W1")
    Hier zeigt sich ggf. eine Falle des vereinfachten DIM weiter oben und des Verlassens auf den Default-Wert einer Eigenschaft... Was steht nach dieser Zeile in "b"? In der von Dir verwendeten Version wohl ein Variant mit dem Untertyp z.B. String, in dem sich der Wert aus der Zelle W1 befindet. Aber... Was wäre, wenn in der nächsten Version nicht ".Value" die Standard-Eigenschaft von ".Range()" ist? Es könnte ja auch ein "Range"-Object zurückgegeben werden. Deine DIM-Deklaration würde das grundsätzlich ja auch für "b" zulassen. Dann würd's aber eine Fehlermeldung in der Zeile geben, weil die dann
    Code:
    Set b = Worksheets("Teilnehmerliste").Range("W1")
    heißen _müßte_ (und jetzt auch schon könnte. Von daher empfehle ich, auch wieder für die Lesbarkeit:
    Code:
    b = Worksheets("Teilnehmerliste").Range("W1").Value
    Code:
    Workbooks("D.xls").Worksheets("B1").Range("AD9:AD108") = b
    Hier dann auch wieder ähnlich:
    Code:
    Workbooks("D.xls").Worksheets("B1").Range("AD9:AD108").Value = b
    Gruß, Michael
     
Thema:

VBA / kopieren+inhalte einfügen--> Fehler 400

Die Seite wird geladen...
  1. VBA / kopieren+inhalte einfügen--> Fehler 400 - Similar Threads - VBA kopieren+inhalte einfügen

  2. VBA - Wert in einer Spalte finden und diese Zeile löschen

    in Microsoft Excel Hilfe
    VBA - Wert in einer Spalte finden und diese Zeile löschen: Moin moin ihr Lieben, ich habe nun schon im Netz nach einer Lösung gesucht, aber nichts passendes oder funktionstüchtiges gefunden. Ich habe eine Tabelle mit Spalten A - G. Nun soll Excel in der...
  3. VBA: 2 Tabellenblätter Inhalte kopieren und in eine Excelmappe einfügen und als .xlsm speichern

    in Microsoft Excel Hilfe
    VBA: 2 Tabellenblätter Inhalte kopieren und in eine Excelmappe einfügen und als .xlsm speichern: Hallo Excel-Freaks, ich bin gerade mit einem Code beschäftigt und komme nicht weiter. Gewünscht wäre ein Makro: Zwei Tabellenblätter Inhalte kopieren und in eine Excelmappe einfügen und als .xlsm...
  4. [EILT] Bestimmte Inhalte einer Zelle in eine andere Zelle kopieren und die Anzahl ausrechnen

    in Microsoft Excel Hilfe
    [EILT] Bestimmte Inhalte einer Zelle in eine andere Zelle kopieren und die Anzahl ausrechnen: Hallo zusammen, ich muss dringend bis Montag eine Liste fertigstellen, dass folgendes beinhaltet: Alle Mailadressen, die in der Zeile A2 sind, müssen untersucht werden und die Mailadressen mit...
  5. Kopieren nur mit Inhalt ohne Formatierung via VBA

    in Microsoft Excel Hilfe
    Kopieren nur mit Inhalt ohne Formatierung via VBA: Guten Morgen ! Ich habe da mal wieder eine Kleinigkeit *Smilie Es geht um eine Anwesenheitsliste: Es soll in der Liste nur möglich sein den Inhalt zu kopieren. Das Problem ist wenn jmd. einen...
  6. Inhalte farbige Zellen in anderes Blatt kopieren, Excel07 und VBA

    in Microsoft Excel Hilfe
    Inhalte farbige Zellen in anderes Blatt kopieren, Excel07 und VBA: Moin Moin, ich bin im VBA noch recht neu und benötige dringend einen Anstoß, wie ich folgendes Problem umsetzen kann. Die erste Zeile eines Zellenbereiches (ca.60 Spalten und 2000 Zeilen) soll...
  7. VBA Code-automatisches Kopieren von Excel-Inhalten; unterschiedliche Speicherorte

    in Microsoft Excel Hilfe
    VBA Code-automatisches Kopieren von Excel-Inhalten; unterschiedliche Speicherorte: Liebes Forum, ich melde mich mal wieder mit einer Frage zu einem VBA Code. Meine Excel-Masterdatei liegt auf einem Sharepoint im Ordner "A" und soll automatisch mit einem einzigen Button...
  8. Datenbereiche synchron erweitern (Zeilen einfüge/löschem/Inhalt kopieren)

    in Microsoft Excel Hilfe
    Datenbereiche synchron erweitern (Zeilen einfüge/löschem/Inhalt kopieren): Hallo zusammen, ich habe mich einmal an einem Zeitplan versucht, was soweit auch bisher ganz gut geklappt hat. Die Mitarbeiterliste habe ich in den Monaten bzw. auch in anderen...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden