Betrifft: Combobox Zeile in Array übernehmen
von: Lukas
Geschrieben am: 14.09.2019 09:08:55
Hallo
Ich wäre für Hilfe sehr dankbar. Ich habe ein mehrspaltiges Kombinationsfeld das direkt ins Tabellenblatt eingesetzt ist. Es wird mit Daten aus einem anderen Tabellenblatt befüllt. Namen Adressen Personalnummer und noch ein paar Infos insgesamt 8 Spalten. Das befüllen habe ich mit viel copy Paste hinbekommen. Nach dem jemand eine Auswahl trifft steht der Wert der ersten Spalte im Kombinationsfeld das passt auch so.
Ich würde aber jetzt gerne die Datenzeile der bereits getroffenen Auswahl durch drücken einer Taste. Aus dem Kombinationsfeld in ein Array übernehmen. Hab es so probiert:
Private Sub cmdÜbernehmen_Click() Dim auswahl auswahl = ActiveSheet.OLEObjects("cboNamePrüfen").Object.Value End Sub
Betrifft: AW: Combobox Zeile in Array übernehmen
von: 1713024.html
Geschrieben am: 14.09.2019 10:18:00
Hi Lukas,
wenn das Array immer nur einmalig benutzt werden soll dann z.B. so:
Sub ArrayNichtErweitern() Dim arrWerte() Dim intZaehler As Integer ReDim Preserve arrWerte(0 To 7) For intZaehler = 0 To 7 arrWerte(intZaehler) = _ ActiveSheet.cboNamePrüfen.List(ActiveSheet.cboNamePrüfen.ListIndex, intZaehler) Next intZaehler End Sub
Betrifft: AW: Combobox Zeile in Array übernehmen
von: 1713151.html
Geschrieben am: 15.09.2019 07:21:43
Hallo Beverly
Danke für deine Hilfe, es funktioniert. Hat schon die erste Anwendung gefunden in einem Eintragen Makro, das die Werte der Combobox in anderer Reichenfolge in eine intelligente Tabelle einträgt. Beim eintragen wird in Spalte 6 und 7 nichts eingetragen weil sich dort eine Formel befindet ich hatte eigentlich erwartet das die Tabelle die Formel selbst für die frische Zeile vervollständigt tut sie aber nicht wie könnt ich das im code erzwingen?
Und hast du eventuell irgendwelche Verbesserungsvorschläg für den Code. Ich habe nämlich keine Ahnung ob ich das gut oder schlecht umgesetzt hab.
Sub Eintragen() Dim quelle As Worksheet Dim arrWerte() Dim arrErgebnis() Dim intAktiveZ Dim intZaehler As Integer Set quelle = ActiveSheet intAktiveZ = ActiveCell.Row ReDim Preserve arrWerte(0 To 7) For intZaehler = 0 To 7 arrWerte(intZaehler) = _ ActiveSheet.cboNamePrüfen.List(ActiveSheet.cboNamePrüfen.ListIndex, intZaehler) Next intZaehler ReDim Preserve arrErgebnis(1 To 1, 1 To 10) arrErgebnis(1, 3) = arrWerte(4) arrErgebnis(1, 4) = arrWerte(2) arrErgebnis(1, 5) = arrWerte(3) 'arrErgebnis(1, 6) = Formel in Tabelle 'arrErgebnis(1, 7) = Formel in Tabelle arrErgebnis(1, 8) = arrWerte(6) arrErgebnis(1, 9) = arrWerte(7) arrErgebnis(1, 10) = CDbl(arrWerte(5)) quelle.Rows(intAktiveZ & ":" & intAktiveZ).Insert Shift:=xlDown quelle.Cells(intAktiveZ, 1).Resize(1, 10) = arrErgebnis ActiveSheet.cboNamePrüfen.Value = "" End SubGrüße und Danke
Betrifft: ComboBox-Inhalte in Tabelle übernehmen
von: 1713153.html
Geschrieben am: 15.09.2019 07:59:23
Hi Lukas,
den Umweg über ein Array bzw. sogar zwei Arrays musst du gar nicht gehen - wenn die Daten in die Tabelle eingetragnw erden sollen kannst du sie direkt aus der ComboBox nehmen. Außerdem: da sich die ComboBox im aktiven Tabellenblatt befindet und die Daten auch ins aktive Tabellenblatt übertragen werden sollen reicht im Prinzip dieser Codeaufbau
Sub Eintragen() With ActiveSheet .Rows(ActiveCell.Row).EntireRow.Insert Shift:=xlDown .Cells(ActiveCell.Row, 1) = .cboNamePrüfen.List(.cboNamePrüfen.ListIndex, 2) .Cells(ActiveCell.Row, 2) = .cboNamePrüfen.List(.cboNamePrüfen.ListIndex, 0) .Cells(ActiveCell.Row, 10) = CDbl(.cboNamePrüfen.List(.cboNamePrüfen.ListIndex, 5)) '... usw. End With End SubSpaltennummern im Tabellenblatt und Spaltennummern der ComboBox musst du natürlich entsprechend anpassen.