newbi2009 1 Geschrieben 3. Juni 2024 Melden Geschrieben 3. Juni 2024 Hallo Forum, ich versuche den Inhalt einer Spalte eines Excel-Worksheets in einer Combo-Box auszugeben. Grundsätzlich funktioniert das auch. Zumindest sind in, "$objCombobox.items" die gewünschtenNamen gespeichert. Allerdings bekomme ich in der Combo-Box selber nur 4 x "system Object[]" angezeigt. Wo liegt mein Fehler? Hier mein Code: [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") $Namen = @() $Zeile=1 $Page = "User" $objForm = New-Object System.Windows.Forms.Form $objForm.Text = "Combobox" $objForm.Size = New-Object System.Drawing.Size(300,200) $objForm.StartPosition = "CenterScreen" $objForm.KeyPreview = $True $OKButton = New-Object System.Windows.Forms.Button $OKButton.Location = New-Object System.Drawing.Size(75,120) $OKButton.Size = New-Object System.Drawing.Size(75,23) $OKButton.Text = "OK" $OKButton.Add_Click( { foreach ($objItem in $objCombobox.SelectedItem) {$global:x = $objItem $global:x} $objForm.Close() }) $objForm.Controls.Add($OKButton) $CancelButton = New-Object System.Windows.Forms.Button $CancelButton.Location = New-Object System.Drawing.Size(150,120) $CancelButton.Size = New-Object System.Drawing.Size(75,23) $CancelButton.Text = "Cancel" $CancelButton.Add_Click({$objForm.Close()}) $objForm.Controls.Add($CancelButton) $objLabel = New-Object System.Windows.Forms.Label $objLabel.Location = New-Object System.Drawing.Size(10,20) $objLabel.Size = New-Object System.Drawing.Size(280,20) $objLabel.Text = "Treffen Sie bitte eine Auswahl:" $objForm.Controls.Add($objLabel) $objCombobox = New-Object System.Windows.Forms.Combobox $objCombobox.Location = New-Object System.Drawing.Size(10,40) $objCombobox.Size = New-Object System.Drawing.Size(260,20) $objCombobox.Height = 70 $objexcel=New-Object -ComObject Excel.Application $workbook=$objexcel.WorkBooks.Open('C:\temp\Users.xlsx') $worksheet=$workbook.WorkSheets.item($Page) $objexcel.Visible= $false do { $Namen = @($worksheet.Cells.Item($Zeile,1).Text) write-host Name = $Namen [void] $objCombobox.Items.Add($Namen) $Zeile++ } while($worksheet.Cells.Item($Zeile,1).Text.Length -gt 0) $objexcel.quit() $objForm.Controls.Add($objCombobox) $objForm.Topmost = $True $objForm.Add_Shown({$objForm.Activate()}) [void] $objForm.ShowDialog() Die Excel-Tabelle sieht so aus: und die Combo-Box selber sieht so aus: vielen Dank für Eure Hilfe Holger Zitieren
newbi2009 1 Geschrieben 3. Juni 2024 Autor Melden Geschrieben 3. Juni 2024 vor 1 Stunde schrieb newbi2009: $Namen = @($worksheet.Cells.Item($Zeile,1).Text) hat sich erledigt! Ich habe hier versucht ein array und nicht einen einzelnen Wert zuzuweisen...... Zitieren
Damian 1.654 Geschrieben 3. Juni 2024 Melden Geschrieben 3. Juni 2024 Danke für die Rückmeldung. VG Damian Zitieren
BOfH_666 583 Geschrieben 3. Juni 2024 Melden Geschrieben 3. Juni 2024 vor 5 Stunden schrieb newbi2009: Hallo Forum, Bitte in Zukunft auf Crossposts hinweisen!! https://forums.powershell.org/t/excel-data-into-combo-box/24225 Board-Regel Nr. 19 https://www.mcseboard.de/terms/ 1 Zitieren
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.