Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Excel VBA Wert aus ComboBox wird nicht übernommen

Frage Microsoft Microsoft Office

Mitglied: alexander01

alexander01 (Level 1) - Jetzt verbinden

11.07.2009, aktualisiert 22:50 Uhr, 24576 Aufrufe, 9 Kommentare, 1 Danke

Hallo, ich komme hier nicht weiter

Hallo,
ich habe eine neue Mustervorlage in Excel erstellt, habe z.T. Textboxen und ComboBoxen eingefügt. Habe über den VB-Editor Code eingegeben:
Hier für ComboBox1:

Private Sub ComboBox1_DropButtonClick()
With ComboBox1
.Clear
.AddItem "Test1"
.AddItem "Test2"
.AddItem "Test3"
.AddItem "Test4"
.ListIndex = 0
End With
End Sub

Nach Neustart von Excel und Auswahl der eigenen Vorlage zum Erstellen eines neuen Arbeitsblattes werden in der ComboBox1 auf Anklicken hin die 4 Möglichkeiten angezeigt, es wird aber immer nur die erste ("Test1") in das Feld der Kombinationsbox übernommen. Ich kann durch Anklicken also nicht eine Möglichkeit ab 2. Position "auswählen" / "übernehmen".
Ich möchte aber, das in den vorhandenen ComboBoxen die jeweils gewählten Einträge auch nach Verlassen der ComboBox in dieser angezeigt werden.

Was mache ich falsch?
Mitglied: 76109
12.07.2009 um 08:16 Uhr
Hallo alexander01!

Das sollte Dir weiterhelfen

ComboBox in Tabellenblatt:
01.
DieseArbeitsmappe: 
02.
 
03.
Private Sub Workbook_Open() 
04.
   Call Init_ComboBox1 
05.
End Sub 
06.
 
07.
Private Sub Init_ComboBox1() 
08.
    Dim i As Integer 
09.
    With Worksheets("Tabelle1").ComboBox1 
10.
        .Clear 
11.
         For i = 1 To 4: .AddItem "Test" & i:  Next 
12.
        .ListIndex = 0 
13.
    End With 
14.
End Sub 
15.
 
16.
In Tabelle1: 
17.
 
18.
Private Sub ComboBox1_Change() 
19.
    Range("A1") = ComboBox1.Text  'Tue etwas mit Auswahl 
20.
End Sub
ComboBox in Formular:
01.
Private Sub UserForm_Initialize() 
02.
    Dim i As Integer 
03.
    With ComboBox1 
04.
        .Clear 
05.
         For i = 1 To 4: .AddItem "Test" & i:  Next 
06.
        .ListIndex = 0 
07.
    End With 
08.
End Sub 
09.
 
10.
Private Sub ComboBox1_Change() 
11.
    Range("A1") = ComboBox1.Text  'Tue etwas mit Auswahl 
12.
End Sub
Gruß Dieter
Bitte warten ..
Mitglied: alexander01
12.07.2009 um 09:52 Uhr
Hallo, Dieter

ich habe jetzt Zeilen 3-5 in "Diese Arbeitsmappe" eingefügt

Zeile 7-14 angepasst (die Nummerierung durch mich war nur sporadisch, es stehen dort bestimmte Ausdrücke):

01.
 
02.
Private Sub Init_ComboBox1() 
03.
With ComboBox1 
04.
    .Clear 
05.
    .AddItem "abzbhbxx" 
06.
    .AddItem "xxcsdcc" 
07.
    .AddItem "dccjc jö." 
08.
    .AddItem "sdmc cer" 
09.
    .AddItem "cccjönfkköfo" 
10.
    .AddItem "andere" 
11.
    .ListIndex = 0 
12.
End With 
13.
End Sub 
14.
 
Zeile 18-20 in das Tabellenblatt eingefügt. (ich denke, ich habe kein Formular, ich habe eine Tabelle auf meine Vorstellungen hin angepasst)

Es erscheint eine Fehlermeldung: Laufzeitfehler 424, Objekt erforderlich, der Debugger weist auf .Clear in der Privat Sub Init_ComboBox1() hin.

Gruß

Alexander
Bitte warten ..
Mitglied: alexander01
12.07.2009 um 10:01 Uhr
Halt !

ich habe einen Fehler entdeckt,

ich habe statt:
With Worksheets("Tabelle1").ComboBox1
with ComboBox1 geschrieben, nach Änderung wird jetzt der ausgewählte Text in das Feld der ComboBox übernommen!

Nun möchte ich aber, das die Textauswahl in diesem Feld durch das Abspeichern des Arbeitsblattes gespeichert wird. Dies erfolgt nicht. Es ist immer wieder der 1. Eintrag voreingestellt (sicher wegen .ListIndex = 0)

Habe ich einen Denkfehler?
ich möchte eine generelle Mustervorlage (habe ich jetzt "fertig").
Diese möchte ich starten, und nach entsprechenden Einstellungen der ComboBoxen als Arbeitsblatt x oder y oder z abspeichern. in den Feldern der ComboBoxen sollen aber nach erneutem Öffnen des Arbeitsblattes die eingestellten Texte erhalten bleiben.


Gruß
Alexander
Bitte warten ..
Mitglied: Minion
12.07.2009 um 10:54 Uhr
In Änderung Deines Quelltextes ... Initialisierung beim öffnen der Mappe...

Private Sub Workbook_Open() 
With Tabelle1.ComboBox1 
.Clear 
.AddItem "Test1" 
.AddItem "Test2" 
.AddItem "Test3" 
.AddItem "Test4" 
.ListIndex = Range("A1").Value 
End With 
End Sub
1. Hier ist das Steuerelement in 'Tabelle1'
2. Der aktivierte Listenindex wird aus der Zelle A1 ausgelesen.

Private Sub ComboBox1_Change() 
Range("A1").Value = ComboBox1.ListIndex 
End Sub
Beim Ändern des Listeneintrages wird der aktuelle in 'A1' eingetragen.

Somit steht in 'A1' immer der letzte Eintrag drinne ...

So iO?
Bitte warten ..
Mitglied: 76109
12.07.2009 um 11:26 Uhr
Hallo alexander01!

Diese Einstellungen werden nicht automatisch gespeichert.

Minion hat ja schon eine Möglichkeit angeboten.

Du könntest auch ein ganz andere Methode verwenden, indem Du ein verstecktes Tabellenblatt z.B. mit dem Namen "Init" erstellst, wo Deine Liste defininiert ist und der ListIndex gesichert wird. Klingt vielleicht kompliziert, ist es aber nicht.

1. Erstelle ein Tabellenblatt mit dem Namen "Init"
2. Schreibe Deine Liste in die Zellen z.B. Zelle A1 = Test1, A2 = Test2 usw.
3. Lasse z.B. die Zelle B1 frei, um hier die Einstellung zu speichern.
4. Wähle im VB-Editor das Tabellenblatt "Init" und stelle im Eigenschaftsfenster Visible = xlVeryHidden ein
5. Füge in Deiner ComboBox im Eigenschaftsfenster unter ListFillRange z.B. Init!A1:A10 ein

Nachdem sich die ComboBox von selbst initialisiert, brauchst Du nur noch den ListIndex beim öffnen der Arbeitsmappe mit dem Wert aus Init!B1 zu initialisieren und bei einer Auswahl in der ComboBox, wird der ListIndex immer automatisch im Tabellenblatt Init!B1 eingetragen.

Das ginge dann in etwa so:

In DieseArbeitsmappe:
01.
Private Sub Workbook_Open() 
02.
   Sheets("Tabelle1").ComboBox1.ListIndex = Sheets("Init").Range("B1") 
03.
End Sub
Im Tabellenblatt Tabelle1:
01.
Private Sub ComboBox1_Change() 
02.
   'Tue was 
03.
    Sheets("Init").Range("B1") = ComboBox1.ListIndex 
04.
End Sub
Im Tabellenblatt Init:
01.
A1 = Test1 
02.
A2 = Test2 
03.
A3 = Test3 
04.
.......... 
05.
B1 = 0
Gruß Dieter
Bitte warten ..
Mitglied: alexander01
12.07.2009 um 18:23 Uhr
Super, danke Euch beiden!

ich habe die Variante mit dem "versteckten" Tabellenblatt gewählt, da ich auf meinem "Datenblatt" keine zusätzlichen Texte haben wollte.

darf ich noch 2 Fragen stellen?

1. wenn ich im Code des Tabellenblattes "Init" "visible=xlSheetVeryHidden" wähle (es also wohl "verstecken" möchte), kommt eine Fehlermeldung. Kann der Code der anderen Tabellenseite dann nicht mehr auf den gespeicherten ListIndex zugreifen?

2. eine der ComboBoxen soll Zahlen enthalten, aber mit 1 Dezimalstelle formatiert (also z.B. 2,0). Obwohl ich die entsprechende Spalte im Tabellenblatt "Init" als Zahl mit 1 Dezimalstelle formatiert habe (und dort dann 2,0 steht), erscheint in der Combobox nach Speicherung nur "2". Wie bekomme ich eine "2,0" dahin?

Gruß und nochmals Danke

Alexander
Bitte warten ..
Mitglied: alexander01
12.07.2009 um 19:34 Uhr
Problem 1 ist gelöst, hatte wohl irgendwo einen Fehler drin.

bliebe noch Problem 2...

Alexander
Bitte warten ..
Mitglied: 76109
12.07.2009 um 20:05 Uhr
Hallo alexander01!

Punkt 1:
Dir stehen mit dem versteckten Tabellenblatt mit Ausnahme von ganzes Tabellenblatt Kopieren/Verschieben/Löschen..., sonst alle Funktionen zur Verfügung.

Punkt 2:
Du musst die Zellen als Text formatieren: "2,10", "2,00"

Gruß Dieter
Bitte warten ..
Mitglied: Minion
12.07.2009 um 20:06 Uhr
Hier mal eine Excel-Datei zum anschauen ... --> 1
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Excel VBA Wert hochzählen
gelöst Frage von Florian86Microsoft Office1 Kommentar

Hallo, ich habe im VBA Code folgendes stehen Range("E10") = Range("E10") + 1 Jetzt ist der Wert bei schon ...

VB for Applications
Excel VBA: Listbox Ausgabe über Comboboxen filtern
gelöst Frage von JuweeeVB for Applications2 Kommentare

Hallo, hat jemand zufällig ein Beispiel oder einen Link in peto, der zeigt wie die Ausgabe in einer Listbox ...

VB for Applications
Excel VBA: Mehrere Comboboxen auf UF auf Change überwachen
gelöst Frage von JuweeeVB for Applications7 Kommentare

Hallo allerseits :-) Um im Endeffekt auf einem Excel-Sheet nur ganz bestimmte Spalten anzusprechen in die dann was geschrieben ...

Microsoft Office
Excel-VBA: Alle Werte einer Spalte in einer anderen Suchen
gelöst Frage von KevinPMicrosoft Office4 Kommentare

Hallo, ich hänge jetzt schon seit Tagen dran und komm nicht zu Rande. Ich versuche jeden Wert eines Tabellenblattes ...

Neue Wissensbeiträge
DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 3 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 3 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 6 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement17 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...