2k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Leute,

ich möchte gerne fragen, wie ich in VBA realisieren kann, dass ich in einer Excel Tabelle eine bestimmte Zeile in einer anderen Excel Tabelle kopieren kann?
Die Tabelle liegt im Range (B2:Q7). Titel ist in der Zeile(B1:Q1). Wen ich die Zeile 5 mitkopieren möchte, betrifft nur die Zeile (B5:Q5).
Ich habe mir überlegt, A5 farbig zu markieren, if Farbe >0 dann diese Zeile in anderer Excel Tabelle zu kopieren. Wie funktioniert das, kann jemand bitte mir mal helfen?
Vielen Lieben Dank!

4 Antworten

0 Punkte
Beantwortet von
Halle Leute,
ich habe eine Spalte A als Hilfszelle ausgedacht, wenn man dort in einer Zeile "x" schreibt, dann ist diese Zeile, die kopiert werden soll. Allerdings tut es nicht was ich gerne hätte.
Folgende Zeichen von mir:


Sub Makro7()
'
' Makro7 Makro
Dim Zeile As Integer
Dim Spalte As Integer
Dim ZelleK As Integer
Const Auswahl As String = "x"
Dim Wert As String


Zeile = 2
Spalte = 1
'ZelleK = 2
ActiveWorkbook.Save
Workbooks("Registrierung.xlsm").Worksheets("Liste").Activate

Wert = Workbooks("Registrierung.xlsm").Worksheets("Liste").Cells(Zeile, Spalte).Value
If Wert = Auswahl Then
Range("B1:Q1").Select
Range("B1:Q1", "B5:Q5").Select
Range("B5").Activate
Selection.Copy

Range("A1").Select
ActiveSheet.Cells(Rows.Count, ActiveCell.Column).Select
If IsEmpty(ActiveCell) Then
ActiveCell.End(xlUp).Select
aH = ActiveCell.Row
a = aH + 1
b = ActiveCell.Column
End If
End If

Workbooks.Open Filename:="P:\Neu\Email.xls"
Sheets("Liste").Select
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
With Selection.Interior
.Pattern = xlNone
'.TintAndShade = 0
'.PatternTintAndShade = 0
End With
ActiveWorkbook.Save



Dim outApp As Object
Set outApp = CreateObject("Outlook.Application")
Set outmail = outApp.CreateItem(0)
With outmail
'Empfänger
.To = "xx@info.com"
.CC = "yy@info.com"
' .BCC = ""
'Betreff
.Subject = "Eingang"
'Nachricht
.Body = "Hallo Frau YY" & Chr(13) & _
"Anbei ein eingegangenen Fall." & Chr(13) & _
"Viele Grüße..." & Chr(13) & Chr(13)
'Lesebestätigung aus
.ReadReceiptRequested = True
'Dateianhang
.Attachments.Add "P:\Neu\Email.xls"
.Display
End With
Set outApp = Nothing
End Sub
0 Punkte
Beantwortet von ericmarch Experte (4.6k Punkte)
Hallo!

Was im Einzelnen hast du denn nun genau vor?
Du schreibst, dass eine Tabelle (oder mehr ein Range - B1:Q5) innerhalb eines Blattes in ein anderes kopiert werden soll. Dann wiederum erwähnst du etwas mit dem «x». Diese Aufgabe und die erste scheinen mir nicht übereinzustimmen. Aus Erfahrungen heraus mal einige Fragen:

Wohin das Ganze? in eine markierte Zelle als obere-linke Ecke?
Von welchem Quellblatt auf welches Zielblatt - immer dasselbe Blatt gleichen Namens oder kann sich das ändern?
Woran wird nun die Quelle festgemacht; der o.g. Range oder das x?

Eric March
0 Punkte
Beantwortet von
Hi Eric,

Ich habe eine Excel Tabelle (von B2 bis Q7), erste Zeile ist Titel (B1 bis Q1). Die Spalte "A" habe ich freigelassen, die möchte ich als Hilfszelle definieren, damit ich jene Zeile für VBA markieren kann, welche in einer anderen Excel-Datei(Email.xls) kopiert werden soll. Diese Datei verschicke ich später als Anhang per Email weiter. Alles funktioniert super, bis auf die Hilfszelle Bestimmung. Ich habe damit probiert, dass ich in jene Zeile in der Spalte "A" ein "x" reinschreibe, damit VBA weiß, welche Zeile er in die Email.xls kopieren soll, es funktioniert nicht.


P.S. bis jetzt steht im Code, dass Zeile 2 bis 5 rüberkopiert werden soll (hardcoded), ich möchte aber selber bestimmen, welche Zeile genau. Die Zeilen können auch nicht hintereinandern liegen.

Vielleicht könntest du mir ja ein Tipp geben. Vielen lieben Dank!
Way
0 Punkte
Beantwortet von
Hallo Alle,



ich habe das Problem mit folgender Änderung gelöst:

For Zeile = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
Wert = .Cells(Zeile, Spalte).Value
If Wert = Auswahl Then
If wbZiel Is Nothing Then

Vielen Dank an allen!

Way
...