Super, haut hin. zwei weitere Fragen!
04.02.2015 19:06:12
Tom
Hallo Martin,
funktioniert super. Das konnte ich so lösen. Ich habe noch zwei weitere Fragen, die mich nicht weiterkommen lassen.
1. ich möchte die gesamte Userform die beim öffen fixiert bleibt, mehr nach rechts positionieren, da sie mir den Eingabebereich des Formulars verdeckt. Da gibt es sicher eine einfache Möglichkeit, nur finde ich die nicht :-(
2. bei einer anderen Listbox (Adressensuche) suche ich nach Namen oder sonst was im gesamten Formular.
Eigentlich klappt das auch, doch wenn ich eine grössere Liste ins Fo. einfüge, bekomme ich Fehler. Wahrscheinlich ist mein Code etwas zu einfach zusammengebastelt.
Fehler:
Laufzeitfehler'-2147352571(80020005)':
Eigenschaft List konnte nicht gesetzt werden. Typkonflikt.
' Userform nach rechts verschieben.
Private Sub SuchenButton_Click()
Dim i As Integer
For i = 0 To lstArtikel.ListCount - 1
If Not InStr(lstArtikel.List(i), TextBox1.Text) = 0 Then
lstArtikel.Selected(i) = True
lstArtikel.TopIndex = lstArtikel.ListIndex - 0
End If
Next
End Sub
Private Sub lstArtikel_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Me.Hide
wahlindex = frmAuswahl.lstArtikel.ListIndex
ActiveCell.Value = Worksheets("Artikel").Cells(wahlindex + 2, 2).Value ' _
Artikel
ActiveCell.Offset(0, -1).Value = Worksheets("Artikel").Cells(wahlindex + 2, 1).Value ' _
Positionsnummer
ActiveCell.Offset(0, 1).Value = Worksheets("Artikel").Cells(wahlindex + 2, 3).Value ' _
Menge1
ActiveCell.Offset(0, 2).Value = Worksheets("Artikel").Cells(wahlindex + 2, 4).Value ' Sub1
ActiveCell.Offset(0, 3).Value = Worksheets("Artikel").Cells(wahlindex + 2, 5).Value ' Sub2
ActiveCell.Offset(0, 4).Value = Worksheets("Artikel").Cells(wahlindex + 2, 6).Value ' _
Menge2
ActiveCell.Offset(0, 6).Value = Worksheets("Artikel").Cells(wahlindex + 2, 8).Value ' _
Einheit
ActiveCell.Offset(0, 7).Value = Worksheets("Artikel").Cells(wahlindex + 2, 9).Value ' _
Menge3
ActiveCell.Offset(0, 8).Value = Worksheets("Artikel").Cells(wahlindex + 2, 10).Value ' _
Rabatt
ActiveCell.Offset(0, 9).Value = Worksheets("Artikel").Cells(wahlindex + 2, 11).Value ' _
Preis
ActiveCell.Offset(0, 14).Value = Worksheets("Artikel").Cells(wahlindex + 2, 11).Value ' _
Preis
Cancel = True
ActiveCell.Offset(1, 0).Select
'Unload frmAuswahl
Me.Show vbModeless
End Sub
Sub UserForm_Initialize()
j = Sheets("Artikel").Cells(Rows.Count, 2).End(xlUp).Row
lstArtikel.ColumnCount = 11
lstArtikel.ColumnWidths = "37;184;25;25;25;25;25;25;25;25;37"
lstArtikel.List = Worksheets("Artikel").Range("A2:K" & j).Value
End Sub
' bringt die genannten Fehler
Sub UserForm_Initialize()
Dim wks As Worksheet
Dim ii As Integer
Set wks = Sheets("Adressen")
With wks
For ii = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
lstAdressen.ColumnCount = 10
If Not IsEmpty(.Cells(ii, 1)) Then
lstAdressen.AddItem Cells(ii, 1).Value
lstAdressen.List(lstAdressen.ListCount - 1, 0) = .Cells(ii, 1).Value
lstAdressen.List(lstAdressen.ListCount - 1, 1) = .Cells(ii, 2).Value
lstAdressen.List(lstAdressen.ListCount - 1, 2) = .Cells(ii, 3).Value
lstAdressen.List(lstAdressen.ListCount - 1, 3) = .Cells(ii, 4).Value
lstAdressen.List(lstAdressen.ListCount - 1, 4) = .Cells(ii, 5).Value
lstAdressen.List(lstAdressen.ListCount - 1, 5) = .Cells(ii, 6).Value
lstAdressen.List(lstAdressen.ListCount - 1, 6) = .Cells(ii, 7).Value
lstAdressen.List(lstAdressen.ListCount - 1, 7) = .Cells(ii, 8).Value
lstAdressen.List(lstAdressen.ListCount - 1, 8) = .Cells(ii, 9).Value
lstAdressen.List(lstAdressen.ListCount - 1, 9) = .Cells(ii, 10).Value
End If
Next ii
End With
End Sub