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

Forumthread: bestimmte Spalte in neues Blatt kopieren

bestimmte Spalte in neues Blatt kopieren
17.02.2016 15:18:15
Uwe
Hallo,
ich bekomme die Daten bei einem Download nicht immer in der gleichen Reihenfolge und will aber bestimmte
Spalten in einem neuen Blatt haben.
z.B.
Feldbezeichung1; Feldbezeichung4; Feldbezeichung2; Feldbezeichung6; Feldbezeichung8.....
es kann auch sein das die Daten anders stehen:
Feldbezeichung2; Feldbezeichung6; Feldbezeichung8; Feldbezeichung1; Feldbezeichung9.....
Ein Makro soll dann die Spalten
Feldbezeichung1;Feldbezeichung2;Feldbezeichung6;
in ein neues Blatt kopieren.
Gruß
Uwe

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: bestimmte Spalte in neues Blatt kopieren
18.02.2016 09:06:24
Uwe
Hallo,
ich habe eine Lösung gefunden.
Public Sub Kopieren()
Dim WkSh_Q As Worksheet
Dim WkSh_Z As Worksheet
Dim rZelle As Range
Dim aUeberschr As Variant
Dim iIndx As Integer
Dim iSpalte As Integer
aUeberschr = Array("Depotnummer", "Depotbezeichnung", "Lagerort", "Menge")
Application.ScreenUpdating = False
Set WkSh_Q = Worksheets("Tabelle1") ' das Quell-Tabellenblatt
Set WkSh_Z = Worksheets("Tabelle2") ' das Ziel-Tabellenblatt
With WkSh_Q.Rows(1)
For iIndx = 0 To UBound(aUeberschr)
Set rZelle = .Find(aUeberschr(iIndx), LookAt:=xlWhole, LookIn:=xlValues)
If Not rZelle Is Nothing Then
iSpalte = iSpalte + 1
WkSh_Q.Columns(rZelle.Column).Copy Destination:=WkSh_Z.Columns(iSpalte)
End If
Next iIndx
End With
Application.ScreenUpdating = True
End Sub

Gruß
Uwe

Anzeige
AW: bestimmte Spalte in neues Blatt kopieren
19.02.2016 03:00:48
Piet
Hallo Uwe
hier eine Lösung, die ich ausprobiert habe.
Bei Const müssen die echten Feldnamen eingesetzt werden. z.B. Lager
In Set Tb1 + Tb2 müssen die richtigen Tabellen Namen eingesetzt werden.
dann sollte es funktionieren
mfg Piet
Option Explicit
'Bei Feldbezeichnung bitte die echten Namen eingeben
Const Feld1 = "Feldbezeichung1" 'z.b. Lager
Const Feld2 = "Feldbezeichung2"
Const Feld6 = "Feldbezeichung6"
Sub Feldbezeichnung_kopieren()
'Tabelle 1 + 2 als Objekt setzen
Dim Tb1 As Object, Tb2 As Object
Dim sp1, sp2, sp6, j 'Spalten-Nr
Set Tb1 = Worksheets("Tabelle1")
Set Tb2 = Worksheets("Tabelle2")
'Schleife zum ermittlen der aktuellen Spalte
'die Zeile angeben wo die Feldbezeichnung steht
For Each j In Tb1.Range("A1:F1")
If j.Value = Feld1 Then sp1 = j.Column
If j.Value = Feld2 Then sp2 = j.Column
If j.Value = Feld6 Then sp6 = j.Column
Next j
'von Tabelle1 in Tabelle2 kopieren
Tb1.Columns(sp1).Copy
Tb2.Columns(1).PasteSpecial xlValues
Tb1.Columns(sp2).Copy
Tb2.Columns(2).PasteSpecial xlValues
Tb1.Columns(sp6).Copy
Tb2.Columns(3).PasteSpecial xlValues
'CopyMode wieder ausschalten
Application.CutCopyMode = False
End Sub

Anzeige
AW: bestimmte Spalte in neues Blatt kopieren
19.02.2016 07:08:01
Uwe
Danke Piet,
eine andere gute Lösung.
Bei der ersten Lösung war das "Problem" das Formeln mit kopiert werden.
Ich habe das das so geändert.:
With WkSh_Q.Rows(1)
For iIndx = 0 To UBound(aUeberschr)
Set rZelle = .Find(aUeberschr(iIndx), LookAt:=xlWhole, LookIn:=xlValues)
If Not rZelle Is Nothing Then
iSpalte = iSpalte + 1
'WkSh_Q.Columns(rZelle.Column).Copy WkSh_Z.Columns(iSpalte)
WkSh_Z.Columns(iSpalte).Value = WkSh_Q.Columns(rZelle.Column).Value
End If
Next iIndx
End With
Gruß
Uwe
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige