Herbers Excel-Forum - das Archiv
Daten auslesen
Betrifft: Daten auslesen
von: pitti
Geschrieben am: 18.12.2006 17:22:06
Hej zusammen,
kann ich von einem Excelsheet Daten so auslesen, daß ich aus einem Schichtplan für Mitarbeiter, das Datum auslese, an dem bspw. ein "SP", o. ä. eingetragen ist. Und in der Zeile darunter das Gleiche, nur daß er jetzt die nächsten und nicht mehr das zuerst ausgelesene Datum bekommt?
Gott ist das schwer zu beschreiben. Ich hoffe Ihr kommt damit klar.
Beste Grüße
pitti
Betrifft: AW: Daten auslesen
von: Ulf M
Geschrieben am: 18.12.2006 17:28:51
Hallo Pitti
geht schon
gib mal ne bsp datei
mfg Ulf
Betrifft: AW: Daten auslesen
von: pitti
Geschrieben am: 18.12.2006 17:53:47
https://www.herber.de/bbs/user/39090.xls
Das ist ein Bsp. unseres Schichtplanes. Nun verhält es sich so, daß bestimmte (nicht alle!) Schichten zusätzl. Geld bringen und ich möchte einen Weg finden, diesen Plan auf diese speziellen Schichten zu prüfen und in ein externes Sheet zu übertragen, wo ich die Daten dann weiterverabeiten kann.
pitti
Betrifft: AW: Daten auslesen
von: Ulf M
Geschrieben am: 18.12.2006 18:21:38
Hallo Pitti
Du möchtest also alle Schichten mit dem letzten Datum von jedem Mitarbeiter in eine neue Tabelle schreiben.
Habe ich das so richtig verstanden?
mfg Ulf
Betrifft: AW: Daten auslesen
von: pitti
Geschrieben am: 18.12.2006 18:32:23
Hej,
wenn MA 1 am 1.12. eine SSP hatte, dann soll in ein noch zu erstellendes anderes Sheet das Datum und dieser Schichttyp (hier gerade "SSP") eingetragen werden. Etwa in der Form:
01.12. SSP
04.12. FFS
Relevante Einträge im Schichtplan sind SO, SAS, SA, SSP, SP, FFS. Das ist so schwer zu beschreiben. Kam das jetzt besser?
Danke & vG
pitti
Betrifft: AW: Daten auslesen
von: Ulf M
Geschrieben am: 18.12.2006 19:11:49
Hallo pitti
ich weiß zwar immer noch nicht ob ich dich richtig verstanden habe, aber versuch mal das.
Sub übertragen()
Dim i As Integer
Dim x As Integer
Dim M As Integer
Dim Schicht(20) As String
x = 1
With Sheets(1)
Sheets(2).Activate
Sheets(2).Range(Cells(2, 1), Cells(100, 5)) = ""
For M = 1 To 2
For i = 2 To .Cells(65536, 1).End(xlUp).Row
If .Cells(i, M + 1) = "SO" Or _
.Cells(i, M + 1) = "SAS" Or _
.Cells(i, M + 1) = "SA" Or _
.Cells(i, M + 1) = "SSP" Or _
.Cells(i, M + 1) = "SP" Or _
.Cells(i, M + 1) = "FFS" Then
x = Sheets(2).Cells(65536, M * 3 - 2).End(xlUp).Row + 1
Sheets(2).Cells(x, M * 3 - 2) = .Cells(i, 1).Value
Sheets(2).Cells(x, M * 3 - 1) = .Cells(i, M + 1).Value
End If
Next i
Next M
End With
End Sub
melde dich mal
mfg Ulf
Betrifft: AW: Daten auslesen
von: pitti
Geschrieben am: 18.12.2006 21:47:20
Hallo Ulf,
vielen Dank für Deine Mühe. Leider verstehe jetzt ich nur Bahnhof. Weder weiß ich, wo ich die Formel/ Anweisung hinterlegen muß, geschweige denn wie? Ist es möglich Dich telefonisch zu kontaktieren? Kannst Du mir Deine Kontaktdetails an cgai@gmx.de senden? Mag ich nur ungern über das Board machen.
VG
pitti
Betrifft: AW: Daten auslesen
von: Ulf M
Geschrieben am: 18.12.2006 22:51:10
Hallo pitti
drücke ALT+F11
dann Einfügen ->> Modul
dort fügst du den Code ein.
dann ein Doppelklick links auf Tabbele2
Rechts fügst du diesen code ein
Private Sub Worksheet_Activate()
Call übertragen
End Sub
Dann schließt du wieder die VBA-Umgebung
Dann geht alles automatisch wenn du die Tabelle2 auswählst.
Ich weiß als VBA Neuling ist es nicht so einfach aber ein Versuch ist es wert.
Mit einer Formel hätte ich so schnell keinen Rat.
mfg Ulf