mit diesem Makro im Modul des Tabellenblattes geht das: (wenn du das auf allen Blättern brauchst, meldest du dich bitte noch mal).
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim strTxt As String If Mid(ActiveCell.Address, 2, 2) = "BD" Then strTxt = Cells(Target.Row, Target.Column) Worksheets("Tabelle1").Range("A1") = Cells(Target.Row, Target.Column).Value Worksheets("Tabelle1").Range("B1") = "ja" End If If Worksheets("Tabelle1").Range("B1") = "ja" Then ActiveCell.Value = Worksheets("Tabelle1").Range("A1") Worksheets("Tabelle1").Range("B1") = "nein" Worksheets("Tabelle1").Range("A1") = "" End If If Mid(ActiveCell.Address, 2, 2) = "BD" Then Worksheets("Tabelle1").Range("A1") = Cells(Target.Row, Target.Column).Value Worksheets("Tabelle1").Range("B1") = "ja" End If End Sub
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
Sub Kopieren() Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim strTxt As String If Mid(ActiveCell.Address, 2, 2) = "BD" Then strTxt = Cells(Target.Row, Target.Column) Worksheets("Tabelle1").Range("A1") = Cells(Target.Row, Target.Column).Value Worksheets("Tabelle1").Range("B1") = "ja" End If If Worksheets("Tabelle1").Range("B1") = "ja" Then ActiveCell.Value = Worksheets("Tabelle1").Range("A1") Worksheets("Tabelle1").Range("B1") = "nein" Worksheets("Tabelle1").Range("A1") = "" End If If Mid(ActiveCell.Address, 2, 2) = "BD" Then Worksheets("Tabelle1").Range("A1") = Cells(Target.Row, Target.Column).Value Worksheets("Tabelle1").Range("B1") = "ja" End If End Sub
beim ausführen wird jetzt gesagt "End Sub erwartet" unten anbei die Datei mit mit dem eingefügten Makro
in der beiliegenden Excel-Datei habe ich dir im Codemodul "DieseArbeitsmappe" ein Makro eingefügt, das auf die Zellauswahlsänderung im Arbeitsblatt "komplett" reagiert. 1) Sobald du Zelle(n) der Spalte "BD" auswählst, wird ein Kopiervorgang gestartet 2) Sobald du dann eine weitere Zelle außerhalb der Spalte "BD" anklickst, wird der kopierte Inhalt aus Pkt.1) dorthin kopiert (inklusive Zellformatierung). 3) Falls du keine mitkopierte Zellformatierung haben möchtest, müsstest du einen Alternativbefehl verwenden (beschrieben im Makro-Kommentar). 4) Ich habe dir jede Menge an beschreibenden Kommentar eingefügt, sodass es möglich sein müsste, der Makrofunktionalität zu folgen.
Mit lieben Grüßen Anton.
Windows 10 64bit Office365 32bit
Folgende(r) 1 Nutzer sagt Danke an EA1950 für diesen Beitrag:1 Nutzer sagt Danke an EA1950 für diesen Beitrag 28 • BrianMolko1980
Betreff: die Beschreibung habe ich gefunden aber ist das auch gleich die Funktion da ich unter Makros anzeigen keins finde. könntest du mir deines evtl. noch mal so zu kommen lassen.
wenn das Excel-Arbeitsblatt "komplett" erwartungsgemäß funktioniert, so heißt das, dass auch das Makro vorhanden sein muss. Da das Makro nicht als "public sub" im Codemodul des Arbeitsblattes, sondern als "private sub" von "DieseArbeitsmappe" gespeichert ist, wird es unter der Makroliste des Buttons "Makros" nicht angezeigt.
1) Du kannst im Arbeitsblatt "komplett" entweder einen Rechtsklick auf den Tabulator "komplett" machen, dort dann den Befehlt "Code anzeigen" auswählen oder aber die Tastenkombination Alt+F11 drücken 2) Dadurch gelangst du in den VBA-Editor 3) Falls dort das Fenster mit der Aufschrift "Projekt - VBAProject" nicht zu sehen sein sollte, die Tastenkombination Strg+R drücken 4) Im Projekt-Fenster dann den Eintrag "DieseArbeitsmappe" doppelt anklicken (dieser ist unterhalb von "Microsoft Excel Objekte" enthalten) 5) Dadurch wird dann das Codemodul der Arbeitsmappe ("DieseArbeitsmappe" bzw. "ThisWorkbook") sichtbar und dort findest du auch das Makro, das standardmäßig als "private Suib" deklariert ist und deshalb von "außen" nicht sichtbar ist. 6) Der Kopf der Sub lautet: Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)