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

Wandernde Dropbox anpassen; Text in Zahl wandeln

Wandernde Dropbox anpassen; Text in Zahl wandeln
13.11.2014 14:52:13
Marcus
Hallo,
folgenden Code hat mir Rudi Mantaire zur Verfügung erstellt.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rngJahr As Range
Set rngJahr = Intersect(Range("A1"), Target)
If Not rngJahr Is Nothing Then varJahr = Range("A1").Value
ComboBox1.Visible = False
If Target.Count = 1 Then
Select Case Target.Row
Case 43 To 435
If Target.Column > 4 Then
If Cells(36, Target.Column)  "" Then
With ComboBox1
.ListFillRange = Cells(Target.Row, 3)
.LinkedCell = Target.Address
.Top = Target.Top
.Left = Target.Left
.Width = 102
.Height = 18
.Visible = True
.Object.MatchRequired = True
End With
cbrng = Target.Address
End If
End If
End Select
End If
End Sub
Er erzeugt mir eine Dropbox in der jeweils ausgewählten Zelle.
Dies funktioniert soweit.
Nun möchte ich gerne ergänzen, dass der Wert der Combobox als Zahl in die Zelle eingetragen wird.
Hier für habe ich bereits folgende Lösung gefunden:

Private Sub ComboBox1_Click()
With ComboBox1
If .ListIndex > -1 Then
Range("B1") = Clng(.Text)
End If
End With
End Sub
Hierzu war folgender Hinweis gegeben:

Du vergibst keine LinkedCell für die CB und kopierst stattdessen den folgenden Code in das Klassenmodul der entsprechenden Tabelle.
Die Adresse der Ausgabezelle musst du nartürlich anpassen.

Dies habe ich wie folgt versucht:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rngJahr As Range
Set rngJahr = Intersect(Range("A1"), Target)
If Not rngJahr Is Nothing Then varJahr = Range("A1").Value
ComboBox1.Visible = False
If Target.Count = 1 Then
Select Case Target.Row
Case 43 To 435
If Target.Column > 4 Then
If Cells(36, Target.Column)  "" Then
With ComboBox1
.ListFillRange = Cells(Target.Row, 3)
'.LinkedCell = Target.Address
.Top = Target.Top
.Left = Target.Left
.Width = 102
.Height = 18
.Visible = True
.Object.MatchRequired = True
End With
cbrng = Target.Address
End If
End If
End Select
End If
End Sub
Sub ComboBox1_Click()
With ComboBox1
If .ListIndex > -1 Then
cbrng = CLng(.Text)
End If
End With
End Sub
Die kursive Zeile wird mir hierbei als Fehler angezeigt.
Kann mir das Ganze jemand berichtigen?
Danke im Voraus.

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wandernde Dropbox anpassen; Text in Zahl wandeln
13.11.2014 15:04:28
Rudi
Hallo,
ungetestet:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rngJahr As Range
Set rngJahr = Intersect(Range("A1"), Target)
If Not rngJahr Is Nothing Then varJahr = Range("A1").Value
ComboBox1.Visible = False
If Target.Count = 1 Then
Select Case Target.Row
Case 43 To 435
If Target.Column > 4 Then
If Cells(36, Target.Column)  "" Then
With ComboBox1
.ListFillRange = Cells(Target.Row, 3)
.Top = Target.Top
.Left = Target.Left
.Width = 102
.Height = 18
.Visible = True
.MatchRequired = True
.Tag = Target.Address
End With
End If
End If
End Select
End If
End Sub
Sub ComboBox1_Click()
With ComboBox1
If .ListIndex > -1 Then
Range(.Tag) = CLng(.Text)
End If
End With
End Sub

Gruß
Rudi

Anzeige
AW: Wandernde Dropbox anpassen; Text in Zahl wandeln
13.11.2014 15:14:50
Marcus
Hallo rudi,
leider wird immernoch die selbe Stelle bemängelt.
Datei hängt mal mit dran, vielleicht liegt der Fehler ja woanders?
https://www.herber.de/bbs/user/93752.xlsm

Was für eine Zahl soll aus S oder...
13.11.2014 15:29:58
EtoPHG
...K werden, Markus.
Die Combobox enthält neben 1 und 0.5 nur Buchstaben und die können wohl kaum in eine Zahl umgewandelt werden? Also was genau willst du?
Zudem, der Vorschlag von Rudi die .Tag Eigenschaft zu verwenden würde nur mit Comboboxen auf einer UF funktionieren, ActiveX-Combobox kennt diese Eigenschaft nicht. Verwende statt .Tag die .LinkedCell Eigenschaft!
Gruess Hansueli

Anzeige
.LinkedCell
13.11.2014 15:45:04
Rudi
Hallo,
noch einfacher ist die TopLeftCell.
Gruß
Rudi

AW: Wandernde Dropbox anpassen; Text in Zahl wandeln
13.11.2014 15:43:37
Rudi
Hallo,
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rngJahr As Range
Set rngJahr = Intersect(Range("A1"), Target)
If Not rngJahr Is Nothing Then varJahr = Range("A1").Value
ComboBox1.Visible = False
If Target.Count = 1 Then
Select Case Target.Row
Case 43 To 435
If Target.Column > 4 Then
If Cells(36, Target.Column)  "" Then
With ComboBox1
.ListFillRange = Cells(Target.Row, 3)
.LinkedCell = ""
.Top = Target.Top
.Left = Target.Left
.Width = 102
.Height = 18
.Visible = True
.MatchRequired = True
End With
End If
End If
End Select
End If
End Sub
Sub ComboBox1_Click()
With ComboBox1
If .ListIndex > -1 Then
If IsNumeric(.Text) Then
.TopLeftCell = CDbl(.Text)
Else
.TopLeftCell = .Text
End If
End If
End With
End Sub Gruß
Rudi

Anzeige
AW: Wandernde Dropbox anpassen; Text in Zahl wandeln
14.11.2014 09:04:35
Marcus
Hallo Rudi,
ich weiß gar nicht, wie ich Dir genug danken könnte für die großartige Hilfe die Du mir hier bietest.
Danke, Danke, Danke
Marcus

AW: Wandernde Dropbox anpassen; Text in Zahl wandeln
14.11.2014 09:18:22
Marcus
Ich muss leider noch einmal stören, wenn ich nun in einer Zelle etwas eingebe und anschließend in die nächste Zelle wechsele, so wird der letzte Eintrag sofort angezeigt, selbst wenn dieser in der aktuellen Liste nicht vorhanden ist.
Wie kann dies vermieden werden?

AW: Wandernde Dropbox anpassen; Text in Zahl wandeln
14.11.2014 09:18:27
Marcus
Ich muss leider noch einmal stören, wenn ich nun in einer Zelle etwas eingebe und anschließend in die nächste Zelle wechsele, so wird der letzte Eintrag sofort angezeigt, selbst wenn dieser in der aktuellen Liste nicht vorhanden ist.
Wie kann dies vermieden werden?

Anzeige
AW: Wandernde Dropbox anpassen; Text in Zahl wandeln
14.11.2014 10:27:06
Rudi
Hallo,
dann setz den Listindex zurück
            With ComboBox1
.ListFillRange = Cells(Target.Row, 3)
.LinkedCell = ""
.Top = Target.Top
.Left = Target.Left
.Width = 102
.Height = 18
.Visible = True
.MatchRequired = True
.ListIndex = -1 
End With

Gruß
Rudi

335 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige