Collapse column

Autor Thema: Office 2007: Hilfe!!  (Gelesen 2399 mal)

Offline MP90

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Office 2007: Hilfe!!
« 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! :'(

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline Officer

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 59.503
    • Profil anzeigen
    • Excel-Inside Solutions
  • Office-KnowHow: Profi
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2019 / Office 365
Antw:Office 2007: Hilfe!!
« Antwort #1 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]
Weitere Informationen, Tipps & Tricks findest du auf Excel-Inside.de
Bitte erfolgreich beantwortete Fragen als gelöst kennzeichnen -  zur Anleitung

Offline MP90

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw:Office 2007: Hilfe!!
« Antwort #2 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?

Offline Officer

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 59.503
    • Profil anzeigen
    • Excel-Inside Solutions
  • Office-KnowHow: Profi
  • VBA-KnowHow- : Sehr gut
  • Version [Office] : Office 2019 / Office 365
Antw:Office 2007: Hilfe!!
« Antwort #3 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]
Weitere Informationen, Tipps & Tricks findest du auf Excel-Inside.de
Bitte erfolgreich beantwortete Fragen als gelöst kennzeichnen -  zur Anleitung

Offline MP90

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Wenig
  • Version [Office] : Office 2010
Antw:Office 2007: Hilfe!!
« Antwort #4 am: März 19, 2014, 14:01:39 Nachmittag »
1000 Dank, es hat funktioniert!!!

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.