Anzeige
Archiv - Navigation
1536to1540
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 ausschneiden mit vba

Bestimmte Spalten ausschneiden mit vba
30.01.2017 12:50:59
Antonia
Hallo liebe Leute,
ich hab hier ein kleines vba-Problem zum ausschneiden von bestimmten spalten. Ich hatte dieses Problem schon einmal gepostet, aber das Gefühl, dass ich es nicht richtig formuliert hatte. Deshalb hier nochmals ein zweiter Versuch:
https://www.herber.de/bbs/user/111002.xlsm
Ich würde gerne die auf dem Tabellenblatt1 zu jeweils einer Personen ID gehörenden Spalten untereinander stehen haben. Ich würde gerne solange die nächste Spalte die selbe Personen-ID wie die vorherige hat, diese Spalte (von Zeile 4 bis 98) ausschneiden und unter erste Spalte (nach Zeile 98) dieser Personen ID schreiben. Die enstehende leere Spalte soll dann gelöscht werden.
Das Ergebnis soll dann wie in Tabelle2 aussehen. Wie könnte ich dies am besten mit vb formulieren?
Viele Grüße und Danke!
Antonia

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Spalten ausschneiden mit vba
30.01.2017 18:07:06
Antonia
Hallo, ich habe es nun nochmals selbst versucht:
https://www.herber.de/bbs/user/111010.xlsm
Sub Datensortieren()
Dim i As Long
Dim j As Integer
Dim Zeile As Long
Dim Spalte As Long
For i = 2 To Worksheets("Tabelle1").UsedRange.Columns.Count
If Worksheets("Tabelle1").Cells(1, i) = Worksheets("Tabelle1").Cells(1, i - 1) Then
Zeile = Worksheets("Tabelle2").Cells(Rows.Count, i - 1).End(xlUp).Row
With Worksheets("Tabelle1")
 .Range(.Cells(3, i), .Cells(98, i)).Copy Destination:=Worksheets("Tabelle2").Range(. _
Cells(Zeile + 1, i - 1).Cells(Zeile + 96 + 1, i - 1))
End With
End If
Next i
End Sub
Aber ich bekomme bei der Fett markierten Zeile immer den Fehler "Laufzeitfehler 1004: Anwendungs- oder objektdefinierter Fehler"
Vielleicht kann mir hier jemand weiterhelfen. Das wäre super toll!
Vielen Dank!!!
Anzeige
AW: Bestimmte Spalten ausschneiden mit vba
30.01.2017 19:28:50
Werner
Hallo Antonia,
Hier ist beim Bereich für Blatt 2 der Punkt vor den Cells falsch. Zudem fehlt vor dem zweiten Cells ein Komma. So wie du das schreibst müsstest du vor jedes Range-Objekt (Range, Cells) das Tabellenblatt schreiben. Aber als Ziel brauchst du ja nicht den kompletten Bereich anzugeben, da reicht die Angabe einer Zielzelle.
.Range(.Cells(3, i), .Cells(98, i)).Copy Worksheets("Tabelle2").Cells(Zeile + 1, i - 1)
Die Variablen j und Spalte hast du deklariert, benutzt sie aber nicht.
Gruß Werner
AW: Bestimmte Spalten ausschneiden mit vba
31.01.2017 14:25:20
Antonia
Lieber Werner,
danke für deine Hilfe. Leider habe ich immer noch ein Problem, da mein Code noch nicht das macht, was ich gerne hätte. Habe hier das Excel nocheinmal bearbeitet:
https://www.herber.de/bbs/user/111033.xlsm
Wie bekomme ich es denn am schlauesten hin, dass alle Tage, die zu einer Person gehören, in einer Spalte untereinander stehen? Könntest du mir hier helfen?
Viele Grüße,
Antonia
Anzeige
AW: Bestimmte Spalten ausschneiden mit vba
01.02.2017 10:28:04
Piet
Hallo Antonia,
ich hatte eine Makro Lösung ins Forum gestellt, aber im zweiten Thread von dir: Hier noch mal, ohne zu wissen ob es das ist was du wünschst?
mfg Piet

Option Explicit    '31.1.2017   Piet   Herber Forum
Sub Daten_kopieren()
Dim rFind As Object
Worksheets("Tabelle1").Select
'alle LastZellen abwaerts ermitteln
lz = Cells(Rows.Count, "B").End(xlUp).Row + 1
lz2 = Range("C4").End(xlDown).Row
lz3 = Range("D4").End(xlDown).Row
Set rFind = Columns(1).Find(What:="00:00 - 00:15", After:=Range("A6"), _
LookIn:=xlValues, LookAt:=xlWhole, SearchDirection:=xlNext)
If rFind Is Nothing Then GoTo Fehler
'Spalte C kopieren
Range("C4:C" & lz2).Copy 'oder Cut nehmen
rFind.Offset(0, 1).PasteSpecial xlPasteAll
'neue LastZelle Spalte B ermitteln
Set rFind = Columns(1).FindNext(After:=Range(rFind.Address))
If rFind Is Nothing Then GoTo Fehler
'Spalte D kopieren
Range("D4:D" & lz3).Copy 'oder Cut nehmen
rFind.Offset(0, 1).PasteSpecial xlPasteAll
Application.CutCopyMode = False
Exit Sub
Fehler: MsgBox "Kann Uhrzeit '00:00 - 00:15' nicht finden"
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige