Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1192to1196
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

Drop Down eingefügt - Code geht nicht mehr

Drop Down eingefügt - Code geht nicht mehr
Sascha
Hallo,
ich habe ein kleines Problem. Ich habe in meiner Tabelle in diverse Zellen Drop Downs zur Auswahl eingefügt, damit man nicht immer alles von Hand schreiben muss. Seit dem funkrioniert mein Code nicht mehr, welcher aber vorher immer funktioniert hat.
Hier ist der Code der den Zellinhalt prüft:
Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim row As Double Dim col As Double row = Target.row col = Target.Column If col = 3 Then If Tabelle1.Cells(row, 3).Value = "Moeller ESR4-NOE-31-24V AC-DC" Then Tabelle1.Cells(row, 7).Value = 0.000000013 End If End If If col = 3 Then If Tabelle1.Cells(row, 3).Value = "SIMATIC S7-300 CPU 315F-2DP" Then Tabelle1.Cells(row, 7).Value = 0.000000000543 End If If Tabelle1.Cells(row, 3).Value = "SIMATIC S7-300 CPU 317F-2DP" Then Tabelle1.Cells(row, 7).Value = 0.00000000109 End If If Tabelle1.Cells(row, 3).Value = "SIMATIC S7-300 CPU 315F-2PN/DP" Then Tabelle1.Cells(row, 7).Value = 0.00000000109 End If If Tabelle1.Cells(row, 3).Value = "SIMATIC S7-300 CPU 317F-2PN/DP" Then Tabelle1.Cells(row, 7).Value = 0.00000000109 End If If Tabelle1.Cells(row, 3).Value = "DIGITALEINGABE SM 326 24DE" Then Tabelle1.Cells(row, 7).Value = 5.7E-15 End If If Tabelle1.Cells(row, 3).Value = "DIGITALEINGABE SM 326 8DE" Then Tabelle1.Cells(row, 7).Value = 0.000000000000551 End If If Tabelle1.Cells(row, 3).Value = "DIGITALAUSGABE SM 326 10DA" Then Tabelle1.Cells(row, 7).Value = 0.0000000000796 End If If Tabelle1.Cells(row, 3).Value = "ANALOGEINGABE SM 336 6AE" Then Tabelle1.Cells(row, 7).Value = 0.000000000000566 End If End If If col = 3 Then If Tabelle1.Cells(row, 3).Value = "Moeller ESR4-NOE-31-230V AC" Then Tabelle1.Cells(row, 7) = 0.000000013 End If End If If col = 3 Then If Tabelle1.Cells(row, 3).Value = "Moeller ESR4-NOE-40-24V AC-DC" Then Tabelle1.Cells(row, 7).Value = 0.000000013 End If End If If col = 3 Then If Tabelle1.Cells(row, 3) = "Moeller ESR4-NOE-40-230V AC" Then Tabelle1.Cells(row, 7) = 0.000000013 End If End If End Sub
Die Bezeichnungen stimmen im Drop Down Auswahlfeld und im Code überein.
Gibt es da ein Problem wenn ich aus einer Zelle eine Auswahlfeld mache? Oder muss ich da etwas besonderes beachten?
LG Sascha
AW: Drop Down eingefügt - Code geht nicht mehr
29.12.2010 10:49:46
Hajo_Zi
Hallo Sascha,
ich würde für Variablennamen niemals ein Wort nhmen was einer Eigenschaft oder Befehl entspricht.
Eine Datei wäre wohl besser. Der Code wird bei auswahl ausgeführt, nicht wenn Du im DropDown Listenfeld einen Wert auswählst. Der Code kann mann einkürzen.
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim row As Double
Dim col As Double
row = Target.row
col = Target.Column
If col = 3 Then
If Tabelle1.Cells(row, 3).Value = "Moeller ESR4-NOE-31-24V AC-DC" Then
Tabelle1.Cells(row, 7).Value = 0.000000013
ElseIf Tabelle1.Cells(row, 3).Value = "SIMATIC S7-300 CPU 315F-2DP" Then
Tabelle1.Cells(row, 7).Value = 0.000000000543
ElseIf Tabelle1.Cells(row, 3).Value = "SIMATIC S7-300 CPU 317F-2DP" Then
Tabelle1.Cells(row, 7).Value = 0.00000000109
ElseIf Tabelle1.Cells(row, 3).Value = "SIMATIC S7-300 CPU 315F-2PN/DP" Then
Tabelle1.Cells(row, 7).Value = 0.00000000109
ElseIf Tabelle1.Cells(row, 3).Value = "SIMATIC S7-300 CPU 317F-2PN/DP" Then
Tabelle1.Cells(row, 7).Value = 0.00000000109
ElseIf Tabelle1.Cells(row, 3).Value = "DIGITALEINGABE SM 326 24DE" Then
Tabelle1.Cells(row, 7).Value = 5.7E-15
ElseIf Tabelle1.Cells(row, 3).Value = "DIGITALEINGABE SM 326 8DE" Then
Tabelle1.Cells(row, 7).Value = 0.000000000000551
ElseIf Tabelle1.Cells(row, 3).Value = "DIGITALAUSGABE SM 326 10DA" Then
Tabelle1.Cells(row, 7).Value = 0.0000000000796
ElseIf Tabelle1.Cells(row, 3).Value = "ANALOGEINGABE SM 336 6AE" Then
Tabelle1.Cells(row, 7).Value = 0.000000000000566
ElseIf Tabelle1.Cells(row, 3).Value = "Moeller ESR4-NOE-31-230V AC" Then
Tabelle1.Cells(row, 7) = 0.000000013
ElseIf Tabelle1.Cells(row, 3).Value = "Moeller ESR4-NOE-40-24V AC-DC" Then
Tabelle1.Cells(row, 7).Value = 0.000000013
ElseIf Tabelle1.Cells(row, 3) = "Moeller ESR4-NOE-40-230V AC" Then
Tabelle1.Cells(row, 7) = 0.000000013
End If
End If
End Sub

Anzeige
AW: Drop Down eingefügt - Code geht nicht mehr
29.12.2010 11:06:20
Sascha
Hallo Hajo,
danke für die Antwort und die Verbesserungstipps.
Sollte man also lieber aus DIM row As Double DIM xrow As Double oder soewtas machen,ja?!
Ich versteh allerdings jetzt nicht so genau was du mit "Der Code wird bei auswahl ausgeführt, nicht wenn Du im DropDown Listenfeld einen Wert auswählst. Der Code kann mann einkürzen." meinst!
Wo ist der Unterscchied zwischen einer Auswahl und einer Drop Down Auswahl?
Grüße Sascha
AW: Drop Down eingefügt - Code geht nicht mehr
29.12.2010 11:08:50
Hajo_Zi
Hallo Sascha,
auswahl ist daEreignis Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Auswahl im DropDown ist das Ereignis Private Sub Worksheet_Change(ByVal Target As Range)
Ja mit den Namen hast Du das richtig verstanden
Gruß Hajo
Anzeige
AW: falsches Ereignis ?
29.12.2010 12:06:41
Sascha
Hallo,
Ich hab jetzt nochmal alle durchgeschaut. Die Formatierungen etc. passen. Excel ingnoriert den Code scheinbar völlig....
Ich weiß grad nicht was ich noch machen soll?
Gruß
AW: falsches Ereignis ?
29.12.2010 12:17:04
Sascha
Hallo Hajo,
sry hätte ich schreiben sollen,
ja habe deinen Beitrag gelesen und das WOrt selection gelöscht!
Gruß
EnableEvents=WAHR ?
29.12.2010 12:29:23
Matthias
Hallo Sascha
schreib mal an den Anfang des Codes:
Application.EnableEvents =1
und probiers nochmal.
klappts jetzt ?
Gruß Matthias
AW: EnableEvents=WAHR ?
29.12.2010 12:33:52
Sascha
Funktioniert leider auch nicht. Das komische ist, in deinem Beispiel kann ich beide Codes verwenden und es funktioniert einfach.
Ob hier irgendwas Grundsätzliches falsch ist? Sehr komisch alles.
Wie kann ich euch die Datei zur Verfügung stellen?
AW: EnableEvents=WAHR ?
29.12.2010 13:03:11
Reinhard
Hallo Sascha,
bezogen auf die Mapepe von Matthias kannste auch den nachstehenden Code nehmen.
Setze mal oben in den Code einen Haltepunkt, dann wähle in EXcel etwas anderes aus.
Nun müßteb die Haltezeile gelb unterlegt sein, gehe ab jetzt mit F8 den Code weiter.
Wenn alles nicht hilft mußt du eine Beipielmappe hochladen wo die Codes nicht funktionieren.
Gruß
Reinhard
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zei As Long, Spa As Double, Z As Long, wks As Worksheet, Gef As Boolean
Set wks = Worksheets("Tabelle2")
If Target.Address(0, 0)  "C7" Then Exit Sub
Zei = Target.row
Spa = Target.Column
With Tabelle1
If Spa = 3 Then
For Z = 1 To wks.Cells(Rows.Count, 1).End(xlUp).row
If Application.CountIf(wks.Columns(1), Target.Value) > 0 Then
.Cells(Zei, 7).Value = Application.VLookup(Target.Value, wks.Range("A:B"), 2, 0)
Gef = True
Exit For
End If
Next Z
End If
If Gef = False Then .Cells(Zei, 7).Value = "Nicht gefunden"
End With
End Sub
'Tabelle2 muß so aussehen
'                 A                       B
'1  Moeller ESR4-NOE-31-24V AC-DC     0,000000013
'2  SIMATIC S7-300 CPU 315F-2DP       0,000000000543
'3
'4

Anzeige
https://www.herber.de/forum/file_upload.html
29.12.2010 13:06:43
Matthias
Hallo Sascha
Wie kann ich euch die Datei zur Verfügung stellen
https://www.herber.de/forum/file_upload.html
Bitte lies Dir (nach Klick auf den Link) die Ausführungen für den Upload erst durch.
Gruß Matthias
Null Probleme ...
29.12.2010 13:35:50
Matthias
Hallo
keine Probleme
Sicherheitssystem

 CDEFG
177Moeller ESR4-NOE-40-24V AC-DC 0,0000000130000
178DIGITALEINGABE SM 326 8DE 0,000000000000551
179SIMATIC S7-300 CPU 317F-2DP 0,0000000010900
180DIGITALAUSGABE SM 326 10DA 0,0000000000796

Datengültigkeit der Tabelle
ZelleZulassenDatenEingabe 1Eingabe 2
C177Liste =Liste 
C178Liste =Liste 
C179Liste =Liste 
C180Liste =Liste 
Namen in Formeln
ZelleNameBezieht sich auf
C177Liste=Tabelle1!$A$1:$A$12
C178Liste=Tabelle1!$A$1:$A$12
C179Liste=Tabelle1!$A$1:$A$12
C180Liste=Tabelle1!$A$1:$A$12
Namen verstehen


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Matthias
Anzeige
AW: https://www.herber.de/forum/file_upload.html
29.12.2010 14:01:53
Reinhard
Hallo Sascha,
in C178 und C180 klappt es doch, bei manch anderen Gültigkeitszellen ist die Liste leer! Da klappt natürlich kein Code.
Das mußt du noch abändern.
Hier habe ich meinen Code eingebaut, sodaß er in C178 und C180 funktioniert.
https://www.herber.de/bbs/user/72839.xls
Gruß
Reinhard
AW: https://www.herber.de/forum/file_upload.html
29.12.2010 14:35:50
Sascha
Hallo Reinhard, hallo Hajo, Hallo Matthias,
vielen Dank für eure tolle Hilfe und Unterstützung.
kurz zu Reinhard: also ich hatte nur in gewissen Zellen probiert, daher sind wohl einige leer geblieben. Dein Code funktioniert gut. Danke dafür.
Ich habe jetzt mal den PC neu gestartet und konnte dann nun auch entlich einen Haltepunkt setzen und alles im Einzelsatz ablaufen. Fragt mich nicht wieso aber solche Probleme habe ich immer nur an meinem Firmen PC sowie Firmen Laptop. An meinen privaten PC habe ich nie solche Sachen. Vielleivht liegt das an irgend einer Software.
Auf jeden Fall funktioniert es jetzt und darüber bin ich sehr froh. Damit kann ich meine Arbeit noch vor Jahresende beenden.
Also nochmal vieln Dank für eure Hilfe. Weiter so!
beste Grüße
Sascha
Anzeige

323 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige