Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: MP90 am März 19, 2014, 10:55:58 Vormittag

Titel: Office 2007: Hilfe!!
Beitrag von: MP90 am März 19, 2014, 10:55:58 Vormittag
Hallo zusammen,

ich komme einfach nicht weiter. Mein Problem:

In Tabellenblatt 1 befindet sich ein Formular mit einer Tabelle, bei der die erste Spalte von einer Dritten Person ausgefüllt werden muss. Bis dato durften dort nur sechstellige Zahlen (z.B. 4500000) eingegeben werden.
Jedoch gilt nun die neue Regel, dass dort jetzt nur noch siebenstellige Zahlen eingefügt werden dürfen (z.B. 9300000). Die Bedeutung der Ziffern bleibt aber diesselbe. (In diesem Fall geht es um Kostenarten, die in nächster Zeit eine andere Bezifferung erhalten).

Nun habe ich ein 2. Tabellenblatt erstellt bei der ich eine Gegenüberstellung der sechstelligen und siebenstelligen Zahlen gemacht habe.

Ich möchte jetzt, dass wenn eine Dritte Person in das Formular die sechsstellige Zahl eingibt, Excel automatisch die gleichbedeutende siebenstellige einsetzt.

Ist das möglich??? Kompliziert beschrieben, ich weiß  :)
Bitte um Hilfe! :'(
Titel: Antw:Office 2007: Hilfe!!
Beitrag von: Officer am März 19, 2014, 11:33:10 Vormittag
Hallo MP90,

deine Frage lässt sich nur mit VBA lösen. Ich habe mal ein kleines Beispiel mit folgendem VBA-Code gebaut:

Code: Visual Basic
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.  
  3. Dim varWert As Variant
  4.  
  5. Set wsein = ThisWorkbook.Sheets("Eingabe")
  6. Set wsdat = ThisWorkbook.Sheets("Daten")
  7.  
  8.  
  9. If Not Application.Intersect(Target, Range("A4:A100")) Is Nothing Then
  10.   On Error GoTo ende
  11.   varWert = WorksheetFunction.VLookup(Target.Value, wsdat.Range("A4:B100"), 2, False)
  12.  
  13.   Application.EnableEvents = False
  14.   Target.Value = varWert
  15.   Application.EnableEvents = True
  16.  
  17. End If
  18. Exit Sub
  19.  
  20. ende:
  21. If Target <> "" Then
  22.   MsgBox "In der Datenliste wurde kein Treffer gefunden!", vbCritical, "Hinweis"
  23. End If
  24.  
  25. End Sub
  26.  

Die Funktionsweise kannst du in der beigefügten Beispieldatei nachvollziehen.

Die Daten 6-stellig und 7-stellig sind auf dem Blatt "Daten" eingetragen und können jederzeit geändert werden.

Viele Grüße

Alois
[Officer]
Titel: Antw:Office 2007: Hilfe!!
Beitrag von: MP90 am März 19, 2014, 13:00:02 Nachmittag
Super  ;D vielen vielen Dank.

Aber ein Problem gibts da noch....wie muss der Code geändert werden, in das Formular direkt die siebenstellige Zahl eingegeben wird?
Titel: Antw:Office 2007: Hilfe!!
Beitrag von: Officer am März 19, 2014, 13:17:32 Nachmittag
Hallo,

für deinen Zweck kannst du den Code wie folgt anpassen:

Code: Visual Basic
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.  
  3. '** Dimensionierung der Variablen
  4. Dim varWert As Variant
  5.  
  6. '** Vorgaben definieren
  7. Set wsein = ThisWorkbook.Sheets("Eingabe")
  8. Set wsdat = ThisWorkbook.Sheets("Daten")
  9.  
  10.  
  11. '** Zellbereich festlegen, in dem die Daten ersetzt werden sollen.
  12. '** Im vorliegenden Beispiel soll dies im Bereich A4 bis A100 der Fall sein
  13. If Not Application.Intersect(Target, Range("A4:A100")) Is Nothing Then
  14.   On Error GoTo ende
  15.  
  16.   '** Auslesen des erfassten Wertes und suchen des neuen Wertes in der Ersetzungs-Tabelle
  17.  varWert = WorksheetFunction.VLookup(Target.Value, wsdat.Range("A4:B100"), 2, False)
  18.  
  19.   '** Eintragen der neuen Daten und ersetzen der Eingabe
  20.  Application.EnableEvents = False
  21.   Target.Value = varWert
  22.   Application.EnableEvents = True
  23.  
  24. End If
  25. Exit Sub
  26.  
  27. '** Errorhandling mit Ausgabe eines Hinweises, wenn kein Treffer in der Liste gefunden wurde
  28. ende:
  29. If Target <> "" And Len(Target.Value) < 7 Then
  30.   MsgBox "In der Datenliste wurde kein Treffer gefunden!", vbCritical, "Hinweis"
  31. End If
  32.  
  33. End Sub
  34.  

Damit werden dann nur Eingaben die kürzer als 6 Stellen geprüft und eine Hinweismeldung ausgegeben.

Gruß Alois
[Officer]
Titel: Antw:Office 2007: Hilfe!!
Beitrag von: MP90 am März 19, 2014, 14:01:39 Nachmittag
1000 Dank, es hat funktioniert!!!