Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

VBA - zählen wie oft Zelle kopiert wurde

Betrifft: VBA - zählen wie oft Zelle kopiert wurde von: tobwo
Geschrieben am: 23.06.2014 13:10:23

Hallo liebe Profis,

ich stehe vor folgendem Problem: Kann ich per VBA erkennen, wie oft eine Zelle kopiert (CTRL+C) wurde und diese Zahl ein einer Zelle aktuell - idealerweise nach "Kopier-Tag" abbilden?

In Spalte C (C2:C32) sind die Werte.
Ab Spalte F (Datum 01.01. - 31.12.) möchte ich sehen, wie oft der Wert am jeweiligen Tag kopiert wurde.

Bsp.:
C2 wurde am 16.06. 15x kopiert, dann steht in FP2 (=16.06.) 15.
C2 wurde am 17.06. 8x kopiert, dann steht in FQ2 8
usw.

Geht sowas...?

Freu mich auf Feedback

  

Betrifft: AW: VBA - zählen wie oft Zelle kopiert wurde von: Daniel
Geschrieben am: 23.06.2014 16:17:41

Hi
direkt mit Zellen schwierig.
der einfachste Workaround wäre wohl, das Blatt generell auszublenden und die Werte in einer Userform mit Listbox anzuzeigen. Der Anwender wählt dann einen Wert aus und das Makro des Buttons kopiert dann den Wert und macht die entsprechende Eintragung

Gruß Daniel


  

Betrifft: AW: VBA - zählen wie oft Zelle kopiert wurde von: tobwo
Geschrieben am: 23.06.2014 17:49:58

hmm, ich kann die Werte leider nicht ausblenden und über ne Listbox arbeiten, da ich auch Ergänzungen in anderen Spalten habe und nicht an jedem Tag jeder Wert kopiert werden soll...

Trotzdem DANKE für die Idee, vielleicht hat ja noch jemand anders eine Lösung?


  

Betrifft: AW: VBA - zählen wie oft Zelle kopiert wurde von: Nepumuk
Geschrieben am: 24.06.2014 10:37:35

Hallo,

teste mal (die Anzahl der Kopiervorgänge wird in Spalte O eingetragen. Die Spalte und den Tabellennamen im Open-Event musst du natürlich anpassen).

' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_Open()
    If ActiveSheet Is Tabelle1 Then _
        Set Tabelle1.LastSelection = Selection
End Sub

' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private mobjLastSelection As Range

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim lngIndex As Long
    Dim blnNotEqual As Boolean
    If Not LastSelection Is Nothing Then
        If Target.Count = LastSelection.Count Then
            For lngIndex = 1 To Target.Count
                If Target(lngIndex).Value <> _
                    LastSelection(lngIndex).Value Then
                    blnNotEqual = True
                    Exit For
                End If
            Next
            If Not blnNotEqual Then
                Application.EnableEvents = False
                Cells(LastSelection.Row, 15).Value = _
                    Cells(LastSelection.Row, 15).Value + 1
                Application.EnableEvents = True
            End If
        End If
    End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Application.CutCopyMode = 0 Then Set LastSelection = Selection
End Sub

Public Property Get LastSelection() As Range
    Set LastSelection = mobjLastSelection
End Property

Public Property Set LastSelection(ByRef probjLastSelection As Range)
    Set mobjLastSelection = probjLastSelection
End Property

Gruß
Nepumuk


  

Betrifft: AW: VBA - zählen wie oft Zelle kopiert wurde von: tobwo
Geschrieben am: 25.06.2014 12:23:46

Hallo Nepumuk,

super, danke, das funktioniert!

ABER: Nur, wenn ich den Wert in der selben Datei einfüge.
Da ich aber in ein anderes Programm kopiere (CTRL+C) zählt es mir den Kopiervorgang nicht (sondern nur das Einfügen).

Gibt's dafür vielleicht auch eine Möglichkeit?


  

Betrifft: AW: VBA - zählen wie oft Zelle kopiert wurde von: Nepumuk
Geschrieben am: 25.06.2014 17:18:03

Hallo,

du kopierst nur aus einer einzigen Tabelle? Alle Mappen in welche du die Zeilen einfügst sind in der gleichen Excelinstanz geöffnet wie die Quellmappe?

Gruß
Nepumuk


  

Betrifft: AW: VBA - zählen wie oft Zelle kopiert wurde von: tobwo
Geschrieben am: 25.06.2014 18:01:13

Ziel ist, aus unterschiedlichen Tabellenblättern einer Datei in eine komplett andere Software zu kopieren.
Deswegen erscheint für mich nur die Möglichkeit zu "zählen", wie oft kopiert und nicht wie oft eingefügt wurde...


  

Betrifft: AW: VBA - zählen wie oft Zelle kopiert wurde von: Nepumuk
Geschrieben am: 25.06.2014 18:56:43

Hallo,

für "in eine komplett andere Software" ??? . Das hättest du aber gleich schreiben können, dann hätte ich mir den Code sparen können. Schade wenn eine halbe Stunde Arbeit einfach in die Tonne getreten wird.

Da sehe ich eigentlich nur die Möglichkeit den Tastaturstream zu überwachen. Funktioniert aber nur wenn die "andere Software" kein Kontextmenü zum Einfügen der Zwischenablage hat, ansonsten müssten auch noch alle Childwindows der Anwendung überwacht werden.

Viel Spaß dabei.

Gruß
Nepumuk


 

Beiträge aus den Excel-Beispielen zum Thema "VBA - zählen wie oft Zelle kopiert wurde"