Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1912to1916
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

Quelle bei Errorr ändern

Quelle bei Errorr ändern
02.01.2023 13:18:28
mathias_l
Frohes neus und Guten Tag VBA Profis,
ich hatte mein Progamm am laufen und es ging auch sehr gut bis jetzt die ersten Monate aus unsrem Dienstplan in eine Backup Datei transferiert wurden. Jetzt hätte ich gerne, dass wenn die Tabellenblätter des Array nicht gefunden werden nicht Fehler 9 kommt, sondern das dann die Datei des Backup vom Dienstplan genommen wird.
Man kann in meiner Tabelle das Jahr wählen und die Backup Datei liegt auch in einem Ordener mit dem Jahr und endet auch mit der Jahreszahl.
Vielleicht kann man das ja nicht mit einem festen Jahr schreiben sondern so, dass immer erst nach einem Ordner und einer Datei darin geschaut wird und wenn es keinen Ordner bzw Datei gibt (also kein Backup vorhanden ist) dann nimmt er den normalen Dienstplan.
https://www.herber.de/bbs/user/157036.zip
geht leider nur als zip.

Sub Okay()
Stamm = Application.ActiveWorkbook.Name
Quelldatei = "Dienstplan.xlsm" 'Dateiname anpassen
Sheets("Dienstantritte").Unprotect "test"
Sheets("Dienstantritte").Cells.Range("A11:BA5000").Clear
strSuchwort = UserForm1.ComboBox1.Value
Workbooks.Open Filename:="I:\218407\31-5620-E-WacheDPLEssMeld\01 Dienstplan\011 Jahresdienstplan\" & Quelldatei 'Ablageort der Quelldatei anpassen
Assets = Array("Januar " & Workbooks(Stamm).Sheets("Dienstantritte").Cells(7, 33), _
"Februar " & Workbooks(Stamm).Worksheets("Dienstantritte").Cells(7, 33), _
"März " & Workbooks(Stamm).Worksheets("Dienstantritte").Cells(7, 33), _
"April " & Workbooks(Stamm).Worksheets("Dienstantritte").Cells(7, 33), _
"Mai " & Workbooks(Stamm).Worksheets("Dienstantritte").Cells(7, 33), _
"Juni " & Workbooks(Stamm).Worksheets("Dienstantritte").Cells(7, 33), _
"Juli " & Workbooks(Stamm).Worksheets("Dienstantritte").Cells(7, 33), _
"August " & Workbooks(Stamm).Worksheets("Dienstantritte").Cells(7, 33), _
"September " & Workbooks(Stamm).Worksheets("Dienstantritte").Cells(7, 33), _
"Oktober " & Workbooks(Stamm).Worksheets("Dienstantritte").Cells(7, 33), _
"November " & Workbooks(Stamm).Worksheets("Dienstantritte").Cells(7, 33), _
"Dezember " & Workbooks(Stamm).Worksheets("Dienstantritte").Cells(7, 33))
'On Error GoTo ErrorHandler
For Each Asset In Assets
Workbooks(Quelldatei).Sheets(Asset).Range("A10:AJ11").Copy ' Blatt/Bereich anpassen
Workbooks(Stamm).Sheets("Dienstantritte").Range("A" & Cells(Rows.Count, 1).End(xlUp).Row + 1).PasteSpecial xlPasteAll ' Blatt/Bereich anpassen
For Each rngZelle In Workbooks(Quelldatei).Sheets(Asset).Range("C:C")
If rngZelle = strSuchwort Then
rngZelle.EntireRow.Copy
Workbooks(Stamm).Sheets("Dienstantritte").Range("A" & Cells(Rows.Count, 1).End(xlUp).Row + 1).PasteSpecial xlPasteAll
End If
Next
Next
Application.CutCopyMode = False
Workbooks(Quelldatei).Close
Set MyRange = Range("A11:AJ46")
For Each Cell In MyRange
If Cell.Interior.Pattern = xlPatternLightHorizontal Then
Cell.ClearContents
End If
If Cell.Interior.Pattern = xlPatternSemiGray75 Then
Cell.ClearContents
End If
Next Cell
Cells.Select
Range("A1").Activate
Selection.Locked = True
Range("A11:AJ46").Select
Selection.Locked = False
Range("AF8").Select
Selection.Locked = False
Worksheets("Dienstantritte").Protect "test"
Unload UserForm1
'ErrorHandler:
End Sub
Vielen Dank

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Quelle bei Errorr ändern
03.01.2023 08:10:21
Matze
Guten Morgen,
hat denn niemand eine Lösung für mich?
AW: Quelle bei Errorr ändern
07.01.2023 19:24:29
Piet
Hallo
ich habe durch euren Code noch nicht ganz durchgeblickt. Da gibt es aber eine Merkwürdigkeit im Array, die mir sofort auffaellt, wenn man mit der With Klammer arbeitet! Schaut es euch bitte selbst an!
Alle Werte für die Monate von Januar bis Dezember werden ausschliesslich aus der Celle (7, 33) Dienstplan geladen.
Da kann was nicht stimmen!! - Die Zeilen oder Spalten müssten sich doch m.E. um 1 aendern. Oder sehe ich das falsch?
Ein zweites Problem ist ,dass das Array alle Daten aus diesem Dienstplan laedt. Wie wollt ihr feststellen das ein Monat fehlt?
Steht dann der Wert in Celle (7, 33) auf Null? Da ist mir noch so einiges unklar .....
mfg Piet
  • Assets = Array("Januar " & .Cells(7, 33), _
    "Februar " & .Cells(7, 33), _
    "März " & .Cells(7, 33), _
    "April " & .Cells(7, 33), _
    "Mai " & .Cells(7, 33), _
    "Juni " & .Cells(7, 33), _
    "Juli " & .Cells(7, 33), _
    "August " & .Cells(7, 33), _
    "September " & .Cells(7, 33), _
    "Oktober " & .Cells(7, 33), _
    "November " & .Cells(7, 33), _
    "Dezember " & .Cells(7, 33))
    End With

  • Anzeige
    AW: Quelle bei Errorr ändern
    08.01.2023 10:52:27
    ralf_b
    was mir seltsam vorkommt.
    du kopierst die Inhalte aller Monate von der Quelldatei in Dienstantritte, dabei kopierst du nochmal den Bereich wobei in Spalte C eine Auswahl getroffen wird.
    Und so wie der Code kommentiert wurde, hast du den nicht geschrieben, sondern dir zusammenbasteln lassen.
    Dieses Assets Ding kann man sich weitgehend sparen.
    1.prüfen ob das blatt in der quelle vorhanden ist
    2. wenn ja einlesen, wenn nein Backupdatei prüfen und von dort einlesen
    aber mal davon abgesehen fehlt die Backupdatei zum testen.
    Wenn du schon Hilfe haben möchtest und einen Code postest ,dann sollte der auch mit dem Code in der Datei übereinstimmen.
    Schön wenn du schon weiter machst, aber das hilft dir nicht wenn du die Vorschläge dann nicht einbauen kannst.
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige