in mehrspaltige Liste markieren

03/05/2009 - 03:08 von Willy Steffen | Report spam
Guten Abend NG
Ich habe eine Frage im XL2003 mit Userforms. Ich will mir letztendlich eine
Eingabemaske erstellen und zwar durch aufrufen dbl_click mit der Maus. Zuerst
mache ich mir eine Uebersichtsliste gemàss nachfolgendem code. Die Auflistung
funktioniert gut aber ich wollte, dass automatisch die Zeile der aktiven
Zelle in der Liste marhiert wird. Die Markierung kommt, aber nicht in der
Zeile wie ich mir wünsche.Kann mir da jemand helfen, dass in der göffneten
Liste die Zeile der aktiven Zalle herstammt.
Ich danke bereits im Vorraus für alle Hifen.
MfG
Willy

Hier den Code:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
'Eingabefenster für Tabelle 1 aufrufen
Dim ZeileA As Long, ZeileE
ZeileA = Range("TitelNoAffaire").Row
ZeileE = Range("xyz").Row
'Eingabebereich definieren
If Target.Row <= ZeileA Or Target.Row >= ZeileE Then Exit Sub
'Blattschutz wird entfernt
ActiveSheet.Unprotect ("abc")
'Anzeige des Formulars Eingabe-Liste
frmEntrerDonnee.Show
End Sub

Private Sub UserForm_Initialize()
'Initialisieren des Formulars
Dim strSpaltenbreite As String, strZeilenQuelle, strTabBlattN
Dim TitelA As String, TabAdrE
'Bereich die gelistet werden soll
Worksheets(1).Activate
strTabBlattN = Sheets(1).Name
TitelA = Range("AClient").Offset(1, 0).Address(0, 0)
TabAdrE = Range("EndTerminez").Offset(-1, 0).Address(0, 0)
'Spaltenbreite definieren in cm
strSpaltenbreite = "2cm;1,5cm;2cm;2cm;2cm;2cm;1,5cm;0cm;1cm;1,5cm;0cm;1,5cm"
'Datenquelle
strZeilenQuelle = strTabBlattN & "!" & TitelA & ":" & TabAdrE
With lstUebersicht
'Anzahl Spalten
.ColumnCount = 13
'Spaltenbreite
.ColumnWidths = strSpaltenbreite
'Kopfzeile
.ColumnHeads = True
'Zeile über dem angegebenen Bereich
'wird als Kopfzeile benutzt
.RowSource = strZeilenQuelle
End With
'Blattschutz etc. aktivieren
Call Blattschutz.Blattschutz_Ja
End Sub

Private Sub lstUebersicht_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
'Aktive Zeile markieren
With lstUebersicht
.SetFocus
.Selected(ActiveCell.Row - 2) = True
End With
End Sub
 

Lesen sie die antworten

#1 Andreas Killer
03/05/2009 - 10:57 | Warnen spam
Willy Steffen schrieb:

mache ich mir eine Uebersichtsliste gemàss nachfolgendem code. Die Auflistung
funktioniert gut aber ich wollte, dass automatisch die Zeile der aktiven
Zelle in der Liste marhiert wird. Die Markierung kommt, aber nicht in der
Zeile wie ich mir wünsche.Kann mir da jemand helfen, dass in der göffneten


Nun ja, ist ein wenig ungewöhnlich wie Du das machst, aber wenn's geht
ist es okay.

Also die Sub lstUebersicht_BeforeUpdate kannst Du komplett entsorgen
und in der Sub UserForm_Initialize fügst Du diese Anweisung hinzu:

With lstUebersicht
.ListIndex = ActiveCell.Row - Range("AClient").Row
End With

Ggf. musst Du noch +/-1 dazurechnen, so genau kann ich das an Deinem
Code nicht nachvollziehen.

Andreas.

Ähnliche fragen