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

ComboBoxen in einer Spalte in jeder Zeile kopieren

ComboBoxen in einer Spalte in jeder Zeile kopieren
17.12.2019 15:18:36
Tobias
Hallo Liebe Community,
ich bin auf ein Problem bei den Comboboxen gestoßen.
Ich habe eine Combobox erstellt, aus der zwischen mehreren Standorten gewählt werden kann.
Nun möchte ich diese Combobox in der gleichen Spalte in 1.000 Zeilen haben.
Wenn ich die erste Combobox aus Zelle "K2" kopiere, ändert sich allerdings nicht die Zeile unter "LinkedCell", welches ich aber für einen folgenden SVerweis benötige (dort wird auf Basis des ausgewählten Ortes dann die zugehörige Koordinate angezeigt).
Dieses Problem bezieht sich auf insgesamt 8 Spalten in meinem Dokument. Also müsste ich von Hand 8.000 Mal die LinkedCell korrigieren....
Weiß jemand Rat? Evtl. über VBA - Makro?
Ich verwende Excel Office 365
Liebe Grüße
Tobias

31
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBoxen in einer Spalte in jeder Zeile kopieren
17.12.2019 15:25:25
Hajo_Zi
Hallo Tobias,
warum nicht Daten, Gültigkeit?

AW: ComboBoxen in einer Spalte in jeder Zeile kopieren
17.12.2019 15:49:46
Tobias
Hallo Hajo,
danke für deine schnelle Antwort.
Das ist für mich leider keine Option, da ich eine lange Liste (Anzahl=115) an Standorten habe.
Bei Eingabe des ersten Buchstabens z.B. "M" soll direkt zu dem ersten Standort mit M gesprungen werden. Dies geht bei einer normalen DropDown Liste leider nicht. Deshalb Combobox.
AW: ComboBoxen in einer Spalte in jeder Zeile kopieren
17.12.2019 15:57:23
Tobias
Hallo Pierre,
danke für deine zügige Antwort!
Ich habe lange gegoogelt, leider diesen Post nicht gefunden. Danke schon mal für den Link!
Leider bin ich in VBA noch nicht so firm.
Muss ich jetzt folgenden Code verwenden? Mein Arbeitsblatt heißt "Eingabe". Dieses Makro dann einfach ausführen? Muss ich 1 to 56 dann auf 1 to 1000 ändern?
Woher weiß Excel, welche Spalten ich meine bzw. welche Combobox er vervielfältigen soll? Es sind ja insgesamt 8 verschiedene.
Option Explicit
Sub BoxenVerlinken()
Dim Zähler As Integer, Combo As Object
For Zähler = 1 To 56
Set Combo = Worksheets("Tabelle1").OLEObjects("ComboBox" & CStr(Zähler))
Tabelle1.Range("DM" & Zähler).Clear
Combo.LinkedCell = "DM" & Zähler
Next Zähler
End Sub

Tut mir leid, dass ich noch so viele Fragen habe …
Danke im Voraus und Gruß
Anzeige
AW: ComboBoxen in einer Spalte in jeder Zeile kopieren
17.12.2019 16:12:44
Tobias
Ich habe den Code ausprobiert, dabei werden die Eintragungen kopiert. Also wenn ich in einer Combobox in Zeile K3 einen Eintrag mache, taucht dieser ebenfalls in einer anderen Box auf. Das ist nicht gewünscht.
Ich möchte quasi nur die gleich Combobox in den Zellen K2-K1002 haben, wo jeweils die LinkedCell auf K2-K1002 eingestellt ist. Jede der 1.000 Boxen soll einzeln, unabhängig von den anderen, einen Standort aus der 115-Orte-Liste auswählen können.
AW: ComboBoxen in einer Spalte in jeder Zeile kopieren
17.12.2019 16:22:28
Pierre
Hm...da ich leider auch noch nicht so weit bin, dir wer weiß was für einen Code hinzuzaubern, wie manch andere, wird das etwas schwieriger.
Aber ich stelle gleich offen, damit vielleicht noch jemand anderes dabei guckt.
Jedenfalls: Was du machen könntest, wäre: Den Zähler auf jeden Fall 1 to 1000 machen, das ist korrekt.
Du siehst in der Zeile "Set Combo", dass dort in Klammern "Tabelle1" steht. Das kannst du mit deinem tatsächlichen Blattnamen austauschen.
DM ist die Spalte, die angesprochen werden soll, die änderst du zunächst mal in (was war das? K?) deine gewünschte Spalte.
Dann teste bitte mal zunächst den Code, ob er mit einer Spalte funktioniert.
Ist dies gegeben, dann könntest du doof gesagt diesen Code duplizieren (Die Sub-Bezeichnung muss allerdings anders lauten!), die Spalte abändern und den neuen Code wieder laufen lassen. Das ganze Spiel müsstest du dann natürlich machen, bis alle 8.000 Boxen eingefügt sind.
Ich gehe davon aus, dass es auch viel einfacher geht, aber das müsste wenn von jemand anderem übernommen werden.
Vielleicht testest du dennoch meinen Vorschlag mal.
Gutes Gelingen!
Gruß Pierre
Anzeige
AW: ComboBoxen in einer Spalte in jeder Zeile kopieren
17.12.2019 18:27:15
Tobias
Leider erhalte ich dort Fehlermeldungen:
Sub BoxenVerlinken()
Dim Zähler As Integer, Combo As Object
For Zähler = 1 To 1002
Set Combo = Worksheets("Eingabe").OLEObjects("ComboBox" & CStr(Zähler))
Eingabe.Range("K" & Zähler).Clear
Combo.LinkedCell = "K" & Zähler
Next Zähler
End Sub
Fehler beim Kompilieren: Variable nicht definiert
Option Explicit
Sub BoxenVerlinken()
Dim Zähler As Integer, Combo As Object
For Zähler = 1 To 1002
Set Combo = Worksheets("Tabelle1").OLEObjects("ComboBox" & CStr(Z?hler))
Tabelle1.Range("K" & Zähler).Clear
Combo.LinkedCell = "K" & Zähler
Next Zähler
End Sub
Laufzeitfehler 9 Index außerhalb gültigen Bereichs
Bei "Debuggen" zeigt er mir immer die Zeile mit "Set Combo …" in gelb an.
Meine Combobox heißt Combobox1.
Anzeige
AW: ComboBoxen in einer Spalte in jeder Zeile kopieren
18.12.2019 08:22:19
Pierre
Hi, dann nenne die im Code auch mal ComboBox1 bitte.
Im unteren Code steht Z?hler. Auch das bitte ändern ;-)
Und wie gesagt, versuche erstmal mit einer Spalte, anschließend das Makro duplizieren und den Namen unbedingt anpassen. Als Vorschlag: Das erste Makro nennst du "Sub BoxenVerlinkenK()", das zweite "Sub BoxenVerlinkenL()" usw.
Gruß Pierre
AW: ComboBoxen in einer Spalte in jeder Zeile kopieren
18.12.2019 15:18:45
Tobias
Moin,

Sub BoxenVerlinkenSpalteK()
Dim Zähler As Integer, Combo As Object
For Zähler = 2 To 1002
Set Combo = Worksheets("Tabelle1").OLEObjects("ComboBox" & CStr(Zähler))
Combo.LinkedCell = "K" & Zähler
Next Zähler
End Sub
Sowohl Combobox als auch ComboBox1 führt immer zum Laufzeitfehler mit Index im ungültigen Bereich...…
Ich verzweifel langsam :-D
Anzeige
AW: ComboBoxen in einer Spalte in jeder Zeile kopieren
18.12.2019 15:34:41
Werner
Hallo,
dann gibt es bei dir in der Mappe kein Tabellenblatt "Tabelle1".
Übrigens ein Hinweis zum MS-Office-Forum:
Ich habe versucht mir ein Makro zu schreiben,...
Meinst du nicht, dass du dich nicht mit fremden Federn schmücken solltest.
Gruß Werner
AW: ComboBoxen in einer Spalte in jeder Zeile kopieren
18.12.2019 15:54:51
Tobias
Danke für den Hinweis, das habe ich in der Eile übersehen. Ist geändert.
Mein Blatt heißt "Eingabe", damit klappt es aber auch nicht....
AW: ComboBoxen in einer Spalte in jeder Zeile kopieren
18.12.2019 16:29:01
Werner
Hallo Tobias,
funktioniert trotzdem nicht ist ziemlich hilfreich.
Der Code kann auch nicht funktionieren. Deine Schleife läuft bis 1002, du hast aber nur zwei ComboBoxen auf deinem Blatt.
Somit läuft der Code ab Zähler = 3 in einen Fehler, weil es eben die ComboBox3 nicht gibt.
Option Explicit
Sub BoxenVerlinkenSpalteK()
Dim Zähler As Integer, Combo As Object
With Worksheets("Eingabe")
For Zähler = 1 To .OLEObjects.Count
Set Combo = .OLEObjects("ComboBox" & CStr(Zähler))
Combo.LinkedCell = "K" & Zähler + 1
Next Zähler
End With
Set Combo = Nothing
End Sub
Gruß Werner
Anzeige
AW: ComboBoxen in einer Spalte in jeder Zeile kopieren
18.12.2019 17:12:12
Tobias
Danke für deine Hilfe.
Dieser Code funktioniert. Tut mir Leid, wenn ich alles nicht sofort verstanden habe.
Gerne u. Danke für die Rückmeldung. o.w.T.
18.12.2019 23:55:06
Werner
Ich danke auch für die Aufklärung, Werner! owT
19.12.2019 09:12:11
Pierre
AW: Ich danke auch für die Aufklärung, Werner! owT
19.12.2019 10:17:07
Werner
Hallo Pierre,
für welche Aufklärung denn?
Gruß Werner
AW: Ich danke auch für die Aufklärung, Werner! owT
19.12.2019 10:51:53
Pierre
Na, das "mein" Code so nicht funktionieren kann und dafür, dass du den Code richtig eingestellt hast.
AW: Ich danke auch für die Aufklärung, Werner! owT
19.12.2019 12:23:40
Werner
Hallo Pierre,
na ja, laufen würde dein Code schon, wenn der Beitragsersteller erst mal die ganzen ComboBoxen in seine Tabelle einbaut und er den Code erst dann laufen lässt - wovon ich Anfangs auch (so wie du wohl auch) ausgegangen bist.
Gruß Werner
AW: Ich danke auch für die Aufklärung, Werner! owT
19.12.2019 15:22:21
Pierre
Hallo Werner,
ich dachte schon, dass er die Boxen per Code einfügen will.
Ich habe den Code aus meinem verlinkten Thread raus genommen, weil ich das auch da so verstanden hatte. Habe den Code nur versucht anzupassen.
Dass der Code keine Boxen einfügt, habe ich mit meinen bescheidenen Fähigkeiten allerdings nicht erkannt.
Wie dem auch sei, jetzt haben wir ja eine richtige Lösung, die ich evtl. Auch selbst Mal gebrauchen kann.
Gruß Pierre
Anzeige
AW: Ich danke auch für die Aufklärung, Werner! owT
19.12.2019 15:28:47
Werner
Hallo Pierre,
wobei ich das für Quatsch halte. 8 Spalten a 1000 ComboBoxen macht 8000 ComboBoxen - wer will den so viele ComboBoxen in einem Blatt mit rum schleifen.
Hast du dir mal die Lösung von Daniel angeschaut. Eine "wandernde" ComboBox via Selection_Change.
Gruß Werner
AW: Ich danke auch für die Aufklärung, Werner! owT
19.12.2019 17:08:20
Pierre
Ja, das habe ich.
Beide Lösungen habe ich mir Mal erlaubt selbst abzuspeichern.
Okay, 8000 ist vielleicht echt etwas übertrieben, aber man weiß ja nie 😉.
Gut, dann lassen wir das Thema ins Archiv verschwinden.
Schöne Weihnachten wünsche ich!
Danke, ebenso. o.w.T.
19.12.2019 17:10:09
Werner
AW: ComboBoxen in einer Spalte in jeder Zeile kopieren
18.12.2019 15:30:25
Daniel
Hi
ich würde nicht viele tausend Comboboxen erstellen, sondern nur eine einzige aus der Gruppe der ActiveX-Controls.
dann schreibst du dir ins Selection-Change-Event des Tabellenblatts, einen Code, welcher folgendes macht:
0. Combobox ausblenden
1. prüfen, ob eine oder mehrere Zellen angeklickt wurden, bei mehreren abbruch
2. prüfen, ob eine der relevanten Spalten angeklickt wurde, wenn nein, abbruch
3. prüfen, ob die Überschriftenzeile angeklickt wurde, wenn ja, abbruch
4. verschieben der Combobox auf die angeklickte Zelle (Eigenschaften .Top und .Left)
5. anpassen der Größe (Eigenschaften .Width und .Height
6. Anpassen der Eigenschaft RowSource, entsprechend der angeklickten Spalte
7. Anpassen der Eigenschaft ControlSoure auf die Adresse der angeklickten Zelle
8. Combobox einblenden und aktivieren
damit solltest du mit einer einzigen Combobox auskommen.
Gruß Daniel
Anzeige
AW: ComboBoxen in einer Spalte in jeder Zeile kopieren
18.12.2019 15:57:24
Tobias
Hallo Daniel und danke Dir für die Antwort.
Leider bin ich nicht so firm, dass ich deine Anleitung umsetzten könnte.
Leider funktioniert der File-Upload hier auf den Server nicht.
AW: ComboBoxen in einer Spalte in jeder Zeile kopieren
18.12.2019 16:15:43
Daniel
Hi
der Code dazu sieht im Prinzip so aus.
du musst natürlich noch entsprechnend deinen Spalten und Zellbereichen diesen ergänzen
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ComboBox1.Visible = False
'--- Prüfen, ob Combobox gezeigt werden muss
If Target.Row  1 Then Exit Sub 'abbruch wenn mehrere Zellen
Select Case Target.Column
Case 2, 3, 4, 5 'hier die relevanten Spalten aufführen
Case Else
Exit Sub
End Select
'--- Combobox positionieren
ComboBox1.Top = Target.Top - 1
ComboBox1.Left = Target.Left - 1
ComboBox1.Height = Target.Height + 5
ComboBox1.Width = Target.Width + 16
'--- Zellbereiche zuf?gen
Select Case Target.Column
Case 2: ComboBox1.ListFillRange = "'Tabelle2'!A1:A10"
Case 3: ComboBox1.ListFillRange = "'Tabelle3'!B2:B14"
Case 4: ComboBox1.ListFillRange = "'Tabelle4'!B2:B14"
Case 5: ComboBox1.ListFillRange = "'Tabelle5'!B2:B14"
End Select
'--- ausgabezelle
ComboBox1.LinkedCell = Target.Address
'--- Anzeigen und Focus
ComboBox1.Visible = True
ComboBox1.Activate
End Sub
wie gesagt, Combobox1 manuell erstellen und dann über diesen Code auf die jeweilige Zelle und Spalte anpassen.
Gruß Daniel
Anzeige
AW: ComboBoxen in einer Spalte in jeder Zeile kopieren
18.12.2019 17:12:51
Tobias
Das ist dann wohl die Premium-Lösung!
Funktioniert astrein, ich danke Dir!
Und wieder einmal wurden...
18.12.2019 17:28:13
Beverly
@All,
...die Helfer in mehreren Foren in Anspruch genommen...


AW: Und wieder einmal wurden...
18.12.2019 17:29:52
Daniel
dann setz doch bitte mal die Links
Das sollte dann schon...
18.12.2019 17:46:56
Beverly
...derjenige machen, der dort gepostet hat.


wird er aber wahrscheinlich nicht
18.12.2019 20:18:07
Daniel
weil das Thema für ihn durch ist.
Gruß Daniel
der FileUpload funktioniert schon
18.12.2019 16:19:18
Daniel
wenn man lesen kann und beachtet, was dort in der Anleitung zum hochladen beschrieben wird.
Gruß Daniel

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige