Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Zeilen in andere Arbeitsblätter kopieren





Frage

Hallo, zuerst mal ein gutes Neues Jahr 2008 an alle! Bräuchte mal wieder eure Hilfe in Sachen Makro. [b]Gegeben: [/b] Excel 2000 auf Windows 2000 Datei mit drei Arbeitsblättern <Artikelauswahl> <Übersichtsliste> <Anfrageformular> [b]Ausgangspunkt:[/b] Ich möchte auf eine Zelle in der ausgewählten Zeile(Spalten A-G) der <Artikelauswahl> gehen und dort die Makrotaste drücken. [b]Makrofunktion:[/b] Das Makro sollte diese Zeile (A-G) auswählen und jeweils in die erste unterste leere Zeile von <Übersichtsliste> [b]und[/b] <Anfrageformular> kopieren. Im Anfrageformular sollte die Formatierung der vorherigen Zeile übernommen werden. Formatierung von Artikelauswahl und Übersichtsliste sind gleich. Zum Schluß sollte der Courser wieder auf der aktiven Zelle in der Artikelauswahl stehen. Ich hoffe, dass es nicht zu schwierig wird. Vorerst schon mal vielen Dank! Ottmar

Antwort 1 von rainberg

Hallo Ottmar,

zunächst wünsche ich Dir ebenfalls alle Gute im "Neuen".

Probier's mal damit

Option Explicit

Sub uebertragen()
   Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet
   Dim lngZ1 As Long, lngZ2 As Long, lngZ3 As Long
   Set ws1 = Worksheets("Artikelauswahl")
   Set ws2 = Worksheets("Übersichtsliste")
   Set ws3 = Worksheets("Anfrageformular")
   lngZ1 = ActiveCell.Row
   lngZ2 = ws2.Range("A65536").End(xlUp).Row + 1
   lngZ3 = ws3.Range("A65536").End(xlUp).Row + 1
   ws1.Range("A" & lngZ1 & ":G" & lngZ1).Copy
   ws2.Select
   Range("A" & lngZ2).Select
   ActiveSheet.Paste
   Range("A1").Select
   ws3.Select
   Range("A" & lngZ3).Select
   ActiveSheet.Paste
   Range("A1").Select
   Application.CutCopyMode = False
   ws1.Select
End Sub


Den Code kopierst Du in ein allgemeines Modul und verlinkst ihn mit einer Befehlschaltfläche.

Gruß
Rainer

Antwort 2 von Mondlicht

Lieber Rainer,

hab´s gerade einkopiert.
Läuft super!
Herzlichen Dank dafür.

Werde gleich die Bewertung vornehmen!

Grüsse aus Oberschwaben...

...Ottmar

Antwort 3 von gast123

hi all

noch anzumerken waere

1) eine verbannung der selectionen
2)eine verbannung der variablen (auch die objektvariablen)
3)65536 durch rows.count zu ersetzen waere

durch eine direkte zuweisung kommt man ohne variablen aus

gruss gast123

Antwort 4 von rainberg

Hallo gast123,

selbstverständlich erkenne ich Deine Kritikpunkte an und weiss auch was Du meinst, aber.....

wenn Du das Thema schon ansprichst, wäre es schön, die Codeoptimierung auch gleich so vor zu nehmen, dass sie auch von allen anderen verstanden wird.

Gruß
Rainer