ich versuche irgendwie, die untenstehenden Codes hinzubekommen, aber ohne Erfolg. Sie sollen bewirken, dass einerseits in bestimmten Tabellenblättern mit rechter Maustaste das (der?) Userform frmKontext aufgerufen, wird und in der Folge Daten aus dem Tabellenblatt "Gesamt" in das Userform eingespielt werden (Listenfeld), die in Spalte J "221C" enthalten -Spaltenbereich von A2:Q-; Dann soll der jeweils im Listenfeld markierte Datensatz (Zeile) ab der markierten Zelle im aktiven Tabellenblatt in dieses eingefügt werden. Wo liegt der Fehler? - Gibt es vielleicht noch andere Ansätze/Ideen, um das zu realisieren? - Danke schon jetzt allen für die Rückmeldung.
Gruß - Wolfgang
'**Tabellenblattcode
Private Sub Worksheet_BeforeRightClick( _
ByVal Target As Excel.Range, _
Cancel As Boolean)
Cancel = True
frmKontext.Show
End Sub
'***Code für Listenfeldbeschickung
Sub UserForm_Initialize()
Dim lngLz As Long, intColct As Integer, rngSichtbar As Range, vntArray() As Variant
With ThisWorkbook.Worksheets("Gesamt")
lngLz = .Range("A65536").End(xlUp).Row
intColct = .UsedRange.Columns.Count
.Columns("A:Q").AutoFilter Field:=10, Criteria1:="221c"
Set rngSichtbar = .Range("A2:Q" & lngLz).Cells.SpecialCells(xlCellTypeVisible)
.AutoFilterMode = False
End With
ReDim vntArray((vnt.Cells.Count / intColct), lngLz - 1)
vntArray = rngSichtbar
With frmKontext.lstKontext
.ColumnCount = intColct
.List = vntArray
.ListIndex = -1
End With
frmKontext.Show
End Sub
'**Code für Einfügen i. aktiven Tabellenblatt, ab markierte Zelle (nach rechts)
Option Explicit
Private Sub lstKontext_MouseUp( _
ByVal Button As Integer, _
ByVal Shift As Integer, _
ByVal X As Single, _
ByVal Y As Single)
Dim i As Integer
' Werte aus selektierter Listboxzeile in aktive Zelle u. rechts davon eintragen
For i = 0 To frmKontext.lstKontext.ColumnCount - 1
ActiveCell.Offset(0, i).Value = _
frmKontext.lstKontext.List(frmKontext.lstKontext.ListIndex, i)
Next
' Dialog beenden
Unload Me
End Sub