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

Zeile in andere Tabelle kopieren

Zeile in andere Tabelle kopieren
30.12.2022 12:03:32
Kurt
Guten Morgen
ich möchte gern eine Zeile in eine andere Sheet kopieren.
Bereich: von B2-K ende der Tabelle soll durch Spalte "B" ermittelt werden.
Name Tabelle: "Bestand"
Name neue Tabelle: "Information"
Wenn ich also in B12 stehe, soll die Zeile B12 - K12 in die Tabelle "Information" in A5 bis A15 kopiert werden.
Das klappt allerdings auch nicht, hatte ich gegoogelt:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
If Not Intersect(Target, Range("B2:K65000")) Is Nothing Then
Cancel = True
MsgBox "jetzt kopieren"
End If
End Sub
gruß kurt

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile in andere Tabelle kopieren
30.12.2022 12:06:23
kurt
Das klappt jetzt:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
Application.EnableEvents = True
If Not Intersect(Target, Range("B2:K65000")) Is Nothing Then
Cancel = True
MsgBox "jetzt kopieren"
End If
End Sub
gr kurt
AW: dann ist der thread auch nicht mehr offen owT
30.12.2022 12:10:45
neopa
Gruß Werner
.. , - ...
AW: Zeile in andere Tabelle kopieren
30.12.2022 12:14:06
ChrisL
Hi
Speziell deine Lösung. Ich hätte es so gemacht:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
If Not Intersect(Target, Range("B2:K65000")) Is Nothing Then
Cancel = True
Worksheets("Information").Range("A5:A14") = Application.Transpose(Range(Cells(Target.Row, 2), Cells(Target.Row, 11)).Value)
End If
End Sub
cu
Chris
Anzeige
Super, danke ! -)
30.12.2022 13:05:02
kurt
Danke Chris, einwandfrei !
Guten rutsch und ein gesundes neues Jahr ! Natürlich an Alle.
gr kurt
Hallo Chris, kleine Nachfrage
30.12.2022 14:00:06
kurt
Hallo Chris,
klappt alles !
Kleine Nachfrage:
Wie muss die Zeile im normalen Makro sein,
so klappt es nicht:

Private Sub Zeile_kopieren()
Worksheets("Information").Range("b5:b13") = Application.Transpose(Range(Cells(ActiveSheet.Row, 2), Cells(ActiveSheet.Row, 10)).Value)
End Sub
gr kurt
AW: Hallo Chris, kleine Nachfrage
30.12.2022 14:13:57
ChrisL
Hi Kurt
so...

Sub Zeile_kopieren()
Worksheets("Information").Range("B5:B13") = Application.Transpose(Range(Cells(ActiveCell.Row, 2), Cells(ActiveCell.Row, 10)).Value)
End Sub
cu
Chris
Anzeige
Passt, Danke ! -)
30.12.2022 14:38:07
kurt
Nachfrage
30.12.2022 18:56:13
kurt
Guten Abend,
ich habe aus einer anderen Grunddatei meine Datei geöffnet.
Nun möchte ich die Zeile selektierte Zeile aus der geöffneten Datei in die Grunddatei kopieren.
Habe diese zusammengesetzt:
wb.Worksheets(ze).Range("K12:K20") = ActiveSheet.Transpose(Range(Cells(ActiveCell.Row, 2), Cells(ActiveCell.Row, 10)).Value)
Der Dateiname=wb und Tabellenname= ze stimmen, beim Durchlauf mit F8
Mit KD habe ich vorher die Datei benannt aus der ich kopiere.
Laufzeitfehler 438
Objekt unterstützt diese Eigenschaft oder Methode nicht
Was habe ich "Holzkopf" den Falsch gemacht.
gr kurt
Anzeige
AW: Nachfrage
30.12.2022 19:02:07
kurt
Sorry,
hier die Zeile:
wb.Worksheets(ze).Range("K12:K20") = ActiveSheet.Application.Transpose(Range(Cells(ActiveCell.Row, 2), Cells(ActiveCell.Row, 10)).Value)
gr kurt
AW: Nachfrage
30.12.2022 20:45:26
wb.Worksheets(ze).Range(K12:K20)
oder so

wb.Worksheets(ze).Range("K12:K20") = Application.Transpose(Range(Cells(ActiveCell.Row, 2), Cells(ActiveCell.Row, 10)))

Hier mal das Makro
30.12.2022 21:40:34
kurt
Hallo,
In der Datei "Rg_Vorlage_kopieren.xlsm" , starte ich mittels Button
die "KD_Adressen.xlsm" hier wird das Makro mittels Button ausgeführt.
anbei mal das Makro:

Private Sub Rg_Vorlage_kopieren()
Dim wb As Workbook
Dim b As Boolean
Dim i
For Each wb In Application.Workbooks
If wb.name Like "__Rg_Vorlage_kopiere.xlsm" Then
b = True
Exit For
End If
Next wb
'   Stop
If Not b Then
'    MsgBox "nix gefunden"
Exit Sub
End If
wb.Activate
Dim ze
ze = ActiveSheet.name
wb.Worksheets(ze).Range("K12:K20") = Application.Transpose(Range(Cells(ActiveCell.Row, 2), Cells(ActiveCell.Row, 10)))
Application.ScreenUpdating = True
End Sub
gr kurt
Anzeige
AW: Hier mal das Makro
30.12.2022 22:05:58
wb.Worksheets(ze).Range(K12:K20)
nur so auf Verdacht

Private Sub Rg_Vorlage_kopieren()
Dim wb     As Workbook
Dim thiswb As Workbook
Dim b      As Boolean
Dim i&, ze
Set thiswb = ThisWorkbook
i = ActiveCell.Row
ze = ActiveSheet.Name
For Each wb In Application.Workbooks
If wb.Name Like "__Rg_Vorlage_kopiere.xlsm" Then
b = True
Exit For
End If
Next wb
'   Stop
If Not b Then
' MsgBox "nix gefunden"
Exit Sub
End If
With thiswb
wb.Worksheets(ze).Range("K12:K20") = Application.Transpose(.Range(.Cells(i, 2), .Cells(i, 10)))
End With
Application.ScreenUpdating = True
End Sub

Anzeige
Hallo leider nicht
31.12.2022 12:27:07
kurt
Hallo Chris,
leider Fehlermeldung.
Mir ist aufgefallen, wenn ich Msgbox wb einfüge kommt Fehleldung.
Obwohl oben im Makro wb.name der Richtige Name angezeigt wird.
wb.Worksheets(ze) wird bei ze die Tabelle vom exportierende Datei angezeigt wird.
gr kurt
Noch Info
31.12.2022 12:32:37
kurt
Hallo,
diese Makro klappt von der Listbox (aus der UF) aus, da ich jetzt keine Listbox habe sondern nur die aktive Tabelle,
müsste man hier anpassen.
Habe aber keine Ahnung.

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim wb As Workbook
Dim b As Boolean
Dim i
For Each wb In Application.Workbooks
If wb.name Like "__Rechnungs-Programm Vers.*.xlsm" Then
b = True
Exit For
End If
Next wb
If Not b Then
'    MsgBox "nix gefunden"
Exit Sub
End If
wb.Activate
wb.Activate
Dim ze
ze = ActiveSheet.name
For i = 0 To 5
wb.Worksheets(ze).Range("K12").Cells(i + 1, 1) = ListBox1.Column(i)
Next i
'Unload Me
End Sub
gr kurt
Anzeige
Hurra !!!
31.12.2022 12:48:57
kurt
Hallo,
es klappt so:
'---- orginal von chris ----------------

Private Sub Rg_Vorlage_kopieren()
Dim wb     As Workbook
Dim thiswb As Workbook
Dim b      As Boolean
Dim i&, ze
Set thiswb = ThisWorkbook
i = ActiveCell.Row
ze = ActiveSheet.name
For Each wb In Application.Workbooks
If wb.name Like "__Rechnungs-Programm Vers.*.xlsm" Then
b = True
Exit For
End If
Next wb
'   Stop
If Not b Then
' MsgBox "nix gefunden"
Exit Sub
End If
With ActiveSheet
wb.Worksheets("Rg_MG").Range("K12:K20") = Application.Transpose(.Range(.Cells(i, 2), .Cells(i, 10)))
End With
wb.Activate
Application.ScreenUpdating = True
End Sub
anstelle von: wb.Worksheets(ze)
habe ich die Tabelle angegeben
wb.Worksheets("Rg_MG")
bei ze wurde der Tabellenname von der aktiven Datei angezeigt.
gruß kurt
Anzeige
AW: Hurra -> Dann schliessen !!! (owT)
31.12.2022 13:09:37
EtoPHG

Nein nicht schließen, siehe letzte Info !
31.12.2022 13:11:50
kurt
Hier die Version mit Variable und ein Wunsch
31.12.2022 13:11:05
kurt
Hallo,
anbei:
'---- orginal von chris, mit meiner kleinen Änderung ----------------

Private Sub Rg_Vorlage_kopieren()
Dim wb     As Workbook
Dim thiswb As Workbook
Dim b      As Boolean
Dim i&, ze
Set thiswb = ThisWorkbook
i = ActiveCell.Row
For Each wb In Application.Workbooks
If wb.name Like "__Rechnungs-Programm Vers.*.xlsm" Then
b = True
Exit For
End If
Next wb
'   Stop
If Not b Then
' MsgBox "nix gefunden"
Exit Sub
End If
'------- ab hier meine Änderung --------------------------------
wb.Activate
ze = ActiveSheet.name
'- somit wird der Tabellenname von der Empfängerdatei übernommen
'---- und zurück ------------------------------------------------------
thiswb.Activat
With ActiveSheet
wb.Worksheets(ze).Range("K12:K20") = Application.Transpose(.Range(.Cells(i, 2), .Cells(i, 10)))
End With
wb.Activate
Application.ScreenUpdating = True
End Sub
funktioniert einwandfrei.
Meine Frage, wie kann ich dieses Makro für Doppelklick auf Zelle einbinden ?

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
Application.EnableEvents = True
If Not Intersect(Target, Range("B2:K65000")) Is Nothing Then
Cancel = True
ActiveSheet.Unprotect (getStrPasswort)
Range(Cells(Target.Row, 2), Cells(Target.Row, 10)).Select       'selektieren
ActiveSheet.Range("K12:K20") = Application.Transpose(Range(Cells(Target.Row, 2), Cells(Target.Row, 10)).Value)
End Sub
gruß kurt
Anzeige
AW: Zeile in andere Tabelle kopieren
31.12.2022 13:21:45
GerdL
Moin Kurt
zum Anpassen.

Sub Unit()
Dim Quelle As Variant, Ziel As Range
Quelle = ActiveSheet.Cells(ActiveCell.Row, 2).Resize(1, 9).Value
Set Ziel = ThisWorkbook.Worksheets(1).Range("K12:K20")
Ziel.Value = Application.Transpose(Quelle)
Set Ziel = Nothing
End Sub
Gruß Gerd
Leider nicht...
31.12.2022 13:52:40
kurt
Hallo Gerd,,
habe mal so eingesetzt,
Daten werden nicht kopiert.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
Application.EnableEvents = True
If Not Intersect(Target, Range("B2:K65000")) Is Nothing Then
Cancel = True
ActiveSheet.Unprotect (getStrPasswort)
Range(Cells(Target.Row, 2), Cells(Target.Row, 10)).Select       'selektieren
ActiveSheet.Range("K12:K20") = Application.Transpose(Range(Cells(Target.Row, 2), Cells(Target.Row, 10)).Value)
'Stop
Dim Quelle As Variant, Ziel As Range
Dim wb     As Workbook
Dim b      As Boolean
Set Quelle = ThisWorkbook
Set Ziel = ThisWorkbook.Worksheets(2).Range("K12:K20")
For Each wb In Application.Workbooks
If wb.name Like "__Rechnungs-Programm Vers.*.xlsm" Then
b = True
Exit For
End If
Next wb
Quelle = ActiveSheet.Cells(ActiveCell.Row, 2).Resize(1, 9).Value
MsgBox Ziel
Ziel.Value = Application.Transpose(Quelle)
Set Ziel = Nothing
End Sub
Gr kurt
Anzeige
Jetzt bin ich glücklich -)
31.12.2022 14:01:47
kurt
Hallo zusammen,
so funktioniert es, bin also nicht ganz so unfähig:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
Application.EnableEvents = True
If Not Intersect(Target, Range("B2:K65000")) Is Nothing Then
Cancel = True
ActiveSheet.Unprotect (getStrPasswort)
Range(Cells(Target.Row, 2), Cells(Target.Row, 10)).Select       'selektieren
ActiveSheet.Range("K12:K20") = Application.Transpose(Range(Cells(Target.Row, 2), Cells(Target.Row, 10)).Value)
Call In_Vorlage_kopieren
End If
End Sub

Private Sub In_Vorlage_kopieren()
Dim wb     As Workbook
Dim thiswb As Workbook
Dim b      As Boolean
Dim i&, ze
Set thiswb = ThisWorkbook
i = ActiveCell.Row
For Each wb In Application.Workbooks
If wb.name Like "__Rechnungs-Programm Vers.*.xlsm" Then
b = True
Exit For
End If
Next wb
'   Stop
If Not b Then
' MsgBox "nix gefunden"
Exit Sub
End If
wb.Activate
ze = ActiveSheet.name
'- somit wird der Tabellenname von der Empfängerdatei übernommen
'---- und zurück --
thiswb.Activate
With ActiveSheet
wb.Worksheets(ze).Range("K12:K20") = Application.Transpose(.Range(.Cells(i, 2), .Cells(i, 10)))
End With
wb.Activate
Application.ScreenUpdating = True
End Sub
einen guten Rutsch und ein gesundes neues JAHR,
herzlichst an ALLE,
gruß kurt

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige