Anzeige
Archiv - Navigation
1680to1684
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

Wartungsplanung

Wartungsplanung
13.03.2019 13:52:56
bube
Hallo Zusammen,
ich habe es versucht ausführlich zu beschreiben, da ich noch anfänger bin im VBA.
Ich hoffe ihr könnt mir Tipps und Ideen für mein Problem geben.
Ich bearbeite Momentan 2 Exel-Datein.
In der einen Excel-Datei ist eine Wartungstabelle hinterlegt, mit allen Maschinen und der jeweiligen Module ( es können noch weitere Maschinen hinzukommen) die in bestimmten Intervallen gewartet werden müssen.
Ganz links stehen die Maschinennamen mit den jeweiligen Modulen: Einmal anfangend mit VM und einmal Mit EM.
Die Monate Jan -Dez sind von links nach rechts aufgelistet.
In meinem Bsp. schauen wir uns den Monat April an.
Die Maschine VM5589 + muss V(vieteljährlich) am 08.04.19 gewartet werden.
Da die Maschinen verschieden Module haben die evt. an verschieden Zeitpunkten gewartet werden müssen nimmt man das nächst eintreffende Datum.
Also im Falle der Maschine VM5589 + wäre das am 08.04.19 V (vierteljährlich)
Nun will ich mir in einem anderen Excelsheet einen Wartungsplan erstellen für den jeweilig ausgewählten Monat.
Bsp: Auf Sheet 1 habe ich eine Schaltfläche zum aktivieren.
Ich trage in das Feld G3 ein welchen Monat ich in den Wartungsplan eintragen will.
Ich trage in G3 April ein und betätige die Schaltfläche.
Nun sollen alle Maschinen die in Monat April gewartet werden müssen in das zweite Excelsheet zu dem richtigen Datum eingetragen werden, EM Maschinen und VM Maschinen getrennt.
Der Eintrag sollte so aussehen : Maschinexy (V, H oder J)
Was sehr wichtig ist das man das jüngste Datum von den Modulen als Anhaltspunkt nimmt.
Bsp für Maschine VM5589 +
Sollte in dem Wartungsplan , im Tabellenblatt 04_2019, VM Spalte neben dem Datum am 08.04.19 so eingetragen werden VM5589 + (V)
Wenn neben dem Datum schon bereits ein Maschine eingetragen ist, das nächste Feld rechts daneben verwenden.
Hier die Datei:
https://www.herber.de/bbs/user/128353.xls
https://www.herber.de/bbs/user/128354.xls
Danke und Grüße

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wartungsplanung
14.03.2019 23:52:26
fcs
hallo Bube,
in der Umsetzung ist dein Wunsch halt schon eine auwendige Fleißaufgabe für eine Lösung im Rahmen eines Forums.
Hier mein Vorschlag, an dem du bezüglich des Namens des Gesamtplanes noch Anpassungen machen muss.
Die Daten zu den Prüfunen der Maschinen werden hierbei zunächst in Daten-Arrays erfasst und erst zum Schluss ins Zieltabellenblatt übertragen.
Das Makro fügst du in der datei mit allen Prüfterminen des Jahres in einem allgemeinen Modul ein.
Dann kannst du es den Schaltflächen in den Jahresblättern zuweisen.
Gruß
Franz
Sub MakeWartunsplan()
Dim wksPlan As Worksheet
Dim wkbMonat As Workbook, wksMonat As Worksheet
Dim spaMonat As Long, zeiMasch_1 As Long, Zei_L As Long
Dim iJahr As Integer, iMonat As Integer, iTag As Integer
Dim strNameMasch As String
Dim strZyklus As String
Dim arrWartung(), intW As Integer
Dim arrMonat(), spaM As Integer, spaM1 As Integer
Dim strMonat As String
'Blatt mit Gesamtplan setzen - Aktives Blatt / Blatt mit der Schaltfläche !
Set wksPlan = ActiveSheet
With wksPlan
'Jahr des Plans in Variable einlesen
iJahr = .Range("A6").Value
'eingegbenen Monat auswerten
'Falls gewünscht die Langnamen der Monate in den Case-Zeilen ergänzen
Select Case .Range("G3").Text
Case "1", "Jan":        spaMonat = 1
Case "2", "Feb":        spaMonat = 2
Case "3", "Mar", "Mrz": spaMonat = 3
Case "4", "Apr":        spaMonat = 4
Case "5", "May", "Mai": spaMonat = 5
Case "6", "Jun":        spaMonat = 6
Case "7", "Jul":        spaMonat = 7
Case "8", "Aug":        spaMonat = 8
Case "9", "Sep":        spaMonat = 9
Case "10", "Oct", "Okt": spaMonat = 10
Case "11", "Nov":       spaMonat = 11
Case "12", "Dec", "Dez": spaMonat = 12
Case Else
spaMonat = 0
End Select
If spaMonat = 0 Then
MsgBox "Bitte korrekten Monat eingeben!" & vbLf & "Zahl 1 bis 12 oder Abkürzung mit  _
3 Zeichen"
GoTo Beenden
Else
'Variablen zum Monat mit Daten füllen
iMonat = spaMonat
strMonat = Format(iMonat, "00") & "_" & Format(iJahr, "0000") 'Blattname in Datei  _
mit Monatsplänen
spaMonat = spaMonat + 4                 'Spalte mit dem Monat im Wartunsplan
End If
'Letzte Zeile mit Inalt in Spalte B
Zei_L = .Cells(.Rows.Count, 2).End(xlUp).Row
'Startwert für Tag im Monat setzen - muss größer 31 sein!
iTag = 32
'Zeilen zu den Maschinen abarbeiten
For zeiMasch_1 = 7 To Zei_L
'Prüfen, ob nächste Maschine und Prüfzyklus
If .Cells(zeiMasch_1, 1).Text  "" _
And .Cells(zeiMasch_1 - 1, spaMonat).Text  "" Then
strNameMasch = .Cells(zeiMasch_1, 1).Text
strZyklus = .Cells(zeiMasch_1 - 1, spaMonat).Text
iTag = 32
If IsNumeric(.Cells(zeiMasch_1, spaMonat).Text) Then _
iTag = .Cells(zeiMasch_1, spaMonat).Value
Else
If IsNumeric(.Cells(zeiMasch_1, spaMonat).Text) Then
If .Cells(zeiMasch_1, spaMonat).Value  "" _
Or zeiMasch_1 = Zei_L And strNameMasch  "" Then
If iTag 

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige