title image


Smiley Re: Wie sieht denn dein bisheriger Code zum Eintrag in Tab2 aus?
Hallo Worti!



Hier der MusterCode gefunden beim Suchen im Web:

Mein Projekt habe ich bereits um einiges mehr erweitert.





'--------------------------------------------------------------------

'VBA-Code- Beispiel für die Ansteuerung einer einfachen Maske

'Erstellt am 20.3.2005 von Manfred Quade

'ohne Gewähr für Fehlerfreiheit

'Voraussetzung:

'im Arbeitsblatt eine dreispaltige Liste mit beliebigen Spaltenüberschriften

'im Formular 3 Textboxen (Textbox1, Textbox2 und Textbox3)

'3 CommandButtons (cmd_Neu, cmd_Löschen und cmd_Schliessen sowie

'1 Scrollbar (scb_Datensatz)

'Zum Aufrufen muss die aktuelle Zelle sich in der Liste befinden

'--------------------------------------------------------------------



Dim r_Liste As Range 'Zellbereich der Liste

Dim r_Felder As Range 'Zellbereich der Spaltenüberschriften

Dim lng_Datensatz As Long 'Nummer des derzeit aktuellen Datensatzes

Dim int_AnzFelder As Integer 'Anzahl der Spaltenüberschriften

Dim int_Zähler As Integer 'Zählervariable

Dim str_Feldname As String 'Beschriftung der Spaltenüberschrift





Private Sub UserForm_Initialize()



'Es wird der um die aktive Zelle herumliegende Zellbereich übernommen

Set r_Liste = ActiveCell.CurrentRegion



'und daraus die Spaltenüberschriften

Set r_Felder = r_Liste.Rows(1)

'bzw. deren Anzahl ermittelt

int_AnzFelder = r_Felder.Columns.Count



'Wenn die Liste nicht dreispaltig ist,

'wird das ganze mit einer Warnmeldung abgebrochen

If int_AnzFelder 3 Then

Beep

MsgBox "Liste nicht gefunden. Bitte Liste markieren!"

Unload Me

Else

'Die Spaltenüberschriften werden eingelesen

For int_Zähler = 1 To int_AnzFelder

Controls("Label" & int_Zähler) = r_Felder.Cells(int_Zähler)

Next



'Der Mindestwert der Scrollbar wird auf 1 gesetzt

scb_Datensatz.Min = 1

'und dann noch der Höchstwert gesetzt

Call SetzeScrollBar



'Der Datensatzzeiger wird auf den ersten Datensatz gesetzt

lng_Datensatz = 1

'und dieser Datensatz wird angezeigt

Call ZeigeDatensatz



End If



End Sub



Sub SetzeScrollBar()



'In der Scrollbar wird der Höchstwert mit der Anzahl der Datensätze gleichgesetzt

scb_Datensatz.Max = lng_AnzDS



End Sub



Private Sub scb_Datensatz_Change()

'Wenn in der Scrollbar eine Verschiebung stattfindet,

'wird daraus die Datensatznummer ermittelt und

lng_Datensatz = scb_Datensatz

'der entsprechende Datensatz angezeigt

Call ZeigeDatensatz



End Sub



Sub ZeigeDatensatz()

Dim str_Datensatz

'Entsprechend der Anzahl der Spaltenüberschriften wird

'eine Schleife durchlaufen und

For int_Zähler = 1 To int_AnzFelder

'unter Hinzuziehung der Nummer des aktuellen Datensatzes

'der Inhalt der einzelnen Zellen des Datensatzes

'in die dafür vorgesehenen Textboxen geschrieben und

'diese Textbox als Controlsource eingerichtet

Controls("Textbox" & int_Zähler).ControlSource = r_Liste.Cells(lng_Datensatz, int_Zähler).Address

Next



'Anschliessend wird die Titelleiste der userform eingerichtet

'Standardmäßig wird die laufende Nummer des Datensatzes gezeigt

str_Datensatz = "Datensatz = " & CStr(lng_Datensatz)

'Wenn es sich um den letzten Datensatz (also um die Leerzeile) handelt,

If lng_Datensatz = lng_AnzDS Then

'in der Titelleiste Neuer Datensatz angezeigt

str_Datensatz = "Neuer Datensatz"

End If

Me.Caption = "Datenmaske " & str_Datensatz

End Sub



Private Sub cmd_Neu_Click()

'Bei Klick auf den Schalter Neu

'wird der letzte Datensatz voreingestellt,

lng_Datensatz = lng_AnzDS

'die Scrollbar entsprechend aktualisiert

Call SetzeScrollBar

'und der letzte Datensatz angezeigt

Call ZeigeDatensatz

End Sub



Private Sub cmd_Löschen_Click()

'Bei Klick auf den Schalter Löschen wird der

'Zellbereich mit dem aktuellen Datensatz gelöscht und

'der darunterliegende Zellbereich entsprechend nach oben geholt

r_Liste.Rows(lng_Datensatz).Delete shift:=xlUp

'Anschliessend wird die Scrollbar aktualisiert

Call SetzeScrollBar

End Sub



Private Sub cmd_Schliessen_Click()

'Bei Klick auf den Schalter Schliessen

'wird die Userform wieder entladen

Unload Me

End Sub



Function lng_AnzDS() As Long

'Es wird mit dem aktuellen Zellenbereich gearbeitet,

'der um eine Zeile nach unten versetzt wird

'Die letzte - leere - Zeile wird für die Aufnahme eines

'neuen Datensatzes eingesetzt

Set r_Liste = r_Liste.CurrentRegion.Offset(1)

'Anhand dieses ermittelten zellbereiches wird die aktuelle

'Anzahl der Datensätze ermittelt

lng_AnzDS = r_Liste.Rows.Count

End Function











Josef



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: