Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1648to1652
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
Inhaltsverzeichnis

Zelle auswählen

Zelle auswählen
11.10.2018 15:51:18
Andi
Hallo zusammen
Ich möchte mehrere zusammenhängende Zeilen von einem Tabellenblatt in ein anderes kopieren.
Das ganze funktioniert einwandfrei mit dem Makro 1:
Sub Makro1()
' Makro1 Makro
Rows("4:" & Cells(Rows.Count, 1).End(xlUp).Row).Select
Selection.Copy
Sheets("Tabelle1").Select
Range("A3").Select
ActiveSheet.Paste
End Sub

Da ich aber immer wieder lese dass man auf "select" verzichten sollte, wollte ich den Code vereinfachen.
Die ersten zwei Zeilen lassen sich gut zusammenfassen, der Teil mit dem Einfügen klappt jedoch nicht.
Sub Makro4()
' Makro3 Makro
Rows("4:" & Cells(Rows.Count, 1).End(xlUp).Row).Copy
    Sheets("Tabelle1").Range("A3").Select
ActiveSheet.Paste
End Sub

Ich erhalte einen Laufzeitfehler 1004, Die Select Methode konnte nicht ausgeführt werden.
Mein Ziel wäre es auch das einfügen als Einzeiler zu erledigen (also inkl. Paste)
Könnt ihr mir helfen?
Gruss
Andi

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
.Copy Destination:= ...
11.10.2018 16:11:56
Matthias
Hi
Rows("4:" & Cells(Rows.Count, 1).End(xlUp).Row).Copy Destination:=Sheets("Tabelle1").Range("A3")
Gruß Matthias
AW: Zelle auswählen
11.10.2018 16:12:51
UweD
Hallo
ungetestet
Sub Makro1()
Rows("4:" & Cells(Rows.Count, 1).End(xlUp).Row).Copy Sheets("Tabelle1").Range("3:3")
End Sub
LG UweD
besser so ...
11.10.2018 16:14:40
Matthias

With Tabelle2
.Rows("4:" & .Cells(.Rows.Count, 1).End(xlUp).Row).Copy Destination:=Tabelle1.Range("A3")
End With

AW: Zelle auswählen
11.10.2018 17:30:32
Daniel
Hi
noch ne Variante.
beim PasteSpecial kannst du zusätzlich noch angeben, was übernommen werden soll, entsprechend dem "Inhalte Einfügen" (Formeln oder Werte, mit oder ohne Formatierung usw,)
Rows("4:" & Cells(Rows.Count, 1).End(xlUp).Row).Copy
Sheets("Tabelle1").Range("A3").PasteSpecial xlPasteAll
btw, dein Fehler ist, dass man eine Zelle immer nur auf dem aktiven Blatt selektieren kann.
du müsstest also erst das neue Blatt selektieren und dann in einer zweiten Befehlszeile dann die Zelle:
Sheets("Tabelle1").Select
ActiveSheet.Range("A3").Select

oder mit Appication.Goto zur Zelle springen, das geht in einem Schritt:
Application.Goto Sheets("Tabelle1").Range("A3")
aber noch viel besser ist, eben ganz ohne Select auszukommen und die Zellbereiche wie in den Beispielen gezeigt vollständig zu referenzieren.
Gruß Daniel
Gruß Daniel
Anzeige
AW: Zelle auswählen
12.10.2018 07:34:24
Andi
Hallo zusammen
Vielen Dank für eure Hilfe
Matthias, dein erstes Beispiel funktioniert. das zweite gibt allerdings Fehler raus.
Uwe, dein Beispiel funktioniert auch. Sehe ich das richtig dass man die Spalten A, B, usw auch durchnumerieren kann?
Daniel, dein Beispiel habe ich nicht ausprobiert, aber vielen Dank für die Erklärung dass die zelle nicht ausgewählt werden kann bevor das Blatt nicht aktiviert wurde.
Super Hilfe hier im Forum
auch die Variante 2 funktioniert ...
12.10.2018 13:49:42
Matthias
Hi
Zitat
Matthias, dein erstes Beispiel funktioniert. das zweite gibt allerdings Fehler raus.
1. schreibt man nicht einfach:
gibt allerdings Fehler raus, sondern schreibt dazu welcher Fehler
2. funktioniert mein Vorschlag: kannst Du in meiner Datei testen
https://www.herber.de/bbs/user/124588.xlsm
Der Vorteil im 2.Vorschlag von mir liegt darin, das Du sowohl von Tabelle1 und
auch von Tabelle2 aus, den Code starten kannst.

Beachte!

Ich habe hier die CodeNamen der Tabellenblätter benutzt, nicht die Registernamenblätter.
Evtl. gab es ja in Deiner Datei keine Tabelle1 und/oder keine Tabelle2
Rückmeldung wäre nett
Gruß Matthias
Anzeige
AW: auch die Variante 2 funktioniert ...
12.10.2018 15:10:59
Andi
Hallo Matthias
Da ich zwei Varianten hatte die funktionierten, habe ich der Fehlermeldung keine grosse Beachtung mehr geschenkt.
Und du hast recht. ich habe keine Tabelle2. Das habe ich in deinem Code überlesen.
Es war ein Laufzeitfehler 424, Objekt erforderlich.
Der CodeName ist so etwas wie ein interner Name der Tabelle? So dass meine Tabelle1 (Registername) einen ganz anderen CodeNamen hat oder haben kann?
Dein erstes Beispiel läuft bereits im Produktiven Einsatz. Da sich die Tabellen dort in verschiedenen Files befinden, habe ich einfach jeweils mit Workbooks(name).Sheets("BA-Auftrag"). respektive Workbooks(name2).Sheets("BA-Auftrag").ergänzt.
Gestartet wird das Makro beim öffnen des Files, so dass die Anwender immer aktuelle Daten haben.
Durch "with Tabelle2" wird aus ".Rows" und ".Cells" dann "Tabelle2.Rows"?
Beste Grüsse
Andi
Anzeige
Die Antwort auf Deine Frage = Ja
12.10.2018 16:00:58
Matthias
Hi
Das mit den Codenamen:
Im Bild siehst Du beide
Links steht der CodeName
in Klammern der RegisterblattName
Userbild
Benutzt man nun den CodeNamen schreibt man z.B.:
Tabelle1.Cells(Zeile,Spalte)
Benutzt man nun den Registerblatt-Namen schreibt man:
WorkSheets("Tabelle1").cells(Zeile,Spalte)
Hoffe geholfen zu haben ...
Gruß Matthias
AW: Zelle auswählen
12.10.2018 15:20:15
UweD
Hallo nochmal
Uwe, dein Beispiel funktioniert auch. Sehe ich das richtig dass man die Spalten A, B, usw auch durchnumerieren kann?

Ja, aber nicht so wie in dem Beispiel.
Da kopierst du eine ganze Zeile, deshalb kannst du als Ziel auch eine ganze Zeile angeben.
Hier mal einige Beispiele was geht.

Range("3:3").Select
Rows(3).Select
[3:3].Select
Range("B10").Select
Cells(10, 2).Select
[B10].Select
Range("D:D").Select
Columns(4).Select
[D:D].Select
Range("A2:B5").Select
Range(Cells(2, 1), Cells(5, 2)).Select
Range("A2").Resize(4, 2).Select

Anzeige
AW: Zelle auswählen
12.10.2018 15:52:50
Andi
Hallo Uwe
Danke für deine Beispiele. Da muss ich mich noch etwas einlesen, mit dem Resize hast du mir ein neues Stichwort gegeben.
Ich vermute das ist etwas ähnliches wie Offset.
Ich wünsche dir ein schönes Wochenende.
Gruss
Andi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige