Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1180to1184
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
Inhaltsverzeichnis

Zelleintrag in UF

Zelleintrag in UF
Heinz
Hallo Leute
Wie kann ich einer UF wenn zB. in der Combobox4 311 steht den Wert von TextBox14 in Sheets "Schichtliste" E10 eintragen.
311 kann aber auch in der Combobox7 stehen,dann sollte der Wert von TextBox14 in Sheets "Schichtliste" E10 eintragen werden.
Es geht darum wenn in der Combobox 311 ausgewählt wurde, würde der Wert der Textbox in Sheets "Schichtliste" E10 eingetragen gehören.
Im unteren Code sind die fixen Combo.bzw.Textboxen zugeordnet.
Nur jetzt können die Werte in verschiedene Comboboxen stehen. Private Sub CommandButton1_Click() Application.ScreenUpdating = False Unload Me With Sheets("Schichtliste") .Unprotect Password:="test" .Range("Q5") = ComboBox1 'Datum .Range("U5") = ComboBox2 'Schicht .Range("F7") = ComboBox21 'Schichtmeister .Range("F32") = TextBox15 'Schrumpfer .Range("E27") = TextBox17 'QS .Range("K5") = TextBox3 'Vorarbeiter .Range("A1").Copy .Range("A1").PasteSpecial xlPasteFormats Sheets("Schichtliste").Select Application.CutCopyMode = False End With End Sub Hätte bitte jemand ein Beispiel für mich ?
Gruß
Heinz

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zelleintrag in UF
20.10.2010 07:07:59
fcs
Hallo Heinz,
das sollte mit einer einfachen If-Bedingung möglich sein in der die verschiedenen Comboboxen per ODER-Logik verknüpft werden.
Gruß
Franz
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Unload Me
With Sheets("Schichtliste")
.Unprotect Password:="test"
If ComboBox4 = "311" Or Combobox7 = "311" Then
.Range("E10") = TextBox14
Else
.Range("E10").ClearContents  '?
End If
.Range("Q5") = ComboBox1 'Datum
.Range("U5") = ComboBox2 'Schicht
.Range("F7") = ComboBox21 'Schichtmeister
.Range("F32") = TextBox15 'Schrumpfer
.Range("E27") = TextBox17 'QS
.Range("K5") = TextBox3 'Vorarbeiter
.Range("A1").Copy
.Range("A1").PasteSpecial xlPasteFormats
Sheets("Schichtliste").Select
Application.CutCopyMode = False
End With
End Sub

Anzeige
AW: Zelleintrag in UF
20.10.2010 14:15:59
Heinz
Hallo Franz
Erstmals Danke. Das hilft mir schon ein wenig weiter.
Nur wenn ComboBox5 = "L:311+P:" dann TextBox4 (.Range("E10")
Nur wenn ComboBox7 = "L:311+P:" dann TextBox6 (.Range("E10")
usw...
Habe mal eine Beispiel Datei angehängt.
Code steht in UF2 ganz unten.
Wähle bitte den Butten "Schicht Personal" in A1
In der UF wähle bitte eine Schicht aus 1,2, oder 3
Wähle in den Comboboxen "L:311+P:" aus.
Dann auf den Button "Eintragen"
Danke Heinz
https://www.herber.de/bbs/user/71986.zip
    If ComboBox5 = "L:311+P:" Or ComboBox7 = "L:311+P:" Then
.Range("E10") = TextBox4

Anzeige
AW: Zelleintrag in UF
20.10.2010 18:27:51
Heinz
Hallo Franz
Habe jetzt die Werte in der UF eingetragen. Könnte man den Code aber nicht verkürzen ?
Der ist ja elendslang.
Danke Heinz
https://www.herber.de/bbs/user/71989.zip
AW: Zelleintrag in UF
21.10.2010 07:39:55
fcs
Hallo Heinz,
das war jetzt nicht ganz trivial.
Die von Textbox (name), Combobox (Tätigkeit) und die Spalte in die der Name eingetragen werden soll werden an eine Sub-Routine übergeben.
Abhängig von der Tätigkeit wird dann der Name in die entsprechende Zeile/Spalte eingetragen.
Gruß
Franz
Private Sub CommandButton1_Click()
Dim ZeileReserve As Long, iIndex As Long
Application.ScreenUpdating = False
Me.Hide
With Sheets("Schichtliste")
.Unprotect Password:="test"
ZeileReserve = 20 'Zeilenzähler für Reserve-Personal
.Range("Q5") = ComboBox1 'Datum
.Range("U5") = ComboBox2 'Schicht
.Range("F7") = ComboBox21 'Schichtmeister
.Range("F32") = TextBox15 'Schrumpfer
.Range("E27") = TextBox17 'QS
.Range("K5") = TextBox3 'Vorarbeiter
'Ausfüllbereiche leeren
.Range("E10:G19").ClearContents
.Range("C21:C25").ClearContents
.Range("E28:G28").ClearContents
.Range("F33:G33").ClearContents
'Sortierer 1 bis 10
For iIndex = 1 To 10
Call subPersonal(sName:=Me.Controls("TextBox" & 3 + iIndex).Value, _
sTaetigkeit:=Me.Controls("ComboBox" & 4 + iIndex).Value, _
lSpalte:=5, lZeile:=ZeileReserve)
Call subPersonal(sName:=Me.Controls("TextBox" & 24 + iIndex).Value, _
sTaetigkeit:=Me.Controls("ComboBox" & 4 + iIndex).Value, _
lSpalte:=7, lZeile:=ZeileReserve)
Next
'Anlerner 1
Call subPersonal(sName:=TextBox18, sTaetigkeit:=ComboBox15, lZeile:=ZeileReserve)
'Anlerner 2
Call subPersonal(sName:=TextBox19, sTaetigkeit:=ComboBox16, lZeile:=ZeileReserve)
'Ferialarbeiter 1 bis 3
For iIndex = 1 To 3
Call subPersonal(sName:=Me.Controls("TextBox" & 19 + iIndex).Value, _
sTaetigkeit:=Me.Controls("ComboBox" & 16 + iIndex).Value, _
lSpalte:=5, lZeile:=ZeileReserve)
Call subPersonal(sName:=Me.Controls("TextBox" & 40 + iIndex).Value, _
sTaetigkeit:=Me.Controls("ComboBox" & 16 + iIndex).Value, _
lSpalte:=7, lZeile:=ZeileReserve)
Next
Unload Me
.Range("A1").Copy
.Range("A1").PasteSpecial xlPasteFormats
Sheets("Schichtliste").Select
Application.CutCopyMode = False
End With
End Sub
Private Sub subPersonal(sName As String, sTaetigkeit As String, _
Optional lSpalte As Long, Optional lZeile As Long)
If sName = "" Or sTaetigkeit = "" Then Exit Sub
With Sheets("Schichtliste")
Select Case sTaetigkeit
Case "L:311+P:":        .Cells(10, lSpalte) = sName
Case "L:312+P:":        .Cells(11, lSpalte) = sName
Case "L:321+P:+322+P:": .Cells(12, lSpalte) = sName
Case "L:321+P:":        .Cells(13, lSpalte) = sName
Case "L:322+P":         .Cells(14, lSpalte) = sName
Case "L:331+P:+332+P:": .Cells(15, lSpalte) = sName
Case "L:331+P:":        .Cells(16, lSpalte) = sName
Case "L:332+P:+333+P:": .Cells(17, lSpalte) = sName
Case "L:332+P:":        .Cells(18, lSpalte) = sName
Case "L:333+P:":        .Cells(19, lSpalte) = sName
Case "Reserve:"
lZeile = lZeile + 1
.Cells(lZeile, 3) = sName
Case ""
'do nothing
Case "QS Anlernen":         .Cells(28, 5) = sName
Case "Schrumpfer Anlernen": .Cells(33, 6) = sName
Case Else
MsgBox "Für die Auswahl """ & sTaetigkeit _
& """ Fehlt noch eine Case-Zeile im Makro"
End Select
End With
End Sub

Anzeige
AW: Zelleintrag in UF
21.10.2010 10:47:41
Heinz
Hallo Franz
Das funkt. ja S U P E R !!
Recht herzlichen Dank.
Ein Problem das eventuell auftreten könnte,ist:
Wenn 2 Personnen zur gleichen Zeit auf der selben Maschine arbeiten.
Dann würde der eintrag in Spalte G gehören.
Sinngemäß: Wenn E10>""; G10
Hättest du bitte dazu auch noch eine Lösung ?
Ich bedanke mich aber jetzt schon für Deine Super arbeit,und die Zeit die du für mich investiert hast.
Gruß
Heinz
Schichtliste

 CDEFGH
10L:311+P: Herbert Sascha 
11L:312+P: Josef Uwe 
12L:321+P:+322+P: Joe Franz 
13L:321+P: Horst Günter 
14L:322+P: Gerhard Ferdinand 
15L:331+P:+332+P: Peter Anette 
16L:331+P: Werner Silvia 
17L:332+P:+333+P: Robert Sandra 
18L:332+P: Heinz Karin 
19L:333+P: Maria Christine 


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4

Anzeige
AW: Zelleintrag in UF
22.10.2010 07:34:52
fcs
Hallo Heinz,
hier die Anpassung, die ggf. einen 2. Namen bei einer Maschine einträgt. Bei Zuordnung von mehr als 2 Namen zu einer Maschine wird das Formular zur Korrektur wieder angezeigt.
Gruß
Franz
Private Sub CommandButton1_Click()
Dim ZeileReserve As Long, iIndex As Long
Application.ScreenUpdating = False
Me.Hide
With Sheets("Schichtliste")
.Unprotect Password:="test"
ZeileReserve = 20 'Zeilenzähler für Reserve-Personal
.Range("Q5") = ComboBox1 'Datum
.Range("U5") = ComboBox2 'Schicht
.Range("F7") = ComboBox21 'Schichtmeister
.Range("F32") = TextBox15 'Schrumpfer
.Range("E27") = TextBox17 'QS
.Range("K5") = TextBox3 'Vorarbeiter
'Ausfüllbereiche leeren
.Range("E10:G19").ClearContents
.Range("C21:C25").ClearContents
.Range("E28:G28").ClearContents
.Range("F33:G33").ClearContents
'Sortierer 1 bis 10
For iIndex = 1 To 10
If fncPersonal(sName:=Me.Controls("TextBox" & 3 + iIndex).Value, _
sTaetigkeit:=Me.Controls("ComboBox" & 4 + iIndex).Value, _
lZeile:=ZeileReserve) = True Then Me.Show: Exit Sub
Next
'Anlerner 1
Call fncPersonal(sName:=TextBox18, sTaetigkeit:=ComboBox15, lZeile:=ZeileReserve)
'Anlerner 2
Call fncPersonal(sName:=TextBox19, sTaetigkeit:=ComboBox16, lZeile:=ZeileReserve)
'Ferialarbeiter 1 bis 3
For iIndex = 1 To 3
If fncPersonal(sName:=Me.Controls("TextBox" & 19 + iIndex).Value, _
sTaetigkeit:=Me.Controls("ComboBox" & 16 + iIndex).Value, _
lZeile:=ZeileReserve) = True Then Me.Show: Exit Sub
Next
Unload Me
.Range("A1").Copy
.Range("A1").PasteSpecial xlPasteFormats
Sheets("Schichtliste").Select
Application.CutCopyMode = False
End With
End Sub
Private Function fncPersonal(sName As String, sTaetigkeit As String, _
Optional lZeile As Long) As Boolean
If sName = "" Or sTaetigkeit = "" Then Exit Function
With Sheets("Schichtliste")
Select Case sTaetigkeit
Case "L:311+P:":        fncPersonal = Eintragen(Zeile:=10, sText:=sName)
Case "L:312+P:":        fncPersonal = Eintragen(Zeile:=11, sText:=sName)
Case "L:321+P:+322+P:": fncPersonal = Eintragen(Zeile:=12, sText:=sName)
Case "L:321+P:":        fncPersonal = Eintragen(Zeile:=13, sText:=sName)
Case "L:322+P":         fncPersonal = Eintragen(Zeile:=14, sText:=sName)
Case "L:331+P:+332+P:": fncPersonal = Eintragen(Zeile:=15, sText:=sName)
Case "L:331+P:":        fncPersonal = Eintragen(Zeile:=16, sText:=sName)
Case "L:332+333+P:":    fncPersonal = Eintragen(Zeile:=17, sText:=sName)
Case "L:332+P:":        fncPersonal = Eintragen(Zeile:=18, sText:=sName)
Case "L:333+P:":        fncPersonal = Eintragen(Zeile:=19, sText:=sName)
Case "Reserve:"
lZeile = lZeile + 1
.Cells(lZeile, 3) = sName
Case ""
'do nothing
Case "QS Anlernen":         .Cells(28, 5) = sName
Case "Schrumpfer Anlernen": .Cells(33, 6) = sName
Case Else
MsgBox "Für die Auswahl """ & sTaetigkeit _
& """ Fehlt noch eine Case-Zeile im Makro"
End Select
End With
End Function
Function Eintragen(ByVal Zeile As Long, ByVal sText As String) As Boolean
'Name Eintragen für Maschine in Spalte E oder G
Dim lSpalte As Long
lSpalte = 5
With Sheets("Schichtliste")
If .Cells(Zeile, lSpalte) = "" Then '1. Name für Maschine
.Cells(Zeile, lSpalte) = sText
ElseIf .Cells(Zeile, lSpalte + 2) = "" Then '2. Name für Maschine
.Cells(Zeile, lSpalte + 2) = sText
Else
MsgBox "Für Maschine """ & .Cells(Zeile, 3) & """ soll als 3. Person """ _
& sText & " eingetragen werden." & vbLf & vbLf _
& "Bitte Eingabe korrigieren!", vbOKOnly + vbInformation, "Schichtliste ausfüllen"
Eintragen = True
End If
End With
End Function

Anzeige
AW: Zelleintrag in UF
22.10.2010 07:43:15
Heinz
Guten morgen, Franz
Echt SUPER
Recht herzlichen Dank.
Gruß
Heinz aus Österreich,bei minus 3°

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige