Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
156to160
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
156to160
156to160
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

An L. Vira

An L. Vira
05.09.2002 07:04:49
Gerd
Hallo L. Vira
Endschuldige bitte mein Fehler mit TextBox 11.

Habe etwas geduld mit mir, bin noch Anfänger.

Habe ein Workbook mit 20 Sheets.
Die Sheets haben den Namen der Mitarbeiter.
Jeder Sheet hat somit in B4 –B34 das Datum.
Clicke ich in der ListBox1 den Namen an wechselt der Sheet
Und wird in der TextBox angezeigt.
Auch mit dem Clickereignis in ListBox2 geklappt es jetzt.

Nur bei den TextBoxen 1-9 komme ich nicht weiter.
Ich möchte die Anfang, Endzeiten und andere Daten der
Mitarbeiter Reinschreiben.
Die dann in der Zeile wo ich das Datum angeklickt habe übergeben werden.
Wenn ich auf das Datum 10.10.2002 Clicke möchte ich die Anfangszeit in Text1 an C13 übergeben
die Endzeit in Text2 an D13 oder
das Datum 19.10.2002 Text1 an C22 Text2 an D22..

Private Sub Command2_Click()
If Not LFlag Then Exit Sub
Dim X
List1.Clear
For X = 1 To Excel.sheets.Count
List1.AddItem (Excel.sheets(X).Name)
Next X

List2.Clear
For X = 4 To 34
List2.AddItem (Excel.sheets(1).cells(X, 2))
Next X

`Habe es geändert auf List2.AddItem (Excel.cells(X, 2)) OK

Text1.Text = Excel.Range("C?").Value
Text2.Text = Excel.Range("D?").Value
Text3.Text = Excel.Range("F?").Value

Text4.Text = Excel.Range("H?").Value
Text5.Text = Excel.Range("I?").Value
Text6.Text = Excel.Range("J?").Value

Text7.Text = Excel.Range("L?").Value
Text8.Text = Excel.Range("M?").Value
Text9.Text = Excel.Range("N?").Value
Text1 = Format(Text1, "hh:nn")
Text2 = Format(Text2, "hh:nn")
Text3 = Format(Text3, "hh:nn")

Text4 = Format(Text4, "hh:nn")
Text5 = Format(Text5, "hh:nn")
Text6 = Format(Text6, "hh:nn")

Text7 = Format(Text7, "hh:nn")
Text8 = Format(Text8, "hh:nn")
Text9 = Format(Text9, "hh:nn")

End Sub

Private Sub Command3_Click()
If Not LFlag Then Exit Sub

Excel.Range("C?").Value = Text1.Text
Excel.Range("D?").Value = Text2.Text
Excel.Range("F?").Value = Text3.Text

Excel.Range("H?").Value = Text4.Text
Excel.Range("I?").Value = Text5.Text
Excel.Range("J?").Value = Text6.Text

Excel.Range("L?").Value = Text7.Text
Excel.Range("M?").Value = Text8.Text
Excel.Range("N?").Value = Text9.Text
Text1 = Format(Text1, "hh:nn")
Text2 = Format(Text2, "hh:nn")
Text3 = Format(Text3, "hh:nn")

Text4 = Format(Text4, "hh:nn")
Text5 = Format(Text5, "hh:nn")
Text6 = Format(Text6, "hh:nn")

Text7 = Format(Text7, "hh:nn")
Text8 = Format(Text8, "hh:nn")
Text9 = Format(Text9, "hh:nn")

End Sub

Private Sub List1_Click()
If List1.ListIndex > -1 Then
Text10.Text = List1.Text
Excel.sheets(List1.Text).Select
End If
End Sub

Private Sub List2_Click()
Dim Li%
Li = List2.ListIndex + 4
Text11.Text = List2.Text
Excel.sheets(1).cells(Li, 3).Select
End Sub

`Auch geändert auf Excel.cells(Li, 3).Select Ok



1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: An L. Vira
05.09.2002 08:39:15
L.Vira
Du kannst in VB die Textboxen doch locker indizieren und in einer Schleife füllen, Beispiel:

Option Explicit
Dim Excel As Object
Dim LFlag As Boolean
Dim SName As String
Private Sub Form_Load()
On Error Resume Next
Set Excel = CreateObject("Excel.Application")
If Excel Is Nothing Then
MsgBox "Excel ist nicht installiert!" & Space(10), 64, "weise hin..."
End
End If
Excel.Visible = True
End Sub
Private Sub Command1_Click()

With CommonDialog1
.Filter = ("Excel-Datei (*.xls)|*.xls;")
.InitDir = App.Path
.ShowOpen
If .FileName <> "" Then
Excel.Workbooks.Open .FileName
LFlag = True
Call fill_list
End If
End With

End Sub
Sub fill_list()

If Not LFlag Then Exit Sub

Dim x
List1.Clear
For x = 1 To Excel.sheets.Count
List1.AddItem (Excel.sheets(x).Name)
Next x
List1.ListIndex = 0

End Sub
Private Sub Command3_Click()
Unload Me
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

If LFlag Then
Excel.ActiveWorkbook.Close SAVECHANGES:=LFlag
End If
Excel.Quit
Set Excel = Nothing

End Sub
Private Sub List1_Click()
Dim x As Integer

''Kann eigentlich nicht sein, dass die Liste an dieser Stelle
''noch leer ist? Na ja, einerlei...
If List1.ListIndex > -1 Then
Excel.sheets(List1.Text).Select
End If

''Bei Blattwechsel Textboxen erstmal leeren? Ja!
For x = 0 To 2
Text1(x).Text = ""
Next

''Blattname in Variable
SName = List1.Text

List2.Clear

''Hier bleibt die Frage offen, ob in den anderen Sheets
''die einzulesenden Daten an der gleichen Position sind?
For x = 4 To 35
If Not Excel.sheets(SName).cells(x, 2) = "" Then
List2.AddItem (Excel.sheets(SName).cells(x, 2))
End If
Next

''Falls Liste nicht leer, ersten Eintrag auswählen.
If List2.ListCount > 0 Then List2.ListIndex = 0

End Sub
Private Sub List2_Click()
Dim Li%, x%
SName = List1.Text
Li = List2.ListIndex + 4

'With Excel.sheets(SName)
' Text1(0).Text = .cells(Li, 2)
' Text1(1).Text = .cells(Li, 3)
' Text1(2).Text = .cells(Li, 4)
'End With

''alternativ, bei vielen Textboxen auch als Schleife?
''Die wahrscheinlich bessere Lösung.

For x = 0 To 2 'Anzahl der Textboxen
With Excel.sheets(SName)
Text1(x).Text = .cells(Li, x + 2)
End With
Next


End Sub
Private Sub Text1_Change(Index As Integer)
''Auch hier, bei mehreren Textboxen besser als Schleife.
Text1(1).Text = Format(Text1(1).Text, "hh:mm")
Text1(2).Text = Format(Text1(2).Text, "hh:mm")
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige