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

Forumthread: Aktive Zelle in andere Tabelle

Aktive Zelle in andere Tabelle
23.01.2016 11:13:02
gerhard
Hallo,
Bitte um VBA Hilfe!
Ich möchte aus der Tabelle Quelle die jeweils markierte Zelle (Aktive Zelle)
den Inhalt in die Tabelle Ziel ab der Spalte C4 übernehmen.
Wenn eine weitere Zelle in der Tabelle Quelle ausgewählt wird sollte dieser Wert
in die Tabelle Ziel entsprechend in die Spalte C angefügt werden.
Sind in der Tabelle Ziel die Zellen von C4:C9 mit Werten belegt sollte ein ensprechender Hinweis erfolgen z.B "Die Zellen C4:C9 sind belegt!"
siehe im Anhang Testmappe
Vielen Dank für Eure Hilfe
Gruß Gerhard
https://www.herber.de/bbs/user/102980.xls

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aktive Zelle in andere Tabelle
23.01.2016 11:33:17
Matthias
Hallo
Code in Tabelle2("Quelle")
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Tabelle1
If Application.WorksheetFunction.CountA(.Range("C4:C9")) = 6 Then
MsgBox "Alle 6 Zellen belegt": Exit Sub
Else
If .Range("C4") = "" Then .Range("C4") = Target: Exit Sub
If .Range("C5") = "" Then .Range("C5") = Target: Exit Sub
If .Range("C6") = "" Then .Range("C6") = Target: Exit Sub
If .Range("C7") = "" Then .Range("C7") = Target: Exit Sub
If .Range("C8") = "" Then .Range("C8") = Target: Exit Sub
If .Range("C9") = "" Then .Range("C9") = Target: Exit Sub
End If
End With
End Sub
Gruß Matthias

Anzeige
AW: Aktive Zelle in andere Tabelle
23.01.2016 13:04:30
gerhard
Hallo Matthias,
Vielen Dank für Deine schnelle Hilfe.
Leider wieder dein VBA Code automatisch durchgeführt!
Das heißt es werden auch Zellenwerte übertragen wo der Cursor gerade steht!
Die Zelle sollte eigentlich über einen Button übertragen!
Gruß Gerhard

AW: Aktive Zelle in andere Tabelle
23.01.2016 13:43:31
Matthias
Hallo
Das war aber Deine eigene Vorgabe:
Ich möchte aus der Tabelle Quelle die jeweils markierte Zelle (Aktive Zelle)
den Inhalt in die Tabelle Ziel ab der Spalte C4 übernehmen.

Da war aber keine Rede davon, das Du es über ein Button erledige willst.
Aber auch das ist ja kein Problem
https://www.herber.de/bbs/user/102984.xls
Gruß Matthias

Anzeige
AW: Aktive Zelle in andere Tabelle
23.01.2016 14:35:08
gerhard
Hallo Matthias,
Vielen Dank
jetzt funktioniert es super!
Gruß Gerhard

AW: Aktive Zelle in andere Tabelle
23.01.2016 16:22:40
Werner
Hallo Gerhard,
da würde ich persönlich das Doppelklickereignis des Tabellenblattes verwenden und nicht eine Schaltfläche. Der Code gehört ins Tabellenblatt "Quelle". Bei Doppelklick in eine Zelle in Spalte A wird der entsprechende Zellinhalt ins Blatt "Ziel" kopiert.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim rngFind As Range
Dim lngLastRow As Long
Cancel = True
If Target.Column 
Gruß Werner

Anzeige
AW: Aktive Zelle in andere Tabelle
23.01.2016 16:38:24
Matthias
Hallo Werner
Warum ca. 2 Std. nach erledigten Beitrag ein neuer Vorschlag.
Steht Dir zwar zu, aber ist für micht nicht nachvollziehbar.
Er hat doch explizit darauf verwiesen das er es über ein Button machen will!
Sonst hätte mein erster Vorschlag auch gereicht. Egal ob SelectionChange oder DoubleClick
Gruß Matthias
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Aktive Zelle in andere Tabelle übertragen


Schritt-für-Schritt-Anleitung

Um den Inhalt der aktiven Zelle aus der Tabelle "Quelle" in die Tabelle "Ziel" zu übertragen, kannst du folgenden VBA-Code verwenden. Dieser Code wird aktiviert, wenn du eine Zelle in der Tabelle "Quelle" auswählst:

  1. Öffne deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Suche im Projektfenster links die Tabelle "Quelle" und doppelklicke darauf.
  3. Füge den folgenden Code in das Codefenster ein:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With Tabelle1
        If Application.WorksheetFunction.CountA(.Range("C4:C9")) = 6 Then
            MsgBox "Alle 6 Zellen belegt": Exit Sub
        Else
            If .Range("C4") = "" Then .Range("C4") = Target: Exit Sub
            If .Range("C5") = "" Then .Range("C5") = Target: Exit Sub
            If .Range("C6") = "" Then .Range("C6") = Target: Exit Sub
            If .Range("C7") = "" Then .Range("C7") = Target: Exit Sub
            If .Range("C8") = "" Then .Range("C8") = Target: Exit Sub
            If .Range("C9") = "" Then .Range("C9") = Target: Exit Sub
        End If
    End With
End Sub
  1. Schließe den VBA-Editor und teste die Funktionalität in deiner Excel-Tabelle.

Häufige Fehler und Lösungen

  • Fehler: Der Code wird automatisch ausgeführt, auch wenn ich nicht möchte.
    • Lösung: Um die Übertragung der Zelle über einen Button zu realisieren, kannst du den Code zur Übertragung in ein Button-Click-Ereignis verschieben. Hier ein Beispiel:
Private Sub CommandButton1_Click()
    Dim Target As Range
    Set Target = ActiveCell
    ' Der restliche Code bleibt gleich, um Target in Tabelle Ziel zu übertragen
End Sub
  • Fehler: Die Zellen in der Tabelle Ziel werden nicht aktualisiert.
    • Lösung: Stelle sicher, dass der Name der Tabelle korrekt ist und dass der VBA-Code im richtigen Tabellenblatt eingefügt wurde.

Alternative Methoden

Eine andere Möglichkeit, die aktive Zelle zu übertragen, ist die Verwendung des Doppelklickereignisses. Du kannst den folgenden Code verwenden, um beim Doppelklick den Zellinhalt zu übertragen:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim rngFind As Range
    Dim lngLastRow As Long
    Cancel = True
    If Target.Column = 1 Then ' Nur Spalte A
        ' Hier den Code zum Übertragen in Tabelle Ziel einfügen
    End If
End Sub

Praktische Beispiele

Wenn du beispielsweise den Inhalt von Zelle A1 in die nächste freie Zelle in der Spalte C der Tabelle Ziel übertragen möchtest, kannst du den oben genannten Code erweitern, um die letzte verwendete Zeile zu finden:

lngLastRow = Tabelle1.Cells(Tabelle1.Rows.Count, "C").End(xlUp).Row + 1
Tabelle1.Cells(lngLastRow, "C").Value = Target.Value

Tipps für Profis

  • Nutze das Worksheet_Change-Ereignis, um zusätzliche Aktionen durchzuführen, wenn sich der Inhalt einer Zelle ändert.
  • Verwende Application.ScreenUpdating = False, um Flackern beim Übertragen von Werten zu vermeiden, und setze es am Ende wieder auf True.
  • Teste deine VBA-Codes immer in einer Kopie der Datei, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich den Code so anpassen, dass er auch Zellen in anderen Spalten überträgt? Ja, du kannst die Spaltenreferenzen im Code ändern, um die Übertragung auf andere Spalten auszudehnen.

2. Was mache ich, wenn ich mehrere Zellen gleichzeitig übertragen möchte? Du kannst eine Schleife verwenden, um die Werte mehrerer Zellen in einem Schritt zu übertragen.

3. Wie kann ich die Tabelle Ziel nach der Übertragung formatieren? Du kannst im VBA-Code Formatierungsanweisungen hinzufügen, um die Zellen in der Tabelle Ziel nach dem Übertragen des Inhalts zu formatieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige