Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1508to1512
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Werteabgleich zwischen verschiedenen Tabellen VBA

Werteabgleich zwischen verschiedenen Tabellen VBA
10.08.2016 14:49:22
Steff
Hi zusammen :)
Ich bräuchte dringend eure Hilfe. Habe leider 0,0 Programmierkenntnisse und weiß deshalb nicht wie ich das nachfolgende Problem angehen soll bzw. ob es überhaupt so machbar ist. Habe auch online bisher nichts passendes dazu gefunden.
Ich habe eine Excel Datei mit 3 Arbeitsblättern.
Im dritten Arbeitsblatt befinden sich mehrere Datensätze. Diese beinhaltet verschiedene Modellvarianten von Autos. In der Spalte E wird zu dem jeweiligen Auto die Standard-Reifengröße in Zoll angegeben.
Im ersten Arbeitsblatt kann ich über ein ActiveX Kombinationsfeld eine Modellvariante eines Autos auswählen und es zieht alle benötigten Daten (PS, Hubraum usw.) aus der Mappe mit den Datensätzen. In dieser Mappe habe ich außerdem ein zusätzliches ActiveX Kombinationsfeld in dem ich die Größe der Reifen individuell abändern kann.
Nun soll die Reifengröße die ich manuell in Arbeitsblatt 1 eintrage, mit der Größe, die in den Datensätzen in Mappe 3 zu dem jeweiligen Modelltyp hinterlegt ist, verglichen werden.
Für den Fall, dass die manuell gewählte Reifengröße in Arbeitsblatt 1, größer als die in den Stammdaten ist, soll in Mappe 2 ein Fenster mit einem Text aufploppen, welches mit "OK" bestätigt werden muss. Für den Fall, dass die Reifengröße kleiner oder gleich ist, passiert nichts.
Ich hoffe ich habe es einigermaßen verständlich ausgedrückt und ihr könnt mir irgendwie weiterhelfen.
Vielen Dank auf jeden Fall schon mal! :)
Viele Grüße
Eine Beispieldatei, wie ich mir das ungefähr vorstelle findet ihr unter folgendem Link:
https://www.herber.de/bbs/user/107534.xlsm

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werteabgleich zwischen verschiedenen Tabellen VBA
10.08.2016 15:04:43
ChrisL
Hi Steff
Vielleicht...
Private Sub ComboBox2_Change()
If Worksheets("Stammdaten").Cells(Worksheets("Alternativen").Range("L2") + 2, 5)  _
CLng(ComboBox2) Then MsgBox "Stimmt nicht"
End Sub

cu
Chris
AW: Werteabgleich zwischen verschiedenen Tabellen VBA
10.08.2016 15:26:48
Steff
Klappt an sich schon mal super!! Danke schon mal für die schnelle HIlfe :)
Ist es auch möglich, dass es dieses Fenster nicht in Arbeitsblatt "Alternativen" anzeigt, sondern im Arbeitsblatt "Mappe 3" erscheint sobald ich dieses öffne?
Wie müsste man den Code hierfür dann abändern?
AW: Werteabgleich zwischen verschiedenen Tabellen VBA
10.08.2016 15:47:07
ChrisL
Hi Steff
Ersetzte...
Msgbox "Stimmt nicht"
... durch ...
Worksheets("Tabelle3").Select
N.b. um Verwirrungen zu vermeiden solltest du zwischen den Begriffen "Mappe" und "Tabelle" (oder "Blatt") unterscheiden. Mappe = Datei.
cu
Chris
Anzeige
AW: Werteabgleich zwischen verschiedenen Tabellen VBA
10.08.2016 16:00:37
Steff
Ich meinte natürlich "Tabelle 3", so wie sie in der Datei benannt ist und nicht Mappe. Sorry :)
Wenn ich es wie oben ersetze, öffnet es nach dem Anklicken der Reifengröße ja automatisch die Tabelle 3.
Ich glaube da habe ich mich etwas zu ungenau ausgedrückt, tut mir leid. Ich bräuchte es nämlich so, dass ich die Reifengröße unter "Alternativen" auswähle und dann erst mal nichts passiert. Erst beim manuellen Öffnen der Tabelle 3, soll eine MessageBox aufploppen, falls die gewählte Größe nicht mit der Größe in den Stammdaten übereinstimmt.
Ich hoffe das ist auch möglich, danke nochmal! :)
Anzeige
AW: Werteabgleich zwischen verschiedenen Tabellen VBA
10.08.2016 16:03:22
ChrisL
Hi Steff
Dann so...
Private Sub Worksheet_Activate()
If Worksheets("Stammdaten").Cells(Worksheets("Alternativen").Range("L2") + 2, 5)  _
CLng(ComboBox2) Then MsgBox "Stimmt nicht"
End Sub

Code muss jetzt in Tabelle3 statt in der ursprünglichen Tabelle stehen.
cu
Chris
AW: Werteabgleich zwischen verschiedenen Tabellen VBA
10.08.2016 16:08:31
Steff
Absolut perfekt! :)
Vielen Dank für deine Hilfe!!
AW: Werteabgleich zwischen verschiedenen Tabellen VBA
10.08.2016 16:14:17
Steff
Ahh leider doch nicht. Habe jetzt gesehen, dass es mir dieses Fenster immer anzeigt. Egal ob die Reifengröße größer als die in den Stammdaten ist oder nicht.
Ich brauche die aufploppende MessageBox nur wenn der gewählte Reifen größer ist. Bei einem kleineren oder gleich großen gewählten Modell soll nichts passieren
Anzeige
AW: Werteabgleich zwischen verschiedenen Tabellen VBA
10.08.2016 16:23:03
ChrisL
nicht aufgepasst, so...
Private Sub Worksheet_Activate()
If Worksheets("Stammdaten").Cells(Worksheets("Alternativen").Range("L2") + 2, 5)  _
CLng(Worksheets("Alternativen").ComboBox2) Then MsgBox "Stimmt nicht"
End Sub

AW: Werteabgleich zwischen verschiedenen Tabellen VBA
10.08.2016 16:50:32
Steff
Klappt leider immer noch nicht. Aber ich glaub ich weiß jetzt auch wo das Problem liegt.
Das Steuerelement bei der ich die Bereifung wählen kann, ist nicht mit dem verknüpft wo ich das Auto wählen kann. Es besteht quasi kein Bezug dazu. Die zur Auswahl stehenden Reifengrößen sind in L8, L9 usw. hinterlegt
Gibt es irgendeine Möglichkeit wie ich das sauber lösen kann?
Ich bräuchte quasi entweder
- eine Verknüpfung zwischen dem Steuerelement "Fahrzeug" und dem Steuerelement "Reifengröße". diese muss dann in dem Reiter Stammdaten mit dem obigen Code abprüfen ob die Daten zueinander passen
- oder ein Steuerelement, welches mir automatisch die Reifengröße des jeweiligen Models ausspuckt und für den Fall dass ich Änderungen vornehme, welche größer sind als der vorherige Wert, in Tabelle 3 ein Fenster mit dem entsprechenden Text ausspuckt.
Tut mir echt leid, dass ich es von mal zu mal komplizierter mache, aber meine Programmierkenntnisse belaufen sich wie gesagt auf Null und ich weiß nicht was möglich ist und was nicht bzw. wo ich ansetzen muss/kann
Anzeige
AW: Werteabgleich zwischen verschiedenen Tabellen VBA
10.08.2016 17:10:25
ChrisL
Hallo Steff
Jetzt hast du mich abgehängt. Ich meine der Code müsste jetzt wieder wie vorher funktionieren, nur dass das Ereignis die Aktivierung der Tabelle3 ist.
Hat sich an der Mappe etwas geändert (lade nochmals hoch)?
L2 ist noch da? Spalten unverändert?
cu
Chris
AW: Werteabgleich zwischen verschiedenen Tabellen VBA
10.08.2016 21:34:49
Steff
Sorry wollte ich nicht :)
Bin jetzt selbst drauf gekommen. Habe den Code wie folgt umgestellt und jetzt klappts :)
Danke nochmal für deine Hilfe!!! :)
Private Sub Worksheet_Activate()
If CLng(Worksheets("Alternativen").ComboBox2) > _
Worksheets("Stammdaten").Cells(Worksheets("Alternativen").Range("L2") + 2, 5) Then MsgBox " _
Stimmt nicht"
End Sub

Anzeige
AW: Werteabgleich zwischen verschiedenen Tabellen VBA
11.08.2016 16:25:19
Steff
Jetzt könntest du mir trotzdem nochmal helfen :)
Funktioniert alles astrein, nur bräuchte ich jetzt zu dem Code noch eine zusätzliche Bedingung.
Der Code sieht aktuell wie folgt aus:
Private Sub Worksheet_Activate()
If CLng(Worksheets("Alternativen").ComboBox3) > _
Worksheets("FK").Cells(Worksheets("Alternativen").Range("O4") + 2, 28) Then MsgBox "Bitte  _
beachten Sie, dass für die von Ihnen ausgewählte Reifengröße ein Reifenmehrpreis anfällt!"
End Sub
jetzt habe ich im Tabellenblatt "Alternativen" noch zwei Zusatzfunktionen hinzugefügt, wodurch zusätzliche Reifenmerkmale durch Optionsfelder mit "ja" und "nein" ausgewählt werden können.
Wenn ein Optionsfeld auf "ja" steht, soll unabhängig von der Reifengröße das gleiche passieren wie bei obigen Code bzw. dasselbe Fenster aufploppen, bei "nein" passiert nichts
Ich hoffe es ist verständlich, wenn nicht lade ich später gerne nochmal eine aktualisierte Datei hoch ;)
Anzeige
AW: Werteabgleich zwischen verschiedenen Tabellen VBA
11.08.2016 16:45:10
ChrisL
Hi Steff
Eine Beispieldatei schadet nie ;)
Vielleicht so...
Private Sub Worksheet_Activate()
If CLng(Worksheets("Alternativen").ComboBox3) > _
Worksheets("FK").Cells(Worksheets("Alternativen").Range("O4") + 2, 28) _
Or Worksheets("Alternativen").OptionButton = True Then _
MsgBox "Bitte beachten Sie, dass für die von Ihnen ausgewählte Reifengröße ein Reifenmehrpreis  _
anfällt!"
End Sub
cu
Chris
AW: Werteabgleich zwischen verschiedenen Tabellen VBA
12.08.2016 09:38:54
Steff
Habe es jetzt so gemacht. Funktioniert alles, bis auf die OR-Funktion bzgl. OptionButton3. Weiß leider nicht wo hier der Fehler liegt :-(
Private Sub Worksheet_Activate()
If CLng(Worksheets("Alternativen").ComboBox3) > _
Worksheets("FK").Cells(Worksheets("Alternativen").Range("O4") + 2, 28) _
Or Worksheets("Alternativen").OptionButton1 = True Then _
MsgBox "Bitte beachten Sie, dass für die von Ihnen ausgewählte Reifengröße ein Reifenmehrpreis  _
anfällt!"
Or Worksheets("Alternativen").OptionButton3 = True Then _
MsgBox "Bitte beachten Sie, dass für die von Ihnen ausgewählte Reifengröße ein Reifenmehrpreis  _
anfällt!"
End Sub

Anzeige
AW: Werteabgleich zwischen verschiedenen Tabellen VBA
12.08.2016 10:08:26
Steff
Wenn es zusätzlich noch möglich wäre, für alle Bedinungen für die der Text "Bitte beachten Sie, dass für die von Ihnen ausgewählte Reifengröße ein Reifenmehrpreis anfällt!" erscheint, diesen auch immer zusätzlich in der Tabelle "Alternativen" in Zelle F24 in der Farbe rot anzeigen zu lassen, wärst du mein absoluter Held und du hast endlich deine Ruhe vor mir :)
AW: Werteabgleich zwischen verschiedenen Tabellen VBA
12.08.2016 13:18:57
ChrisL
Was der Unterschied zwischen OptionButton1 und 3 ist weiss ich nicht.
Richtig:
If Bedingung Then
oder
If Bedingung Or Bedingung Then
oder
If Bedingung Or Bedingung Or Bedingung Then
Falsch:
If Bedingung Then Or Bedingung Then
Private Sub Worksheet_Activate()
With Worksheets("Alternativen")
If CLng(.ComboBox3) > Worksheets("FK").Cells(.Range("O4") + 2, 28) _
Or .OptionButton3 = True Then
MsgBox "Bitte beachten Sie... Reifenmehrpreis anfällt!"
Worksheets("Tabelle3").Range("F24") = "blabla"
Else
Worksheets("Tabelle3").Range("F24") = ""
End If
End With
End Sub

Anzeige
AW: Werteabgleich zwischen verschiedenen Tabellen VBA
12.08.2016 15:39:10
Steff
Super, hab das jetzt auf diese Weise hinbekommen
Private Sub Worksheet_Activate()
With Worksheets("Alternativen")
If CLng(.ComboBox3) > Worksheets("FK").Cells(.Range("O4") + 2, 28) _
Or .OptionButton1 = True _
Or .OptionButton3 = True Then
MsgBox ("Bitte beachten Sie, dass für die von Ihnen ausgewählte Reifengröße ein  _
Reifenmehrpreis anfällt")
Worksheets("Alternativen").Range("F24") = "Bitte beachten Sie, dass für die von Ihnen  _
ausgewählte Reifengröße ein Reifenmehrpreis anfällt!"
End If
End With
End Sub
Jetzt habe ich noch einen Code geschrieben in dem direkt im Tabellenblatt "Alternativen" für eines der Szenarien eben gleich im Feld G24 ein Text aufploppt. Dieser sieht wie folgt aus
Private Sub ComboBox3_Change()
With Worksheets("Alternativen")
If CLng(.ComboBox3) > Worksheets("Stammdaten").Cells(.Range("O4") + 2, 28) Then
Worksheets("Alternativen").Range("G24") = "Achtung Reifenmehrpreis!"
End If
End With
End Sub
Leider funktioniert dieser noch nicht optimal. Zwar erscheint der Text, wenn die Reifen größer sind, als in den Stammdaten angegeben, wenn ich meine Auswahl korrigiere und die Reifen wieder kleiner oder gleich groß sind, bleibt der Text jedoch immer noch da stehen, anstatt wieder weg zu gehen. Wie bekomme ich dass noch hin und wie muss ich den Code außerdem abändern, damit der Text in ROT und FETT erscheint?
Anzeige
AW: Werteabgleich zwischen verschiedenen Tabellen VBA
12.08.2016 16:10:35
ChrisL
Sorry Steff, aber jetzt geht mir langsam die Geduld aus...
If ... Then ... Else ... End If
Im Else setzt du den Wert zurück wie im Beispielcode
Die Farbe formatierst du direkt in der Zelle.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige