Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zellen in anderes Tabellenblatt kopieren wenn..

Zellen in anderes Tabellenblatt kopieren wenn..
10.11.2016 09:23:04
Maria
Hallo,
ich habe folgendes Anliegen: Ich möchte die Zellen C10:C17 aus Tabellenblatt "X" in Tabellenblatt "Y" in Zellen B3:B10 fortlaufend einkopieren lassen sobald in Tabellenblatt "X" in Zelle F29 "erfüllt" oder "nicht erfüllt" steht.
Um Verwirrungen vorzubeugen habe ich auch gleich eine Beispieldatei hochgeladen.
https://www.herber.de/bbs/user/109309.xlsm
Habe Kopieren per VBA schon mal durch Umschreiben einer Formel lösen können. Damals war es aber eine Zeile.. und ich fand es sehr elegant. Vielleicht kann mir jemand helfen, das ich wieder zu einer Lösung komme?
Dankeschön.
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen in anderes Tabellenblatt kopieren wenn..
10.11.2016 11:27:21
Fennek
Hallo,
ich habe das so verstanden:

sub Test()
Dim Li as worksheet
dim Lan as worksheet
set Li = sheets("Light Inspection Check Eingabe)
set La = sheets("Langzeitauswertung")
ls = La.cells(1, columns.count).end(xltoleft).column +1
li.Range("C10;C17").copy la.cells(2, ls)
li.range("F29").copy la.cells(1,ls)
end sub
mfg
PS: da ich keine fremden xlsm-Dateien öffne, kenne ich nicht die enthaltenen Makros. Der Code ist frei geschrieben, muss also noch debugged werden, ebenso die Anbindung an einen button
Anzeige
AW: Zellen in anderes Tabellenblatt kopieren wenn..
10.11.2016 13:58:21
Maria
Hallo Fennek,
leider funktioniert der Code nicht. Wenn ich ihn denn richtig angewendet habe. Denn wie gesagt, hab ich nur absolute geringfügige Kenntnisse über VBA. Ich weiß wo ich den Code eingeben und speichern muss. Höchstens kann ich noch erkennen, wo man eine Zahl oder Tabellenname ändern könnte. Mir ist somit auch nicht ganz klar was du mit debuggen meinst, sorry für meine Unwissenheit.
Die Zeile F29 mit "erfüllt" und "nicht erfüllt" ist eine WENN-Funktion, sodass dieser Text nur erscheint, wenn auch der letzte Wert (der Werte die alle kopiert werden sollen) eingegeben wurde. Sodass eigentlich ein Button nicht notwendig wäre, habe ich mir überlegt. Es würde automatisch passieren, wenn dies mit VBA umsetzbar wäre.
Anzeige
AW: Zellen in anderes Tabellenblatt kopieren wenn..
12.11.2016 11:41:06
Bastian
Hey Maria
So könnte das aussehen der Code wird jedesmal gestartet wenn Erfüllt erscheint.
Es können keine Datenkopiert werden die das gleiche Datum haben .
Gruß Basti
https://www.herber.de/bbs/user/109372.xlsm
AW: Zellen in anderes Tabellenblatt kopieren wenn..
14.11.2016 16:42:23
Maria
Hallo Basti,
hey das funktioniert ja super gut! Vielen vielen Dank! Die Bedingung ist ja, wenn in F29 "erfüllt" steht: If Range("F29").Value = "erfüllt" Then Call Kopieren
Ich würde auch gerne die Daten kopiert haben wenn "nicht erfüllt" da steht. Kann man hier einfach ein "oder" oder , einfügen um beides zu ermöglichen? Das würde mein Problem lösen, und ihr wärt mich wieder los hier :)
Vielend Dank im Voraus.
P.S.: Wenn ich hier gerade schon einen "Könner" an der Strippe habe: Ich würde gerne selbstständiger werden was VBA angeht. Kannst du mir ein einfach gestaltetes Tutorial für totale Anfänger im Internet oder oer Buch empfehlen?
Liebe Grüße
Maria
Anzeige
AW: Zellen in anderes Tabellenblatt kopieren wenn..
14.11.2016 20:21:17
Bastian
Hey Maria
So ändern dann sollte es gehen ;)
Gruß Basti
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("F29").Value = "erfüllt" Or Range("F29").Value = "erfüllt nicht" Then Call Kopieren
End Sub
Also ich bin auch erst seit 1 Jahr dabei mit VBA/Excel und mein bester Freund war Google und dieses Forum einfach selber an den Fragen von den anderen beteiligen oder versuchen lösungen für die anderen User zu finden .
mfg Basti
Anzeige
AW: Zellen in anderes Tabellenblatt kopieren wenn..
16.11.2016 10:53:45
Maria
Hallo Basti,
das hat super funktioniert. Mir fällt soeben ein, das ein Punkt den du mit eingearbeitet hast, wohl doch ins Gewicht fällt. Du schriebst, das Daten mit demselbigen Datum nicht kopiert werden können. Ließe sich das noch ändern? Es wäre wichtig, das Daten mit demselbigen Datum kopiert werden. Zwar andere Daten, aber auf jeden Fall mit gleichem Datum. Welche Zeile muss geändert werden? (Wenn vom "Anwender" mal auversehen dieselbigen Daten kopiert werden, ist das nicht schlimm. Es wird eh noch mal gegen gecheckt. Also da keine Sorge - es wird kein Sicherheitsnetz benötigt)
Danke im Voraus!
P.S. Schade. Ich dachte es gibt vllt. irgendwo ein gutes Step-by-Step Basis-Anfänger-für-Dummys Tutorial ;) Na gut, dann heißsts wohl üben und geduldig sein.
Anzeige
AW: Zellen in anderes Tabellenblatt kopieren wenn..
16.11.2016 10:55:24
Maria
Häkchen für offen vergessen..
AW: Zellen in anderes Tabellenblatt kopieren wenn..
16.11.2016 15:28:19
baschti007
Hey Maria guck mal ob das so hin haut
Gruß basti
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 2 And Target.Column  9 And Target.Row 

AW: Zellen in anderes Tabellenblatt kopieren wenn..
17.11.2016 08:49:00
Maria
Vielen vielen Dank Basti!
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zellen in ein anderes Tabellenblatt kopieren, wenn Bedingungen erfüllt sind


Schritt-für-Schritt-Anleitung

Um Excel VBA zu nutzen, um Zellen in ein anderes Tabellenblatt zu kopieren, wenn eine bestimmte Bedingung erfüllt ist, kannst Du den folgenden Code verwenden. Achte darauf, dass Du die Namen Deiner Tabellenblätter und die Zellbereiche entsprechend anpasst:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("F29").Value = "erfüllt" Or Range("F29").Value = "nicht erfüllt" Then
        Call Kopieren
    End If
End Sub

Sub Kopieren()
    Dim Li As Worksheet
    Dim La As Worksheet
    Set Li = Sheets("X") ' Quell-Tabellenblatt
    Set La = Sheets("Y") ' Ziel-Tabellenblatt
    Dim ls As Long

    ls = La.Cells(1, Columns.Count).End(xlToLeft).Column + 1
    Li.Range("C10:C17").Copy La.Cells(3, ls) ' Anpassen der Zielzelle
End Sub

Dieser Code nutzt die Worksheet_Change-Ereignisprozedur, um die Werte aus dem Bereich C10:C17 in das andere Tabellenblatt zu kopieren, wenn in Zelle F29 "erfüllt" oder "nicht erfüllt" steht.


Häufige Fehler und Lösungen

  1. Fehler: "Objekt nicht gefunden"

    • Überprüfe, ob die Namen der Tabellenblätter korrekt sind. Dies ist ein häufiger Fehler.
  2. Fehler: Kopierte Daten erscheinen nicht

    • Stelle sicher, dass die Zellen, die Du kopierst, tatsächlich Werte enthalten. Auch die Zielzelle sollte korrekt referenziert sein.
  3. Fehler: VBA-Code wird nicht ausgeführt

    • Achte darauf, dass die Makros in Deiner Excel-Datei aktiviert sind. Du kannst dies unter "Datei" > "Optionen" > "Trust Center" > "Einstellungen für das Trust Center" überprüfen.

Alternative Methoden

Wenn Du keine VBA-Makros nutzen möchtest, kannst Du auch die WENN-Funktion in Excel verwenden, um Werte basierend auf Bedingungen zu übertragen:

=WENN(F29="erfüllt"; X!C10; "")

Diese Formel kann in Zelle B3 des Zielblattes eingegeben werden, um den Wert von C10 zu übernehmen, wenn die Bedingung erfüllt ist.


Praktische Beispiele

  • Beispiel 1: Du möchtest alle Zeilen aus einem bestimmten Bereich kopieren, wenn ein bestimmter Status in einer Zelle steht.
  • Beispiel 2: Wenn Du eine Liste von Werten aus einer Tabelle übernehmen möchtest, wenn diese eine bestimmte Bedingung erfüllen, kannst Du die oben genannte VBA-Prozedur verwenden.

Tipps für Profis

  • Nutze Debugging-Tools in VBA, um Fehler zu finden. Du kannst die Debug.Print-Anweisung verwenden, um Werte zu überprüfen.
  • Vertraue nicht nur auf die Eingaben in Zellen. Überprüfe auch, ob die Daten den Erwartungen entsprechen, bevor Du sie überträgst.
  • Halte Deinen Code sauber und gut kommentiert, damit Du später einfacher darauf zurückgreifen kannst.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur einzigartige Werte kopiert werden? Du kannst eine Überprüfung einfügen, um zu prüfen, ob der Wert bereits im Zielbereich vorhanden ist, bevor Du ihn kopierst.

2. Muss ich den VBA-Editor jedes Mal öffnen, um den Code zu ändern? Ja, Du musst den VBA-Editor öffnen, um den Code zu bearbeiten. Speichere Deine Änderungen und schließe den Editor, um zu den Excel-Tabellen zurückzukehren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige