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

Combobox Auswahl

Combobox Auswahl
15.12.2020 11:24:16
Walter
Guten Morgen,
ich habe folgende Zeile im Makro für die Auswahl der Namen:
Private Sub ComboBox1_DropButtonClick()
If Range("A1") = 1 Then
ActiveSheet.ComboBox1.ListFillRange = "AlleTage!I4:I20"
nun möchte ich aber noch die Spalte J also J4:J20 und dazwischen ein Komma
setzen.
So geht nicht:
ActiveSheet.ComboBox1.ListFillRange = "AlleTage!I4:I20 &"," & J4:J20"
mfg
walter

39
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Combobox Auswahl
15.12.2020 11:34:05
Werner
Hallo,
Private Sub ComboBox1_DropButtonClick()
Dim i as Long
If Range("A1") = 1 Then
ComboBox1.Clear
For i = 4 To 20
ComboBox1.AddItem Cells(i, "I") & "," & Cells(i, "J")
Next i
End If
End Sub
Gruß Werner
Bezug zur Tabelle "AlleTage" fehlt !
15.12.2020 11:42:18
Walter
Hallo Werner,
habe Fehler, der Bezug zur Tabelle fehlt.
mfg
walter
AW: Bezug zur Tabelle "AlleTage" fehlt !
15.12.2020 11:46:34
Werner
Hallo,
übersehen bzw. vergessen.
Private Sub ComboBox1_DropButtonClick()
If Range("A1") = 1 Then
ComboBox1.Clear
For i = 4 To 20
With Worksheets("AlleTage")
ComboBox1.AddItem .Cells(i, "I") & "," & .Cells(i, "J")
End With
Next i
End If
End Sub
Gruß Werner
Anzeige
Wieso Fehlermeldung...
15.12.2020 11:58:06
Walter
Hallo Werner,
Fehlermeldung: Laufzeitfehler 70 Zugriff verweigert.
Hier mein altes Makro, welches funktioniert. (Mappe Feiertage)
Private Sub aaComboBox1_DropButtonClick()
If Range("A1") = 1 Then
ActiveSheet.ComboBox1.ListFillRange = "Feiertage!I4:I23"
'  ActiveSheet.ComboBox1.ListIndex = -1
ActiveSheet.Unprotect (getStrPasswort)
ActiveSheet.Range("D5") = ActiveSheet.ComboBox1
ActiveSheet.Protect (getStrPasswort)
ElseIf Range("A1") = 2 Then
ActiveSheet.ComboBox1.ListFillRange = "Feiertage!M4:M23"
ActiveSheet.Unprotect (getStrPasswort)
ActiveSheet.Range("D5") = ActiveSheet.ComboBox1
ActiveSheet.Protect (getStrPasswort)
Else
ActiveSheet.ComboBox1.ListFillRange = ""
End If
End Sub
mfg
walter
Anzeige
AW: Wieso Fehlermeldung...
15.12.2020 12:15:21
Werner
Hallo,
und was soll ich jetzt mit deinem "alten" Makro?
Wie hast du das jetzt umgesetzt?
In welcher Codezeile tritt der Fehler auf?
Jetzt geht es wieder um ein anderes Blatt und um einen anderen Zellbereich.
Auf welchem Blatt ist deine Combobox?
Gruß Werner
AW: Wieso Fehlermeldung...
15.12.2020 12:19:31
Walter
Hallo Werner,
auf "Tabelle17" ist Combobox.
Aber nach dem alten Makro mit einer Spalte klappt es doch.
mfg
walter
AW: Wieso Fehlermeldung...
15.12.2020 12:18:53
Rudi
Hallo,
wenn du die CBox per Additem füllst, muss ListfillRange="" sein.
Private Sub ComboBox1_DropButtonClick()
If Range("A1") = 1 Then
ComboBox1.Clear
ComboBox1.ListfillRange=""
For i = 4 To 20
With Worksheets("AlleTage")
ComboBox1.AddItem .Cells(i, "I") & "," & .Cells(i, "J")
End With
Next i
End If
End Sub

Gruß
Rudi
Anzeige
AW: Wieso Fehlermeldung...
15.12.2020 12:31:38
Herbert_Grom
Hallo Rudi,
bei mir funktioniert dein Makro, aber anstatt mit "ListfillRange" mit "RowSource"! Mit "ListfillRange" meckert er!
Option Explicit
Sub ComboBox1_DropButtonClick()
Dim i%
If Range("A1") = 1 Then
ComboBox1.Clear
ComboBox1.RowSource = ""
For i = 4 To 20
With Worksheets("Tabelle1")
ComboBox1.AddItem .Cells(i, "I") & "," & .Cells(i, "J")
End With
Next i
End If
End Sub
Servus
Meckert hier
15.12.2020 12:44:29
Walter
Hallo Rudi,
meckert hier: ComboBox1.RowSource = ""
Fehler 438
mfg
walter
AW: Meckert hier
15.12.2020 13:01:42
Nepumuk
Hallo Walter,
so:
Private Sub ComboBox1_DropButtonClick()
    Dim i%
    If Range("A1") = 1 Then
        With ComboBox1
            .ListFillRange = ""
            .Clear
        End With
        With Worksheets("AlleTage")
            For i = 4 To 20
                ComboBox1.AddItem .Cells(i, 9).Text & "," & .Cells(i, 10).Text
            Next i
        End With
    End If
