Jump to content

Inhalt aus Excel in Combo-Box


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

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:

image.png.442c1709ac949a12c549757d9411ce1e.png

 

und die Combo-Box selber sieht so aus:

 

image.png.d27987033745c71640c715713960a3e6.png

 

vielen Dank für Eure Hilfe

Holger

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...