Excel VBA Datenüberprüfung beim Einfügen (Strg+V) von Text in Zelle aufrecht erhalten?

Hallo zusammen,

ich greife gerade im Rahmen eines Projekts per Datenüberprüfung auf eine Auswahl von 6000+ Zellen zu und möchte falls ein Teil, das nicht zu den 6000 gehört eine Fehlermeldung ausgeben. Nun habe ich die Problematik, dass die Zelle mit der Datenüberprüfung eine Eingabezelle sein wird, d. h. der Benutzer wird Werte aus anderen XML Dokumenten hereinkopieren. Dies Formatiert die Zelle aber Standardmäßig um und entfernt die eingerichtete Datenüberprüfung.

Gibt es hier eine einfache Lösung dies zu verhindern? Ich habe es auch schon mit Excel VBA versucht (s. Quelltext) aber hier konnte ich nur die Datenüberprüfung nachdem sie entfernt wurde wieder hinzufügen. Das Problem hierbei ist, dass dem User keine Fehlermeldung angezeigt wird nachdem er den Text in die Zelle kopiert hat.

Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$A$2" Then

With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertWarning, Operator _
        :=xlBetween, Formula1:="='Zuord. Teil-Kart. Datenquelle '!$A$1:$A$6168"
        .IgnoreBlank = True
        .InCellDropdown = False
        .InputTitle = ""
        .ErrorTitle = "Teil nicht verfügbar"
        .InputMessage = ""
        .ErrorMessage = _
        "Teil nicht verfügbar, da:" & Chr(10) & "a) Teil existiert nicht" & Chr(10) & "b) Teil existiert, wird aber nicht in Kartonage verpackt --> Manuelle Frachtberechnung nötig" & Chr(10) & "c) Teil ist neu --> Rückmeldung an *** / ***"
        .ShowInput = True
        .ShowError = True
    End With
End If
Microsoft Excel, VBA
Excel VBA: Schaltfläche die je nach 1., 2., 3. Klick verschiedene Funktionen ausführt?

Hallo zusammen,

ich suche eine Lösung um eine Schaltfläche mit folgender Funktion in meinen Code zu integrieren.

  1. Klick auf schaltfläche --> Mache X
  2. Klick auf Schaltfläche --> Mache Y

wie geht das am einfachsten?

_________________________________________________________

Anbei mein Code:

Sub NeuePosHinzu()

'

' NeuePosHinzu Makro

'

'1. Klick

   Range("A1:F4").Select

   Selection.Copy

   Range("B8").Select

   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

       :=False, Transpose:=False

' Soll beim 2. Klick auf den Button ausgelöst werden

   Range("A1:F4").Select

   Selection.Copy

   Range("B14").Select

   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

       :=False, Transpose:=False

  

' Soll beim 3. Klick auf den Button ausgelöst werden

   Range("A1:F4").Select

   Selection.Copy

   Range("B20").Select

   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

       :=False, Transpose:=False

   Range("A14:G17").Select

   Application.CutCopyMode = False

   Selection.Copy

   Range("A20:G23").Select

   Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _

       SkipBlanks:=False, Transpose:=False

   Application.CutCopyMode = False

   Range("A20").Select

   ActiveCell.FormulaR1C1 = "Pos. 3"

'Soll beim 4. Klick auf den Button ausgelöst werden

   Range("A1:F4").Select

   Selection.Copy

   Range("B26").Select

   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

       :=False, Transpose:=False

   Range("A20:G23").Select

   Application.CutCopyMode = False

   Selection.Copy

   Range("A26:G29").Select

   Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _

       SkipBlanks:=False, Transpose:=False

   Application.CutCopyMode = False

   Range("A26").Select

   ActiveCell.FormulaR1C1 = "Pos. 4"

   Range("I21").Select

End Sub

Microsoft Excel, VBA
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.