End Sub

Gruß
Nepumuk
Anzeige
Supi Nepumuk aber...
15.12.2020 13:26:42
Walter
Hallo Nepumuk,
ohne Fehlermeldung, Danke !
Jetzt sollte aber noch in D5 der aktiven Tabelle der
ausgewählte Wert eingesetzt werden.
Bei meinem alten Makro war es so:
ActiveSheet.Unprotect (getStrPasswort)
ActiveSheet.Range("D5") = ActiveSheet.ComboBox1
ActiveSheet.Protect (getStrPasswort)
mfg
walter
AW: Supi Nepumuk aber...
15.12.2020 13:32:13
Nepumuk
Hallo Walter,
das sollt6e doch immer noch funktionieren. Oder?
Gruß
Nepumuk
AW: Supi Nepumuk aber...
15.12.2020 13:36:18
Walter
Hallo Nepumuk,
hier dein Makro mit meiner Erweiterung wenn in A1 eine 2 steht,
alles einwandfrei:
Private Sub ComboBox1_DropButtonClick()
Dim i%
If Range("A1") = 1 Then
With ComboBox1
.ListFillRange = ""
.Clear
End With
With Worksheets("Feiertage")
For i = 4 To 20
ComboBox1.AddItem .Cells(i, 9).Text & ", " & .Cells(i, 10).Text
Next i
End With
End If
If Range("A1") = 2 Then
With ComboBox1
.ListFillRange = ""
.Clear
End With
With Worksheets("Feiertage")
For i = 4 To 20
ComboBox1.AddItem .Cells(i, 12).Text & ", " & .Cells(i, 14).Text
Next i
End With
End If
End Sub
So war es im alten Makro:
If Range("A1") = 1 Then
ActiveSheet.ComboBox1.ListFillRange = "Feiertage!I4:I23" & "Feiertage!J4: J23"
' ActiveSheet.ComboBox1.ListIndex = -1
ActiveSheet.Unprotect (getStrPasswort)
ActiveSheet.Range("D5") = ActiveSheet.ComboBox1
ActiveSheet.Protect (getStrPasswort)
ElseIf Range("A1") = 2 Then
ActiveSheet.ComboBox1.ListFillRange = "Feiertage!M4:M23"
ActiveSheet.Unprotect (getStrPasswort)
ActiveSheet.Range("D5") = ActiveSheet.ComboBox1
ActiveSheet.Protect (getStrPasswort)
Else
ActiveSheet.ComboBox1.ListFillRange = ""
End If
mfg
walter
Anzeige
AW: Supi Nepumuk aber...
15.12.2020 14:02:40
Herbert_Grom
Hallo Walter,
also bei mir funktioniert das von Nepumuk, allerdings nur mit "RowSource". Falls er mit "RowSource" bei dir meckert, dann probier es mit "ListfillRange".
Userbild
Servus
AW: Supi Nepumuk aber...
15.12.2020 14:10:36
Rudi
Hallo Herbert,
der hat ne Combobox auf nem Worksheet, nicht einem Userform.
Ergo: Listfillrange
Gruß
Rudi
AW: Supi Nepumuk aber...
15.12.2020 14:12:53
Herbert_Grom
Hallo Rudi,
oh je, da habe ich etwas nicht gecheckt! Danke! Und gesund bleiben!!! VG an H!
Servus
AW: Supi Nepumuk aber...
15.12.2020 14:11:15
Nepumuk
Hallo Herbert,
es geht um eine ComboBox in einer Tabelle.
Gruß
Nepumuk
Anzeige
AW: Supi Nepumuk aber...
15.12.2020 14:36:06
Herbert_Grom
Hallo Nepumuk,
vielen Dank, das hatte ich übersehen!
Servus
AW: Supi Nepumuk aber...
15.12.2020 14:10:08
Nepumuk
Hallo Walter,
das DropButtonClick-Event ist großer Mist. Teste mal so:
Option Explicit

Private Sub ComboBox1_Change()
    Unprotect getStrPasswort
    Range("D5") = ComboBox1.Text
    Protect getStrPasswort
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Long
    If Target.Address = "$A$1" Then
        Call ComboBox1.Clear
        Select Case Target.Value
            Case 1
                With Worksheets("Feiertage")
                    For i = 4 To 20
                        ComboBox1.AddItem .Cells(i, 9).Text & ", " & .Cells(i, 10).Text
                    Next i
                End With
            Case 2
                With Worksheets("Feiertage")
                    For i = 4 To 20
                        ComboBox1.AddItem .Cells(i, 12).Text & ", " & .Cells(i, 14).Text
                    Next i
                End With
        End Select
    End If
End Sub

Gruß
Nepumuk
Anzeige
So klappt es aber ich habe schon...
15.12.2020 14:17:10
Walter
Hallo Nepumuk,
so klappt es, ich habe allerdings schon dieses Makro.
Private Sub xxWorksheet_Change(ByVal Target As Range)
Dim RaZelle As Range
On Error GoTo errhandler
If Not Intersect(Range("D14:D44"), Target) Is Nothing Then
Application.EnableEvents = False
For Each RaZelle In Target
Select Case UCase(RaZelle)
Case "F", "U", "UU", "K"
RaZelle = UCase(RaZelle)
RaZelle.Offset(, 1).Resize(, 3).ClearContents
Case Else
End Select
Next RaZelle
Application.EnableEvents = True
End If
errhandler:
Application.EnableEvents = True
End Sub
kann man es einfach darunter einsetzen ?
mfg
walter
Anzeige
AW: So klappt es aber ich habe schon...
15.12.2020 14:27:33
Nepumuk
Hallo Walter,
so Ok?
Private Sub Worksheet_Change(ByVal Target As Range)
    
    Dim lngRow As Long
    Dim objRange As Range, objCell As Range
    
    If Target.Address = "$A$1" Then
        Call ComboBox1.Clear
        Select Case Target.Value
            Case 1
                With Worksheets("Feiertage")
                    For lngRow = 4 To 20
                        ComboBox1.AddItem .Cells(lngRow, 9).Text & ", " & .Cells(lngRow, 10).Text
                    Next lngRow
                End With
            Case 2
                With Worksheets("Feiertage")
                    For lngRow = 4 To 20
                        ComboBox1.AddItem .Cells(lngRow, 12).Text & ", " & .Cells(lngRow, 14).Text
                    Next lngRow
                End With
        End Select
    Else
        Set objRange = Intersect(Range("D14:D44"), Target)
        If Not objRange Is Nothing Then
            Application.EnableEvents = False
            For Each objCell In objRange
                Select Case UCase$(objCell.Text)
                    Case "F", "U", "UU", "K"
                        objCell.Value = UCase$(objCell.Text)
                        Call objCell.Offset(0, 1).Resize(1, 3).ClearContents
                End Select
            Next objCell
            Set objRange = Nothing
            Application.EnableEvents = True
        End If
    End If
End Sub

Gruß
Nepumuk
Anzeige
Nein klappt leider nicht
15.12.2020 14:55:57
Walter
Hallo Nepumuk,
habe so eingesetzt, aber wenn ich die Datei schließe und wieder öffne
funktioniert die Combobox nicht,
komisch...
mfg
walter
AW: Nein klappt leider nicht
15.12.2020 14:58:34
Nepumuk
Hallo Walter,
schließt du ohne speichern?
Gruß
Nepumuk
Ich schließe mit speichern
15.12.2020 15:28:29
Walter
AW: Ich schließe mit speichern
15.12.2020 15:55:00
Nepumuk
Hallo Walter,
komisch, normalerweise speichern ActiveX-Controls auf Tabellenblättern ihre Werte. Aber bei mir verliert die ComboBox auch ihre Werte. Dann so:
Im Modul "DieseArbeitsmappe":
Option Explicit

Private Sub Workbook_Open()
    Call Worksheets("Tabelle1").FillComboBox
End Sub

Im Modul der Tabelle:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim objRange As Range, objCell As Range
    If Target.Address = "$A$1" Then
        Call FillComboBox
    Else
        Set objRange = Intersect(Range("D14:D44"), Target)
        If Not objRange Is Nothing Then
            Application.EnableEvents = False
            For Each objCell In objRange
                Select Case UCase$(objCell.Text)
                    Case "F", "U", "UU", "K"
                        objCell.Value = UCase$(objCell.Text)
                        Call objCell.Offset(0, 1).Resize(1, 3).ClearContents
                End Select
            Next objCell
            Set objRange = Nothing
            Application.EnableEvents = True
        End If
    End If
End Sub

Public Sub FillComboBox()
    Dim lngRow As Long
    Call ComboBox1.Clear
    Select Case Cells(1, 1).Value
        Case 1
            With Worksheets("Feiertage")
                For lngRow = 4 To 20
                    ComboBox1.AddItem .Cells(lngRow, 9).Text & ", " & .Cells(lngRow, 10).Text
                Next lngRow
            End With
        Case 2
            With Worksheets("Feiertage")
                For lngRow = 4 To 20
                    ComboBox1.AddItem .Cells(lngRow, 12).Text & ", " & .Cells(lngRow, 14).Text
                Next lngRow
            End With
    End Select
End Sub

Gruß
Nepumuk
Kein Fehler aber
15.12.2020 16:01:48
Walter
Hallo Nepumuk,
der ausgewählte Wert wird aber nicht in D5 geschrieben.
mfg
walter
AW: Kein Fehler aber
15.12.2020 16:06:09
Nepumuk
Hallo Walter,
hast du diese Prozedur versehentlich gelöscht?
Option Explicit

Private Sub ComboBox1_Change()
    Unprotect getStrPasswort
    Range("D5").Value = ComboBox1.Text
    Protect getStrPasswort
End Sub

Im letzte Post habe ich nur die geänderten Prozeduren gezeigt.
Gruß
Nepumuk
AW: Kein Fehler aber unglaublich
15.12.2020 16:33:36
Walter
Hallo Nepumuk,
es ist doch wie verhext, alles klappte, dann gespeichert und geschlossen, NICHTS.
Auch die Großschreiberei in der Spalte D klappt nicht.
mfg
walter
AW: Kein Fehler aber unglaublich
15.12.2020 16:42:46
Walter
Hallo Nepumuk,
habe das Makro Public Sub FillComboBox()
per F8 gestartet, dann lief es aber die Spalte D Großschreiberei nicht.
gruß
walter
AW: Kein Fehler aber unglaublich
15.12.2020 16:44:59
Nepumuk
Hallo Walter,
in meiner Testmappe klappt es.
Gruß
Nepumuk
In manchen Tabellen...
15.12.2020 17:15:22
Walter
Hallo Nepumuk,
vielleicht muss ich die Datei kompl. erneuern, in einigen Tabellen
läuft es mit Spalte D und einige nicht.
Wieder gespeichert und geschlossen, wieder zeigt die Combobox nur den 1. Text
an.
Ich werde noch ...... .
mfg
walter
AW: In manchen Tabellen...
15.12.2020 17:24:03
Nepumuk
Hallo Walter,
ich habe jetzt 3 Tabellenblätter in meiner Testmappe mit identischen Code. Funktioniert einwandfrei. Ich musste nur die Prozedur in "DieseArbeitsmappe" anpassen.
Option Explicit

Private Sub Workbook_Open()
    Call Worksheets("Tabelle1").FillComboBox
    Call Worksheets("Tabelle2").FillComboBox
    Call Worksheets("Tabelle3").FillComboBox
End Sub

Gruß
Nepumuk
Deine Tabelle klappt ja auch aber..
15.12.2020 17:44:20
Walter
Hallo,
aber warum funktioniert nicht das Change Ereignis, ich habe dies reingesetzt
Call Worksheets(1).FillComboBox
da bei mir immer die 1. Tabelle die Combobox steht, in VB steht Tabelle17 (Jan 21) da sich
die Jahreszahlen ja ändern können.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RaZelle As Range
On Error GoTo errhandler
Application.EnableEvents = True
Application.Calculation = xlAutomatic
auch keine Änderung !
gruß
walter
AW: Deine Tabelle klappt ja auch aber..
15.12.2020 17:51:05
Nepumuk
Hallo Walter,
lade die Mappe mal hoch. Daten müssen keine drin sein.
Gruß
Nepumuk
AW: Deine Tabelle klappt ja auch aber..
15.12.2020 17:57:53
Walter
Hallo Nepumuk,
muss ich morgen abklären, da noch einige Firmendaten drauf sind,
melde mich.
DANKE vorerst, werde gleich mal eine neue Sheet erstellen um zusehen ob es
i.o. ist.
mfg
walter
AW: Deine Tabelle klappt ja auch aber..
16.12.2020 08:56:32
Hajo_Zi
Halo Walter,
offen bedeutet es soll noch eine Antwort kommen.
Warum ist dein Beitrag Offen.
Du willst doch was machen. Soll jemand vorbei kommen?
Das ist nur meine Meinung zu dem Thema.

Hallo --))
16.12.2020 13:55:28
Walter
Hallo Nepumuk,
habe Datei neu erstellt, klappt einwandfrei und nochmals
danke für die GEDULD !
mfg
walter
SUPER Danke !!! -)
15.12.2020 14:19:58
Walter
Hallo Nepumuk,
habe ich an den Schluss kopiert, einwandfrei !
Danke für die Geduld !!!
mfg
walter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige