Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

komplette spalten kopieren





Frage

hallo zusammen, gib es einen makrobefehl, der eine komplette spalte von einem sheet ins andere sheet kopieren kann? ich moechte es nur ungern mit zwei schleifen machen, wobei ich zelle fuer zelle kopiere. fuer einen tip bin ich dankbar. lg andrea

Antwort 1 von CaroS

Hallo andrea27,

hier ist ein Tipp - die gesamte Spalte A wird aus der aktuellen Tabelle in die "Tabelle2" in die Spalte D kopiert:

ActiveSheet.Range("A:A").EntireColumn.Copy Destination:=Sheets("Tabelle2").Range("D:D")

Gruß,
CaroS

Antwort 2 von Ahnan

Hallo,

Sheets("Tabelle1").Columns("A:A").Copy Sheets("Tabelle2").Columns("B:B")

Spalte A von Tabelle1 nach Spalte B von Tabelle2.

Dafür eignet sich übrigens auch Makrorekorder

Grüsse

Antwort 3 von Andrea27

danke mal. das funktiniert ja schon prima.
nur mein prob is noch nicht ganz geloest.

die tabelle in sheet1 sieht so aus...


martin... andreas...martin...steffan...dominik...
......5.............3...............4.............3..............3.....
...test.........hinten......links.....rechts......unten..
...23.............24.............45...........11............12....


ich habe verschiedene spalten mit verschiedenen namen,
ich moechte jetzt mit meinem makro oben die namen dursuchen nach martin, und wenn martin drin steht dann soll er mir die komplette spalte in ein neues sheet kopieren, danach soll das makro die liste weiter durchlaufen bis zum naechsten martin, diese spalte soll dann auch in das neue sheet (nebendran) kopiert werden....

...................................................
for spalte = 1 to 10

if Worksheets(Sheet1).Cells(1,spalte) = martin then

´kopiere die komplette spalte nach sheet2 1spalte ´
´erhoehe spalte in sheet2 um 1´


end if

next spalte
....................................................

Antwort 4 von CaroS

Hallo Andrea27,

if Worksheets(Sheet1).Cells(1,spalte) = "martin" then ist schon mal ein kleiner Verbesserungsvorschlag.

Warum kopierst Du eigentlich nicht mal den aktuellen Stand von Deinem Makro hierher?

Gruß,
CaroS

Antwort 5 von andrea27

das ganze makro ist dann doch ein wenig komplexer. um alles zu erklaeren und mein prob darin zu sehen..waere zuviel aufwand.
wenn ich das oben beschriebene makro zum laufenbekomme. ist es kein problem die paar anderungen fuer meine spezielle sache abzuaendern.


ich brauch eigentlich nur noch die zwei oder drei zeilen, wie ich die komplette spalte kopieren kann...

Antwort 6 von andrea27

ich glaube ich habs....
die zeile was ich brauch ist....

zielzeile = 1

for spalte = 1 to 10

if Worksheets(Sheet1).Cells(1,spalte) = "martin" then

Sheets(Sheet1).Columns(spalte).Copy Sheets(sheet2).Columns(zielzeile)

zielzeile = zielzeile + 1

end if

next spalte
....................................................

Antwort 7 von CaroS

Hallo Andrea27,

ich glaube nicht, dass sich Dein Makro dadurch verwirren lässt, dass Du die Variable zum Zählen der Spalten in Deiner Zieltabelle ´zielzeile´ nennst. Makros sind da nicht so.

Aber insgesamt dürfte das so funktionieren. Noch zwei kleine Verbesserungsvorschläge wären:

If LCase(Worksheets(Sheet1).Cells(1, spalte)) = "martin" Then
Rem (Der kleine martin in Zeile 1 wird ja vielleicht auch mal groß.)

If Trim(LCase(Worksheets(Sheet1).Cells(1, spalte))) = "martin" Then
Rem (Entfernt zusätzlich Leerzeichen vor und nach dem Namen.)

Gruß,
CaroS

Antwort 8 von Andrea27

hallo,

jep funktioniert einwand frei. die trim funktion habe ich auch bereits schon eingebaut

viele vielen dank

schoenen abend