Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
432to436
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
432to436
432to436
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Arbeitsmappe anlegen laut Zelleninhalt

Arbeitsmappe anlegen laut Zelleninhalt
27.05.2004 11:15:02
Ossi
Hallo,
ich habe eine UF erstellt mit dem ich Personaldaten wie Pers.-Nr; Name; Urlaubsanspruch usw. in einer Tabelle anlege,
was ich möchte ist wenn der Datensatz über einen Button angelegt wird gleichzeitig auch eine separate Arbeitsmappe erstellt wird der dan den Namen aus Spalte-A erhält.
Die Arbeitsmappe sollte dann automatisch eine Zeile erhalten mit gewissen
Spalteneinträge wie "Datum; Kommt; Geht Iststunden usw." in die dann über eine
andere UF Einträge statt finden soll.
Ich habe hierüber nichts finden können weder in Büchern noch im Internet.
Gruß
Ossi

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arbeitsmappe anlegen laut Zelleninhalt
28.05.2004 13:38:52
Uwe
Hallo Ossi,
hier ein Ansatz:

Private Sub CommandButton1_Click()
Dim WB As Workbook
Dim wbName As String
wbName = ActiveSheet.Range("A2")
Set WB = Workbooks.Add
With WB
With .ActiveSheet
.Cells(1) = "Datum"
.Cells(2) = "Geht"
.Cells(3) = "Iststunden"
End With
.SaveAs wbName
End With
End Sub

Gruß Uwe
AW: Arbeitsmappe anlegen laut Zelleninhalt
29.05.2004 00:03:24
Ossi
Hallo Uwe,
besten Dank für deinen Tipp, funktioniert prima.
Mußte es für meine Bedürfnisse etwas anpassen aber dein Ansatz war entscheident.
Ich habe noch eine Zusatzfrage an dich: ich habe einen 2. Register auf der UF mit dem
gleichen Aufbau wie in der ich die Personalien eingebe, nur mit dem Unterschied das ich
hier keine Personalnummer eingeben kann sondern die über eine Combobox auswähle und einen
Button Namens "Suchen" drücke wobei die entsprechenden Daten aus der Tabelle in die jeweiligen Textboxen eingelesen werden, bis hier funktioniert alles.
Meine Frage: Ist es möglich hier Änderungen zu machen die dann über einen Button in den entsprechenden Zellen übernommen werden.
Gruß
Ossi
PS: Danke nochmals für deine Mühe.
Anzeige
AW: Arbeitsmappe anlegen laut Zelleninhalt
Beni
Hallo Ossi,
stelle den Code für den Suchvorgang hinein.
Gruss Beni
AW: Arbeitsmappe anlegen laut Zelleninhalt
29.05.2004 14:13:21
Ossi
Hallo Beni,
meinst du ins Forum?
Gruß
Ossi
AW: Ja
Beni
Ja
AW: Arbeitsmappe anlegen laut Zelleninhalt
29.05.2004 15:20:37
Ossi
Hallo Beni,
hier der Code den ich für die Suchfunktion erstellt habe.
Gruß
Ossi

Private Sub CommandButton4_Click()
Sheets("S_Stammdaten").Visible = True
Set Frm2 = UserForm1
With Frm2
Sheets("S_Stammdaten").Select
Range("A:A").Select
On Error GoTo Fehler
Selection.Find(what:=.ComboBox1.Value, _
after:=ActiveCell, _
LookIn:=xlFormulas, lookat:=xlWhole, _
searchorder:=xlByRows, searchdirection:=xlNext, _
MatchCase:=False).Activate
.TextBox37.Value = ActiveCell.Offset(0, 1).Value    'Name
.TextBox38.Value = ActiveCell.Offset(0, 2).Value    'Vorname
.TextBox39.Value = ActiveCell.Offset(0, 3).Value    'Straße
.TextBox40.Value = ActiveCell.Offset(0, 4).Value    'PLZ
.TextBox41.Value = ActiveCell.Offset(0, 5).Value    'Ort
If ActiveCell.Offset(0, 6) = "ja" Then CheckBox3.Value = True       'Wenn Ankestellter "ja" dann Checkbox3 aktivieren
If ActiveCell.Offset(0, 6) = "nein" Then CheckBox3.Value = False    'Wenn Ankestellter "ja" dann Checkbox3 deaktivieren
.TextBox42.Value = ActiveCell.Offset(0, 7).Value                    'Urlaubstage
If ActiveCell.Offset(0, 8) = "ja" Then CheckBox4.Value = True       'Wenn Dienst "ja" dann Checkbox4 aktivieren
If ActiveCell.Offset(0, 8) = "nein" Then CheckBox4.Value = False    'Wenn Dienst "ja" dann Checkbox4 deaktivieren
.TextBox43.Value = ActiveCell.Offset(0, 10).Value   'KFZ-Kennzeichen
.TextBox44.Value = ActiveCell.Offset(0, 9).Value    'Kilometer
.TextBox45.Value = ActiveCell.Offset(0, 12).Value   'Text für Bereitschaft
.TextBox46.Value = ActiveCell.Offset(0, 11).Value   'Kostenstelle
.TextBox47.Value = ActiveCell.Offset(0, 13).Value   'Arbeitsstunden Montag
.TextBox47 = Format(TextBox47, "h:mm")
.TextBox48.Value = ActiveCell.Offset(0, 14).Value   'Arbeitsstunden Dienstag
.TextBox48 = Format(TextBox48, "h:mm")
.TextBox49.Value = ActiveCell.Offset(0, 15).Value   'Arbeitsstunden Mittwoch
.TextBox49 = Format(TextBox49, "h:mm")
.TextBox50.Value = ActiveCell.Offset(0, 16).Value   'Arbeitsstunden Donnerstag
.TextBox50 = Format(TextBox50, "h:mm")
.TextBox51.Value = ActiveCell.Offset(0, 17).Value  'Arbeitsstunden Freitag
.TextBox51 = Format(TextBox51, "h:mm")
.TextBox52.Value = ActiveCell.Offset(0, 18).Value   'Arbeitsstunden Samstag
.TextBox52 = Format(TextBox52, "h:mm")
.TextBox53.Value = ActiveCell.Offset(0, 19).Value   'Arbeitsstunden Sonntag
.TextBox53 = Format(TextBox53, "h:mm")
.TextBox54.Value = ActiveCell.Offset(0, 20).Value   'Frühstückspause Montag
.TextBox54 = Format(TextBox54, "h:mm")
.TextBox55.Value = ActiveCell.Offset(0, 21).Value   'Frühstückspause Dienstag
.TextBox55 = Format(TextBox55, "h:mm")
.TextBox56.Value = ActiveCell.Offset(0, 22).Value   'Frühstückspause Mittwoch
.TextBox56 = Format(TextBox56, "h:mm")
.TextBox57.Value = ActiveCell.Offset(0, 23).Value   'Frühstückspause Donnerstag
.TextBox57 = Format(TextBox57, "h:mm")
.TextBox58.Value = ActiveCell.Offset(0, 24).Value   'Frühstückspause Freitag
.TextBox58 = Format(TextBox58, "h:mm")
.TextBox59.Value = ActiveCell.Offset(0, 25).Value   'Frühstückspause Samstag
.TextBox59 = Format(TextBox59, "h:mm")
.TextBox60.Value = ActiveCell.Offset(0, 26).Value   'Frühstückspause Sonntag
.TextBox60 = Format(TextBox60, "h:mm")
.TextBox61.Value = ActiveCell.Offset(0, 27).Value   'Mittagspause Montag
.TextBox61 = Format(TextBox61, "h:mm")
.TextBox62.Value = ActiveCell.Offset(0, 28).Value   'Mittagspause Dienstag
.TextBox62 = Format(TextBox62, "h:mm")
.TextBox63.Value = ActiveCell.Offset(0, 29).Value   'Mittagspause Mittwoch
.TextBox63 = Format(TextBox63, "h:mm")
.TextBox64.Value = ActiveCell.Offset(0, 30).Value   'Mittagspause Donnerstag
.TextBox64 = Format(TextBox64, "h:mm")
.TextBox65.Value = ActiveCell.Offset(0, 31).Value   'Mittagspause Freitag
.TextBox65 = Format(TextBox65, "h:mm")
.TextBox66.Value = ActiveCell.Offset(0, 32).Value   'Mittagspause Samstag
.TextBox66 = Format(TextBox66, "h:mm")
.TextBox67.Value = ActiveCell.Offset(0, 33).Value   'Mittagspause Sonntag
.TextBox67 = Format(TextBox67, "h:mm")
.TextBox68.Value = ActiveCell.Offset(0, 34).Value   'Uhrzeiten für Pause: Frühstück_von
.TextBox68 = Format(TextBox68, "h:mm")
.TextBox69.Value = ActiveCell.Offset(0, 35).Value   'Uhrzeiten für Pause: Frühstück_bis
.TextBox69 = Format(TextBox69, "h:mm")
.TextBox70.Value = ActiveCell.Offset(0, 36).Value   'Uhrzeiten für Pause: Mittag_von
.TextBox70 = Format(TextBox70, "h:mm")
.TextBox71.Value = ActiveCell.Offset(0, 37).Value   'Uhrzeiten für Pause: Mittag_bis
.TextBox71 = Format(TextBox71, "h:mm")
Exit Sub
Fehler:
MsgBox "Die Personalnummer : " & _
ComboBox1.Value & " ist nicht vorhanden!"
End With
End Sub

Anzeige
AW: Arbeitsmappe anlegen laut Zelleninhalt
Beni
Hallo Ossi,
ich habe mir erlaubt Dein Code etwas abzuändern und die TextBox's mit eine Scheife zu füllen.
Wichtig ist, dass ""Public IZeile As Integer"" ausserhalb der steht, am besten ganz oben, dadurch merkt sich Excel die Zeile, wo der Wert gefunden und beim zurückschreiben werden die Werte genau in die Zeile eingefügt.
Gruss Beni
Public IZeile As Integer

Private Sub CommandButton4_Click()
'suchen
'Sheets("S_Stammdaten").Visible = True
With Sheets("S_Stammdaten").Columns(1)
Set C = .Find(what:=ComboBox1.Value, LookIn:=xlValues, LookAt:=xlWhole)
If C Is Nothing Then
MsgBox "Die Personalnummer : " & ComboBox1.Value & " ist nicht vorhanden!"
Else
IZeile = C.Row
s = 2
For i = 37 To 71
Controls("TextBox" & CStr(i)).Value = Cells(IZeile, s)
s = s + 1
Next i
If C(1, 7).Value = "ja" Then CheckBox3.Value = True       'Wenn Ankestellter "ja" dann Checkbox3 aktivieren
If C(1, 7).Value = "nein" Then CheckBox3.Value = False    'Wenn Ankestellter "ja" dann Checkbox3 deaktivieren
If C(1, 9).Value = "ja" Then CheckBox4.Value = True       'Wenn Dienst "ja" dann Checkbox4 aktivieren
If C(1, 9).Value = "nein" Then CheckBox4.Value = False    'Wenn Dienst "ja" dann Checkbox4 deaktivieren
For i = 47 To 71
Controls("TextBox" & CStr(i)).Value = Controls(Format("TextBox" & CStr(i), "h:mm"))
s = s + 1
Next i
End If
End With
End Sub


Private Sub CommandButton5_Click()
'zurückschreiben
s = 2
For i = 37 To 71
Cells(IZeile, s) = Controls("TextBox" & CStr(i)).Value
s = s + 1
Next i
End Sub

Anzeige
AW: Arbeitsmappe anlegen laut Zelleninhalt
31.05.2004 14:00:06
Ossi
Hallo Beni,
Danke dir erstmal für deine Hilfe!
Das sieht alles einfacher und übersichtlicher aus als ich es gemacht habe aber etwas
stimmt bei mir nicht, wenn ich eine Personalnummer auswähle und "Suchen" betätige
aktualisieren sich nur die Checkboxen, die Textboxen bleiben leer.
Ich habe versucht die Ursache zu finden aber bei meiner VBA-Kenntnis blieb der Erfolg aus.
Kannst du da nochmal drüber schauen?
Gruß
Ossi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige