Brauchen Sie Hilfe?
Web:     Online-Formular
E-Mail:  
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
Tel:       +49(0)151 / 164 55 914

Nutzen Sie für Ihre Anfrage unser Online-Formular oder senden Sie uns eine E-Mail an Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!. Gerne können Sie aber auch direkt telefonisch Kontakt aufnehmen.

   
     Referenzen
 Bosch 
  T-Systems
  Hagebau
  Siemens
 Areva  VW
 Haufe-Lexware  British American Tobacco
  nagel group farbe
   

Daten direkt bei Eingabe ersetzen

In diesem Beispiel zeigen wir, eine Alternative Methode zur AutoKorrektur-Option um Daten direkt bei der Eingabe ersetzen zu lassen.

Sehr wir uns aber zunächst die integrierte AutoKorrektur-Option und die Damit verbundenen Einschränkungen etwas näher an. Diese Funktion wird über das Menü Datei / Dokumentenprüfung / Schaltfläche: AutoKorrektur-Optionen aufgerufen, siehe Abbildung 1.


Abb. 1

Dort können nun die Begriffe eingetragen werden, die durch einen neuen Begriff ersetzt werden sollen. Wenn Sie diese Ersetzen-Methode verwenden, werden Sie mit folgenden Beschränkungen konfrontiert:

  • Sie müssen die zu ersetzenden Begriffe nacheinander manuell in das Dialogfenster eintragen
  • Die Ersetzungen gelten in der gesamten Arbeitsmappe, auf allen Tabellenblättern
  • Die Ersetzungen gelten in allen geöffneten Excel-Dateien. Eine Beschränkung auf Bereiche oder Tabellenblätter ist nicht möglich

Und genau an dieser Stelle setzt unser Beispiel an. Dort kann genau definiert werden, in welchem Zellbereich die automatischen Ersetzungen gelten sollen. Die zu ersetzenden und neuen Begriffe werden dabei ganz einfach in einem separaten Tabellenblatt gespeichert und können wie gewohnt per Copy und Paste kopiert und ergänzt werden, siehe Abbildung 2.


Abb. 2

In dem Beispiel werden unter Anderem 6-stellige Nummern durch 7-stellige Ziffernfolgen direkt bei der Eingabe ersetzt. Wie die Liste zeigt, können aber nicht nur Zahlen sondern beliebige Zeichenfolgen und Wörter ersetzt werden.

Damit das automatisierte Ersetzen funktioniert, sind ein paar Zeilen VBA-Code notwendig.

Erfassen Sie deshalb den folgenden VBA-Code in dem Codemodul des Tabellenblattes, in dem die Eingaben ersetzt werden sollen.

Private Sub Worksheet_Change(ByVal Target As Range)

'** Dimensionierung der Variablen
Dim varWert As Variant

'** Vorgaben definieren
Set wsein = ThisWorkbook.Sheets("Eingabe")
Set wsdat = ThisWorkbook.Sheets("Daten")


'** Zellbereich festlegen, in dem die Daten ersetzt werden sollen.
'** Im vorliegenden Beispiel soll dies im Bereich A4 bis A100 der Fall sein
If Not Application.Intersect(Target, Range("A4:A100")) Is Nothing Then
  On Error GoTo ende
  
  '** Auslesen des erfassten Wertes und suchen des neuen Wertes in der Ersetzungs-Tabelle
  varWert = WorksheetFunction.VLookup(Target.Value, wsdat.Range("A4:B100"), 2, False)
  
  '** Eintragen der neuen Daten und ersetzen der Eingabe
  Application.EnableEvents = False
  Target.Value = varWert
  Application.EnableEvents = True
  
End If
Exit Sub

'** Errorhandling mit Ausgabe eines Hinweises, wenn kein Treffer in der Liste gefunden wurde
ende:

End Sub

Durch die Verwendung des Befehls Intersect wird im vorliegenden Beispiel die Gültigkeit für die automatische Ersetzung auf den Zellbereich A4:A100 beschränkt und kann natürlich beliebig geändert werden. Das bedeutet, dass sobald ein Begriff, der sich auf der Korrekturtabelle in Spalte A befindet, in dem Zellbereich A4:A100 eingetragen wird durch den neuen Begriff aus Spalte B der Korrekturtabelle ersetzt wird.

Damit steht mit dieser Lösung eine der integrierten AutoKorrektur-Option ähnliche Funktion zur Verfügung, die aber individueller an die Anforderungen angepasst werden kann.

Die Beispieldatei können Sie über den folgenden Link herunterladen.

 

   

Relevante Artikel

  • ScrollArea dauerhaft festlegen

    Als ScrollArea wird ein definierter Bereich bezeichnet, innerhalb dessen in Excel gescrollt werden kann. Die Einstellung der Eigenschaft finden Sie im VBA-Editor (Aufruf mit [Alt] + [F11])....

  • Anzahl der markierten Zeilen ermitteln

    101068 Wenn Sie wissen möchten, wieviele Zeilen gerade markiert sind, dann hilft Ihnen diesesMakro weiter. Die Anzahl der Zeilen wird in einer MsgBox ausgegeben.  Es muss nicht die gesamte Zeile...

  • Cells- zur Range-Schreibweise umwandeln

    101005   Mit dieser Funktion können Sie die die Cells-Schreibweise, z. B. Cells(1, 2) in die Range-Schreibweise z. B. Range("B1") umwandeln.   Sub umwandeln() Adresse = Cells2Range(1, 1) MsgBox Adresse End...

  • Trennen von Zellinhalten - Text in Spalten

    Dieses Beispiel zeigt, wie Zellinhalte die sich fortlaufend in einer Zelle befinden getrennt werden können. Voraussetzung ist, dass die einzelnen Elemente durch ein beliebiges Trennzeichen separiert wurden,...

  • Sortieren mit der BubbleSort Routine

    Das Thema Excel und Sortieren ist sehr vielfältig. In diesem Beitrag zeigen wir Ihnen, wie Zahlen per VBA mit Hilfe der sogenannten BubbleSort Routine sortiert werden können. Wikipedia bezeichnet...

   

Excel-Inside auf Facebook Excel-Live News blog Excel-Inside RSS-Feed Twitter Account für Excel-Inside Mail an Excel-Inside 

Programmierung
Excel Auftragsprogrammierung Access Auftragsprogrammierung
Word Auftragsprogrammierung Outlook Auftragsprogrammierung
   
Unsere Produkte
Office Schulungen VBA, Excel, Access
E-Book Formeln und Funktionen Excel 2013