AW: Hyperlink generieren
28.06.2009 10:47:43
fcs
Hallo Kai,
die Prozeduren müssen im VBA-Editor unter dem Tabellenblatt "2009" eingefügt werden.
Im Code des Userforms hast du eine nicht so besonders gute Methode gewählt, um nach dem Speichern eines Datensatzes ein leeres Formular für die nächste Eingabe zu erzeugen. Bei mehreren Datensätzen, die ohne Schließen des Formulars eingegeben werden, verschachteln sich die Makros durch den immer neuen "Show"_Befehl für das Userform immer weiter.
Was wolltest du denn mit den 2 Keys {TAB} Befehlen erreichen? Im Moment bewirken sie "nur", dass sich die selektierte Zelle beim Schließen des Formulars um eine entsprechende Zahl Zellen nach rechts bewegt.
Besser ist es zum Zurücksetzen des Formulars bewußt alle Textfelder mit Leerstrings zu füllen.
Der Code für das Userform sollte dann etwa wie folgt aussehen, wobei ich das zurücksetzen der Felder in eine separate Routine gepackt hab.
Gruß
Franz
Private Sub CommandButton1_Click()
Dim letzte_Zeile As Long
letzte_Zeile = Range("A65536").End(xlUp).Offset(1, 0).Row
Cells(letzte_Zeile, 1) = CDec(Replace(TextBox1, ".", ","))
Cells(letzte_Zeile, 4) = TextBox2
Cells(letzte_Zeile, 5) = TextBox3
Cells(letzte_Zeile, 7) = TextBox4
Cells(letzte_Zeile, 8) = TextBox5
Cells(letzte_Zeile, 9) = TextBox6
Cells(letzte_Zeile, 10) = TextBox7
Cells(letzte_Zeile, 11) = TextBox8
Cells(letzte_Zeile, 12) = TextBox9
Cells(letzte_Zeile, 13) = TextBox10
Cells(letzte_Zeile, 14) = TextBox11
Cells(letzte_Zeile, 15) = TextBox12
Cells(letzte_Zeile, 16) = TextBox13
Cells(letzte_Zeile, 18) = TextBox14
Cells(letzte_Zeile, 20) = TextBox15
Cells(letzte_Zeile, 21) = TextBox16
Cells(letzte_Zeile, 22) = TextBox17
Cells(letzte_Zeile, 25) = TextBox18
Cells(letzte_Zeile, 29) = TextBox19
Cells(letzte_Zeile, 26) = TextBox20
Cells(letzte_Zeile, 28) = TextBox21
Cells(letzte_Zeile, 17) = TextBox22
Dim wks As Worksheet, Zelle As Range
Set wks = ActiveSheet
With wks
'Zelle für Hyperlink - letzte Zeile Spalte A, Spalte AD
Set Zelle = .Cells(.Rows.Count, 1).End(xlUp).Offset(0, 29)
.Hyperlinks.Add Anchor:=Zelle, Address:="checklisten\checklisteblanko.xlt", _
TextToDisplay:="Checkliste"
End With
Call EingabefelderZuruecksetzen
Me.TextBox1.SetFocus
End Sub
Sub EingabefelderZuruecksetzen()
With Me
.TextBox1 = ""
.TextBox2 = ""
.TextBox3 = ""
.TextBox4 = ""
.TextBox5 = ""
.TextBox6 = ""
.TextBox7 = ""
.TextBox8 = ""
.TextBox9 = ""
.TextBox10 = ""
.TextBox11 = ""
.TextBox12 = ""
.TextBox13 = ""
.TextBox14 = ""
.TextBox15 = ""
.TextBox16 = ""
.TextBox17 = ""
.TextBox18 = ""
.TextBox19 = ""
.TextBox20 = ""
.TextBox21 = ""
.TextBox22 = ""
End With
End Sub
Private Sub CommandButton2_Click()
Range("A4").Select
Range("A4:A225").Select
Selection.Sort Key1:=Range("A5"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A4").Select
End Sub
Private Sub CommandButton3_Click()
Unload UserForm1
End Sub