Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Macro finde-copy-paste

Forumthread: Macro finde-copy-paste

Macro finde-copy-paste
06.01.2017 12:26:43
Armin
Hi Forum,
ich habe eine Frage und Zwar in Tablle1 habe ich in der Splate A2:A300 eine Salate von Zahlen zwischen 1-5 und im und in der Spalte 2 habe ich Buchstaben A bis E je nach Zahlen, d.h. 1=AA, 2=BB usw.
Nun möchte ich ein Macro schreiben, das in der Tablle1 die Spalte A durchsucht und die Buchstaben in der Spalte B kopiert in der Tabell2 je nach der entsprechenden Zahl hinzufügt.
ich habe folgendes geschrieben:
Dim i as Integer
worksheets("Tabelle1").activate
for i= A2 to A300
if cells(i,1).value=1 then cells(i,2).select
selection.copy
worksheets("Tabelle2").activate
Range("A1") .select
selection.paste
next i
aber ich weiß es nicht wo mein Fehler ist.
wäre nett wenn Sie mir helfen
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
for i= 2 to 300
06.01.2017 12:45:44
Klaus
Hallo
for i= A2 to A300 muss heißen:
for i= 2 to 300
Den Rest habe ich nicht getestet
Sieht aber so aus als würdest Du immer A1 in Tabelle2 überschreiben.
MfG Klaus
AW: for i= 2 to 300
06.01.2017 12:57:51
Armin
Ja ich habe das hier falsch geschrieben...in Excel ist i=2 to 300
AW: Macro finde-copy-paste
06.01.2017 13:23:19
Gerd
Hallo Armin!
Damit die Variablendeklaration erzwungen wird, fehlt ganz oben im Modul „Option Explicit“.
Ein Makro hat einen Anfang u. ein Ende ~f~('Sub / <pre>Public Sub / <pre>Private Sub --- End Sub</pre>'")~f~.
Die Laufvariable „i“ sollte „As Long“ deklariert sein, u.a. weil die Cells-Schreibweise Zeilen- u. Spaltennummer von diesem Datentyp erwartet.
In der Kopfzeile der For..Next-Schleife sollten keine Zelladressen, sondern Zahlen stehen (For i = 2 To 300).
Bei Verwendung der Range-Copy-Methode, muss entweder das Ziel in der selben Codezeile als Argument angegeben werden (… .Copy Destination:= Worksheets(„Tabelle2“).Cells(1,2)
oder in einer nächsten Zeile ist die PasteSpecial-Methode anzugeben, z.B.
Worksheets(„Tabelle1“).Cells(i,1).Copy Worksheets(„Tabelle2“).Cells(1,1).PasteSpecial Paste:=xlPasteAll
„Activate“,“ select“ und „Selection“ sind zwar zum Testen geeignet, jedenfalls Laufzeithemmer u. nahezu immer verzichtbar.
Was du genau machen möchtest, ist „Excel-technisch“ leider noch nicht so ganz bei mir angekommen.
Vielleicht reicht Sortieren?
Gruß Gerd
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige