Anzeige
Archiv - Navigation
1424to1428
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

Bestimmte Spalten einer Zeite kopieren

Bestimmte Spalten einer Zeite kopieren
16.05.2015 20:05:24
Martin
Hallo liebe Community,
ich bin gerade dabei mir VBA-Kenntnisse anzueignen mit mehr oder weniger Erfolg :)
Denke bei der Sub werden einige den Kopf schütteln, aber ist halt mit meinen geringen Kenntnissen etwas zusammengestückelt.
Gerade stehe ich vor folgendem Problem. Ich habe in Tabelle1 Daten verschiedener Abteilungen und Ressourcen gesammelt. In der Tabelle7 möchte ich, wenn zwei Kriterien erfüllt sind (Kann ich per dropdown ändern), bestimmte Zellen einer Zeile von Tabelle1 per Button kopieren. Die Kriterien sind: KST-A, B, C,.. (Anlagengruppen) und 1,2,3,4 (Anlagengruppen der Aufträge). Ich habe es nun soweit hinbekommen, dass jeweils die ganze Zeile kopiert wird. Ich möchte aber nur B, C, E, F,G kopieren.
Danke schon mal für jede Hilfe.
Option Explicit
Sub DatenAusTabelleKopieren()
Dim Zeile As Long
Dim Zeilemax As Long
Dim n As Long
Dim intOben As Long
Dim intLinksGruppe As Long
intOben = Application.Names("StartTabelle").RefersToRange.Row - 1
Tabelle7.Range("A4:J200").ClearContents
With Tabelle1
Zeilemax = .UsedRange.Rows.Count
n = 1
For Zeile = 2 To Zeilemax
If Tabelle7.Cells(1, 4).Value = "KST-A" And .Cells(Zeile, 1).Value = 1 Then
.Rows(Zeile).Copy
Tabelle7.Rows(intOben + n).PasteSpecial xlValues
n = n + 1
ElseIf Tabelle7.Cells(1, 4).Value = "KST-B" And .Cells(Zeile, 1).Value = 2 Then
.Rows(Zeile).Copy
Tabelle7.Rows(intOben + n).PasteSpecial xlValues
n = n + 1
ElseIf Tabelle7.Cells(1, 4).Value = "KST-C" And .Cells(Zeile, 1).Value = 3 Then
.Rows(Zeile).Copy
Tabelle7.Rows(intOben + n).PasteSpecial xlValues
n = n + 1
ElseIf Tabelle7.Cells(1, 4).Value = "KST-D" And .Cells(Zeile, 1).Value = 4 Then
.Rows(Zeile).Copy
Tabelle7.Rows(intOben + n).PasteSpecial xlValues
n = n + 1
End If
Next Zeile
End With
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Spalten einer Zeite kopieren
17.05.2015 11:10:51
Gerd
Hallo Martin,
ich habe unterstellt, dass "vorne" u. am Stück in Tabelle7 eingefügt werden soll.
Sub DatenAusTabelleKopierenII()
Dim Zeile As Long, n As Long, intOben As Long
intOben = Application.Names("StartTabelle").RefersToRange.Row - 1
Tabelle7.Range("A4:J200").ClearContents
With Tabelle1
For Zeile = 2 To .UsedRange.Rows.Count
Select Case Tabelle7.Cells(1, 4).Value
Case "KST-A", "KST-B", "KST-C", "KST-D"
Select Case .Cells(Zeile, 1).Value
Case 1, 2, 3, 4
n = n + 1
Union(.Range(.Cells(Zeile, 2), .Cells(Zeile, 3)), _
.Range(.Cells(Zeile, 5), .Cells(Zeile, 7))).Copy
Tabelle7.Cells(intOben + n, 1).PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Select
End Select
Next Zeile
End With
End Sub
Gruß Gerd

Anzeige
AW: Bestimmte Spalten einer Zeite kopieren
17.05.2015 12:16:56
Martin
Hallo Gerd,
danke für deine Hilfe, ich habe dein Programm getestet.
Es gibt mir die richtigen Spalten aus, finde ich gut, aber leider für alle Gruppen A,B,C,D / 1,2,3,4 auf einmal, egal was ich in Tabelle 7 einstelle.
Wahrscheinlich hab ich mich auch ungenau ausgedrückt. Immer nur bei KST-A und 1 / KST-B und 2 / usw. sollten die Werte zurückgegeben werden. Denke daran hapert es, oder ich verstehe nicht (kann gut sein), wie er die beiden Werte verheiratet.
Ich habe noch einen Vorschlag von jemand bekommen, der funktioniert.
Wenn du trotzdem prüfst was nicht geklappt hat, sehe ich mir das gerne an.
Gruß,
Martin

Anzeige
AW: Bestimmte Spalten einer Zeite kopieren
17.05.2015 15:44:02
Gerd
Hallo Martin,
ich hatte deine Beschreibung nur ungenau gelesen.
Ersetze
Case 1, 2, 3, 4
durch
Case Asc(Right$(Tabelle7.Cells(1, 4).Value, 1)) - 64
Gruß Gerd

AW: Bestimmte Spalten einer Zeite kopieren
17.05.2015 16:32:54
Martin
Hallo Gerd,
hab es gleich getestet und es funktioniert bestens :)
Vielen Dank für deine Hilfe,
Martin

AW: Bestimmte Spalten einer Zeite kopieren
17.05.2015 11:13:07
Uwe
Hallo Martin,
teste mal so:
Sub DatenAusTabelleKopieren()
Dim Zeile As Long
Dim Zeilemax As Long
Dim n As Long
Dim intOben As Long
Dim intLinksGruppe As Long
Dim rngSpalten As Range
intOben = Application.Names("StartTabelle").RefersToRange.Row - 1
Tabelle7.Range("A4:J200").ClearContents
With Tabelle1
Zeilemax = .UsedRange.Rows.Count
Set rngSpalten = .Range("B:B,C:C,E:E,F:F,G:G")
n = 1
For Zeile = 2 To Zeilemax
If Tabelle7.Cells(1, 4).Value = "KST-A" And .Cells(Zeile, 1).Value = 1 Or _
Tabelle7.Cells(1, 4).Value = "KST-B" And .Cells(Zeile, 1).Value = 2 Or _
Tabelle7.Cells(1, 4).Value = "KST-C" And .Cells(Zeile, 1).Value = 3 Or _
Tabelle7.Cells(1, 4).Value = "KST-D" And .Cells(Zeile, 1).Value = 4 Then
Application.Intersect(rngSpalten, .Rows(Zeile)).Copy
Tabelle7.Cells(intOben + n, 1).PasteSpecial xlValues
n = n + 1
End If
Next Zeile
End With
End Sub
Gruß Uwe

Anzeige
AW: Bestimmte Spalten einer Zeite kopieren
17.05.2015 12:23:27
Martin
Guten Morgen Uwe,
vielen Dank für deine Hilfe, dein Programm funktioniert sehr gut.
Ich bin nicht faul im Googeln und suchen, aber Set rngSpalten habe ich nicht gefunden / gesehen.
Manchmal sucht man auch nach dem falschen, wenn man nicht genau weiß, was.
Gruß,
Martin

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige