Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1368to1372
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

VBA - kopieren - in freie zeile einfügen

VBA - kopieren - in freie zeile einfügen
04.07.2014 13:17:18
Alex. Fuchs

Hallo Leute!
Habe eine riesen Tabelle, von der ich, wenn ich einen Haken setze, ausgewählte Zellen in eine andere Tabelle übertragen will.
Ich habe den VBA Code zwar soweit, dass er eine Zeile übernimmt - und das wars schon. Leider habe ich nur seeehr begrenzte VBA-Kenntnisse.
Eigentlich nur Copy und Paste ...
Vielleicht kann mir jemand helfen!?
Hänge die Datei mit Hinweisen (natürlich gekürzt) an.
Vielen DANK schon mal!!
Alex.

Die Datei https://www.herber.de/bbs/user/91381.xlsm wurde aus Datenschutzgründen gelöscht


11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - kopieren - in freie zeile einfügen
04.07.2014 15:42:33
Arthur
Hallo Alex.
Die drei 'e's sind aus dem VBA ersichtlich :o).
Anstelle:
If Src.Cells(Ze, 60) <> True Then
nRow = Dst.Cells(Rows.Count, 60).End(xlUp).Row + 1
For i = 2 To 9
Dst.Cells(nRow, i - 1) = Src.Cells(Ze, i)
Next i
Src.Cells(Ze, 60) = True
End If
Muss mindestens:
'irgendwo
Dim lText as String
If Src.Cells(Ze, 60) <> True Then
lText = ""
nRow = Dst.Cells(Rows.Count, 60).End(xlUp).Row + 1
For i = 2 To 9
lText = lText & Src.Cells(Ze, i) 'text zusammenfügen
Next i
Dst.Cells(nRow, i - 1) = lText
Src.Cells(Ze, 60) = True
End If
Gruß, Arthur

Anzeige
AW: VBA - kopieren - in freie zeile einfügen
07.07.2014 07:39:07
Alex. Fuchs
Guten Morgen Arthur!
Vielen DANK für Deine Bemühungen!
Leider geht jetzt gar nix mehr :(
Schade!
Lg, Alex.

AW: VBA - kopieren - in freie zeile einfügen
07.07.2014 08:31:06
hary
Moin
Teste mal so. Ausgabe erfolgt in MsgBox.
ich weiss nicht in welche Zelle das rein soll.
Sub TransferData()
Dim Dst As Worksheet, Src As Worksheet
Dim ch As Object
Dim nRow As Long
Dim Ze As Long
Dim testText As String
Set Src = Worksheets("W&TP")
Set Dst = Worksheets("Auftrag")
With Src
For Each ch In .OLEObjects
With ch
If .progID = "Forms.CheckBox.1" Then
If .Object.Value = True Then
Ze = .TopLeftCell.Row
If Src.Cells(Ze, 60) <> True Then
nRow = Dst.Cells(49, 1).End(xlUp).Row + 1
If nRow = 11 Then nRow = 12
For i = 2 To 9
testText = testText & Src.Cells(Ze, i)
'     Dst.Cells(nRow, i - 1) = Src.Cells(Ze, i)
Next i
Src.Cells(Ze, 60) = True
MsgBox testText
testText = ""
End If
End If
End If
End With
Next
End With
End Sub

gruss hary

Anzeige
AW: VBA - kopieren - in freie zeile einfügen
07.07.2014 08:46:05
Alex. Fuchs
Hallo Hary!
DANKE auch für Deine Bemühung!
Irgendwie, ist hier eine Themenverfehlung :)
Ich habe die Tabelle im ersten Eintrag hochgeladen.
In der Tabelle "W&TP" sind in der Spalte BC Haken zu setzen.
Sind einer oder mehrere dieser Haken gesetzt, so soll das Excel die ersten Spalten der angehakten Zeilen der Tabelle "W&TP" in die Zelle L13, L14, etc. (kann auch überschrieben werden!) der Tabelle "Auftrag" kopieren. Diese werden mit der Funktion "Verketten" in die Zelle B8 der Tabelle "Auftrag" zusammengefügt.
Des weitern sollen die restlichen Zellen der angehakten Zeilen der Tabelle "W&TP" in der Tabelle "Auftrag" ab A12:K12 untereinander aufgelistet werden.
DAs übersteigt bei weitem meinen Verstand...
Vielen DANK noch mal für die Mühen!
Gruß, Alex.

Anzeige
AW: VBA - kopieren - in freie zeile einfügen
07.07.2014 10:21:20
hary
Moin
Hab's nu verstanden. *glaub*
Sub TransferData()
Dim Dst As Worksheet, Src As Worksheet
Dim ch As Object
Dim nRow As Long
Dim Ze As Long
Dim testText As String
Set Src = Worksheets("W&TP")
Set Dst = Worksheets("Auftrag")
Application.ScreenUpdating = False
For Each ch In Src.OLEObjects
With ch
If .progID = "Forms.CheckBox.1" Then
If .Object.Value = True Then
Ze = .TopLeftCell.Row
If Src.Cells(Ze, 60) <> True Then
nRow = Dst.Cells(49, 1).End(xlUp).Row + 1
If nRow = 11 Then nRow = 12
If Dst.Range("B8") = "" Then
For i = 2 To 9
testText = testText & Src.Cells(Ze, i)
Next i
Dst.Range("B8") = testText
testText = ""
End If
Src.Cells(Ze, 60) = True
Union(Src.Cells(Ze, 15), Src.Cells(Ze, 20), Src.Cells(Ze, 22), Src.Cells( _
Ze, 24), Src.Cells(Ze, 25), Src.Cells(Ze, 26), Src.Cells(Ze, 31), Src.Cells(Ze, 34), Src.Cells(Ze, 36), Src.Cells(Ze, 37)).Copy
Dst.Cells(nRow, 1).PasteSpecial Paste:=xlValues
End If
End If
End If
End With
Next
Application.ScreenUpdating = True
End Sub

gruss hary

Anzeige
AW: VBA - kopieren - in freie zeile einfügen
07.07.2014 11:05:29
Alex. Fuchs
Hallo Hary!
DU BIST ECHT DER BESTE!!!
Das funktioniert echt voll super!!!!
Nun nur noch eine kl. abschließende Frage:
Wie kriege ich es weg, dass IMMER die erste Zeile mit kopiert wird, auch wenn dieser Haken nicht gesetzt ist?
DAAAANKEEEE!!!!
Vielen, vielen DANK!!!
Gruß, Alex.

AW: VBA - kopieren - in freie zeile einfügen
07.07.2014 13:16:08
hary
Moin
Du hast da noch 3 Checkboxen, die nicht sichtbar/ganzklein, sind drin.
Checkbox1/Checkbox2/Checkbox3
die muss du loeschen.
gruss hary

AW: VBA - kopieren - in freie zeile einfügen
07.07.2014 13:35:38
Alex. Fuchs
Hallo Hary!
ich habe mit folgendem Code (den ich schon mal vor Jahren benötigt habe) alle Checkboxen gelöscht und neue rein gemacht.
Er kopiert immer noch die erste Zeile mit - ohne diese angehakt zu haben :(
Sub lösche_Checkboxes()
On Error Resume Next
ActiveSheet.CheckBoxes.Delete
Selection.FormatConditions.Delete
End Sub

sooo nahe am Ziel...
DAAANKE!!!

Anzeige
AW: testmappe
07.07.2014 13:57:52
Alex. Fuchs
VIIIIIIIEEEEEELEN, herzlichen DANK!!
Du bist echt ein GENIE!!!
Vielen DANK!!!!
DANKE, DANKE, DANKE!!!!

AW: testmappe
08.07.2014 11:39:33
Alex. Fuchs
Hallo Liebe Leute!
... bin schon wieder da :(
Ich habe mir mit Hilfe des VBA-Buches von Held und Recherchen im Internet die obigen sehr gut funktionierenden Codes zu erweitern.
Ich will diese Baustellendokumentation (die ja bis zu 10tsd. Zeilen groß wird) mit einem Button um jeweils 20 Zeilen erweitern.
Dazu habe ich fast einen Code gefunden... blöderweise schreibt er mir einen Laufzeitfehler aus, obwohl die Zeilen kopiert werden.
Nun was er nicht tut, ist die Checkboxen mit zu kopieren... da steh ich voll auf der Seife :(
Vielleicht kann mir da ja wer helfen?
Hier der Code zum Kopieren der letzten Zeile:
Sub NeueZeile()
Dim Zeile As Long
With ActiveSheet
Zeile = .Cells.Find("*", , , , xlByRows, xlPrevious).Row + 1
Intersect(.Rows(Zeile - 1), .UsedRange).Copy
.Cells(Zeile, 1).PasteSpecial Paste:=xlPasteFormats
.Cells(Zeile, 1).PasteSpecial Paste:=xlPasteFormulas
Application.CutCopyMode = False
Intersect(.Rows(Zeile), .UsedRange).SpecialCells(xlCellTypeConstants).ClearContents
End With
End Sub

Lg, Alex.

Anzeige

354 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige