Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1392to1396
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
zellen kopieren wenn
30.11.2014 17:43:05
bea
Hallo ihr,
erstmal einen schönen 1.Advent:-)
Ich benötige eure Hilfe. Denn mein Kopf ist aufgrund der vielen Projekte zugenagelt.
Excel Mappe: möchte mit dem Workbook_Change Ereignis definierte Zellen z.B. A5 und C5 kopieren in ein anderes Sheet kopieren wenn in M 5 ein x steht.
Das gilt dann auch für die weiteren Zellen A6 und C6 wenn in M6 ein x steht, bis A14/C14 - M14.
Wie ganze Zeilen kopiert werden bekomme ich hin, aber nur bestimmte Zellen will einfach nicht.
Ich hoffe das war ausreichend und schlüssig erklärt.
Im Voraus ganz vielen Dank für die Mühe
LG
Bea

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: zellen kopieren wenn
30.11.2014 17:48:30
Hajo_Zi
Hallo Bea,
Range("A5").copy

AW: zellen kopieren wenn
30.11.2014 17:49:30
Uwe
Hallo Bea,
wohin soll was genau kopiert werden?
Gruß Uwe

AW: zellen kopieren wenn
30.11.2014 18:00:54
bea
Hallo Uwe,
das ist ja toll das du noch hier anzufinden bist. Du hast mir schon mal aus der klemme geholfen.
Tabelle1 wird mit Daten aus externem Programm bestückt A5 bis L14.
Nun soll immer wenn ich z.B. in die Zeile 5 in Spalte M ein x schreibe die Inhalte aus A5 und C5 in die Tabelle2. Nur wenn ein x drin steht, sonst soll nichts übertragen werden.
Danke für die rasche Antwort
LG
Bea

Anzeige
AW: zellen kopieren wenn
30.11.2014 18:22:05
Uwe
Hallo Bea,
da Du nicht darauf geantwortet hast, wohin genau kopiert werden soll, hab ich die Spalten A:B in Tabelle2 genommen:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngC As Range, rngT As Range
Set rngT = Application.Intersect(Range("M5:M14"), Target)
If Not rngT Is Nothing Then
For Each rngC In rngT.Cells
If LCase(rngC.Value) = "x" Then
Application.Union(Cells(rngC.Row, 1), Cells(rngC.Row, 3)).Copy _
Worksheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Offset(1)
End If
Next rngC
End If
End Sub
Gruß Uwe

AW: zellen kopieren wenn
30.11.2014 18:47:35
bea
Hallo und ganz lieben Dank.
Habe es angepasst und es ist fast gut :-)
Nur noch eine kleine Frage hätte ich: wenn ich nur in Tabelle2 definierte Zeilen ansprechen will, z. B. A und C, wie muss ich es dann verändern?
Ganz liebe Grüße und vielen Dank für deine Geduld.
Lg
Bea

Anzeige
AW: zellen kopieren wenn
30.11.2014 19:01:50
Uwe
Hallo Bea,
wenn die Zielzellen nicht zusammenhängend sind, werden die Zellen einzeln kopiert.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngZielzeile As Long
Dim rngC As Range, rngT As Range
Set rngT = Application.Intersect(Range("M5:M14"), Target)
If Not rngT Is Nothing Then
For Each rngC In rngT.Cells
If LCase(rngC.Value) = "x" Then
With Worksheets("Tabelle2")
lngZielzeile = Application.Max(.Cells(Rows.Count, 1).End(xlUp).Row, _
.Cells(Rows.Count, 3).End(xlUp).Row) + 1
Cells(rngC.Row, 1).Copy .Cells(lngZielzeile, 1)
Cells(rngC.Row, 3).Copy .Cells(lngZielzeile, 3)
End With
End If
Next rngC
End If
End Sub
Gruß Uwe

Anzeige
AW: zellen kopieren wenn
30.11.2014 21:24:42
bea
Hallo Uwe,
perfekt...fast.
Nur noch ein Problem habe ich. Das ist die Formatierung des Zielsheets (Tabelle2).
Er übernimmt bei dem kopieren wohl auch immer die Quellformatierung.
Kann das noch geändert werden?
Heißt: im Quellsheet ist die Schrift Größe 10, im Zielsheet soll sie aber 16 betragen.
Und dann wären da noch die Rahmen. Im Quellsheet habe ich alles eingerahmt, im Zielsheet brauche ich das aber nicht.
Wie stelle ich es an das er nur die Werte überträgt und die Formatierung im Zielsheet aber bestehen bleibt?
Das wäre dann aber alles...glaube ich ;-)
LG
Bea
Ps. ganz lieben Dank für die Geduld

Anzeige
AW: zellen kopieren wenn
30.11.2014 21:34:46
Uwe
Hallo Bea,
dann einfach so:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngZielzeile As Long
Dim rngC As Range, rngT As Range
Set rngT = Application.Intersect(Range("M5:M14"), Target)
If Not rngT Is Nothing Then
For Each rngC In rngT.Cells
If LCase(rngC.Value) = "x" Then
With Worksheets("Tabelle2")
lngZielzeile = Application.Max(.Cells(Rows.Count, 1).End(xlUp).Row, _
.Cells(Rows.Count, 3).End(xlUp).Row) + 1
.Cells(lngZielzeile, 1).Value = Cells(rngC.Row, 1).Value
.Cells(lngZielzeile, 3).Value = Cells(rngC.Row, 3).Value
End With
End If
Next rngC
End If
End Sub
Gruß Uwe

Anzeige
AW: zellen kopieren wenn
30.11.2014 21:48:28
bea
Hallo Uwe,
prima! Ganz lieben Dank für die schnelle Hilfe.
Es klappt wie erwartet super.
Nur noch das Zeilen Offset (1) im Zielsheet. Wo setze ich das an?
Nu bin ich aber ruhig ;-)
Schönen ersten Advent noch dir
Grüße
Bea

AW: zellen kopieren wenn
30.11.2014 21:53:39
Uwe
Hallo Bea,
"Nur noch das Zeilen Offset (1) im Zielsheet. Wo setze ich das an?"
Willst Du immer eine Leerzeile im Zielsheet? Dann
          lngZielzeile = Application.Max(.Cells(Rows.Count, 1).End(xlUp).Row, _
.Cells(Rows.Count, 3).End(xlUp).Row) + 2
Gruß Uwe

Anzeige
AW: zellen kopieren wenn
30.11.2014 21:54:34
bea
Hallo,
ich habs selbst geschafft...Puh, endlich mal was alleine hinbekommen :-)
Schönen Abend euch und danke für die Hilfe
Grüße
Bea

AW: zellen kopieren wenn
01.12.2014 08:46:11
bea
Guten Morgen,
nachdem ich gestern hier so viel Hilfe bekommen habe und seit Stunden an einem weiteren Problem hänge, muss ich euch noch mal bemühen.
Das Script funktioniert sehr gut nur übernimmt er mir aber immer nur einen Datensatz.
Er sollte aber alle übernehmen welche mit x markiert sind.
Gestern hat das noch funktioniert, heute kopiert er aber nur einen Datensatz in das Zielsheet.
Was ist falsch?
Hier das abgeänderte Script:
Sub Worksheet_Change(ByVal Target As Range)
Dim lngZielzeile As Long
Dim rngC As Range, rngT As Range
Set rngT = Application.Intersect(Range("M5:M14"), Target)
If Not rngT Is Nothing Then
For Each rngC In rngT.Cells
If LCase(rngC.Value) = "x" Then
With Worksheets("Aushang")
lngZielzeile = Application.Max(.Cells(Rows.Count, 1).End(xlUp).Row, _
.Cells(Rows.Count, 5).End(xlUp).Row) + 2
.Cells(lngZielzeile, 2).Value = Cells(rngC.Row, 1).Value
.Cells(lngZielzeile, 4).Value = Cells(rngC.Row, 5).Value
End With
End If
Next rngC
End If
End Sub
Ich sag schon mal Danke für die Geduld mit mir
Grüße
Bea

Anzeige
AW: zellen kopieren wenn
01.12.2014 21:29:49
Uwe
Hallo Bea,
wenn die Daten in die Spalten B (2) und D (4) sollen, musst Du diese auch für die Ermittlung der Zeile heranziehen! ;-)
Sub Worksheet_Change(ByVal Target As Range)
Dim lngZielzeile As Long
Dim rngC As Range, rngT As Range
Set rngT = Application.Intersect(Range("M5:M14"), Target)
If Not rngT Is Nothing Then
For Each rngC In rngT.Cells
If LCase(rngC.Value) = "x" Then
With Worksheets("Aushang")
lngZielzeile = Application.Max(.Cells(Rows.Count, 2).End(xlUp).Row, _
.Cells(Rows.Count, 4).End(xlUp).Row) + 2
.Cells(lngZielzeile, 2).Value = Cells(rngC.Row, 1).Value
.Cells(lngZielzeile, 4).Value = Cells(rngC.Row, 5).Value
End With
End If
Next rngC
End If
End Sub
Gruß Uwe
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige