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

Sicherheitskopie inkl. Verlinkter Datein

Sicherheitskopie inkl. Verlinkter Datein
16.03.2008 19:57:00
wossi
Hallo Forum,
trotz Recherche habe ich nicht das gefunde was ich suche.
Hintergrund: Monatlich soll eine Sicherheitskopie einer Datei angelegt werden.
1. Die Sicherungskopie soll in einem Ordner (bestehender Ordner) angelegt werden der manuell ausgewählt werden soll (z.B. c:\Archiv\2008\Januar\ )
2. In der Datei sind Verlinkungen zu anderen Datein, diese müssen auch als Sicherungskopie in dem Ordner gespeichert werden. Möglichst bis in die "n" te Ebene hinunter. also die Verlinkung der Verlinkung.
3. Verlinkungen (Pfade) der Sicherheitskopien müssen aktualisiert werden.
4. alle Dateien die als Sicherung in dem Ordner gespeichert werden, sollen einen Index an den Dateinamen angehängt bekommen bestehender Dateiname_1.xls Der Index ist als Wert in einer Zelle der Hauptdatei zu entnehmen.
Ohne VBA müsste ich sämtliche Dateien öffnen, und "Speichern unter" mit entsprechendem Index und zum Schluß die Hauptdatei speichern. Bei einigen dutzend Dateien macht das kein Spaß, darum meine Frage ob mir jemand mit einem VBA Code weiterhelfen könnte.
Danke
wossi

29
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sicherheitskopie inkl. Verlinkter Datein
16.03.2008 20:46:00
Daniel
Hallo
mal als Ansatz ein Makro, das
1. die Verküpften Datein öffnet und unter dem neuen Namen abspeichert
2. dabei werden die Verknüpfungen der Haupt-Datei automatisch angepasst, dazu ist kein spezieller Code notwendig
3. die Hauptdatei als Sicherungskopie speichert

Sub Sicherungskopie_mit_Verkn_erstellen()
Dim i As Long
Dim neuerPfad As String
Dim NeuerName As String
Dim Index As String
Dim wb As Workbook
Dim Verknüpfungen
Index = ThisWorkbook.Sheets(1).Cells(1, 1).Value 'bitte anpassen
neuerPfad = "C:\..." 'Ordner auswählen geht auch, ich weiß grand nur nicht wie
Verknüpfungen = ThisWorkbook.LinkSources
For i = 1 To UBound(Verknüpfungen)
Set wb = Workbooks.Open(Verknüpfungen(i))
NeuerName = neuerPfad & "\" & Left(wb.Name, Len(wb.Name) - 4)
NeuerName = NeuerName & "_" & Index & ".xls"
wb.SaveAs NeuerName
wb.Close
Next
ThisWorkbook.SaveCAs neuerPfad & "\" & ThisWorkbook.Name
ThisWorkbook.Close
End Sub


Die Datei wird am Ende geschlossen, damit mit ihr nicht weitergearbeitet wird, da die links ja geändert wurden.
Hier werden nur die Verknüpfungen der 1. Ebene bearbeitet.
Um Verknüpfungen der 2. und hören Ebene ebenfalls als Sicherung zu speichern, müsstest du das ganze als Rekursion aufbauen, aber das ist mir jetzt zu komplex
Gruß, Daniel

Anzeige
AW: Sicherheitskopie inkl. Verlinkter Datein
16.03.2008 21:55:00
wossi
N´abend,
werde ich gleich mal ausprobieren. Vom lesen her, hört sich das schon richtig gut an.
Wie aufwändig ist das denn mit der Rekursion?
Gruß,
wossi

AW: Sicherheitskopie inkl. Verlinkter Datein
16.03.2008 22:36:00
Daniel
Hi
der Absolute Aufwand ist relativ klein, aber man muß es halt verstehen was da passiet.
Rekursionen sind Makros oder Funktionen, die sich selbst aufrufen.
Das wäre in deinem Fall erforderlich, da die über WORKBOOKS.OPEN geöffnete Datei ja auch Verlinkungen zu anderen Dateien haben kann, die dann ebenfalls auf diese Art geöffnet werden müssten.
vielleicht hat da jemand anderes mehr programmier-know-how und kann dir besser erklären, wie sowas funktioniet.
Gruß, Daniel

Anzeige
AW: Sicherheitskopie inkl. Verlinkter Datein
17.03.2008 09:20:30
Wossi
Hi Tino,
ja, hatte wir schonmal, aber hatte bei mir nicht ganz funktioniert, und jetzt ist der Beitrag schon wieder aus dem Forum raus. Daher habe ich nochmal gepostet.
Nachdem ich das Makro ausgeführt hatte, ist mein rechner fast abgeschmiert und ich hatte plötzlich über 16.000 Sicherheitskopien auf meinem Rechner ;-)
wossi

AW: Sicherheitskopie inkl. Verlinkter Datein
17.03.2008 10:36:14
Tino
Hallo,
habe den Fehler gefunden.
https://www.herber.de/bbs/user/50772.xls
Gruß
Tino

Anzeige
AW: Sicherheitskopie inkl. Verlinkter Datein
17.03.2008 20:34:00
wossi
hi,
habe mal getestet, aber es erscheit folgender fehler:
Fehler 448, benanntes objekt nicht gefunden
Set SucheVKL = .Cells.Find("[", After:=.Range("A1"), LookIn:=xlFormulas, LookAt:=
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False)
? help ...
@ Tino: Ach so, noch eine Bitte hätte an dich, kannst Du mir in diesen Code (ist auch in der Datei drin), erweitern, so dass der Code erst aktiv wird, wenn ein Kontollkästchen angehakt ist?! Danke.

Private Sub Worksheet_Calculate()
Dim Bereich As Range, Zelle As Range
Set Bereich = Sheets("Kosten").Range("D8:O8")
Application.EnableEvents = False
Application.Calculation = xlManual
Application.ScreenUpdating = False
For Each Zelle In Bereich
If LCase$(Zelle.Offset(-5, 0)) = "ist" Then
'Formel eintargen von geänderte Zelle 6 Zellen nach unten
Zelle.FormulaR1C1 = _
"=VLOOKUP(Prämissen!R23C1,Tabelle1!C1:C13,Prämissen!R[2]C[1],0)"
'Prüfe ob Formel ein wahr ergebnis hat
End If
Next Zelle
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub


Anzeige
AW: Sicherheitskopie inkl. Verlinkter Datein
17.03.2008 21:13:00
Tino
Hallo,
habe es gerate noch mal getestet, kann deine Fehlermeldung nicht Nachvollziehen.
Deine Checkbox ist eingebaut.
https://www.herber.de/bbs/user/50800.xls
Gruß
Tino

AW: Sicherheitskopie inkl. Verlinkter Datein
18.03.2008 20:11:55
wossi
Hi,
habs nochmal probiert, jetzt funzt es. Wie kann ich jetzt noch das Verzeichnis auswählen, wo die Dateien gespeichert werden? Und dass die Sicherheitskopie der Hauptdatei auch mit Index abgespeichert wird. Kannst Du mir nochmal mit einer Codeerweiterung weiterhelfen?
Danke.
Wossi
Danke für die Checkbox!!!!!!!!!!!!!

Anzeige
AW: Sicherheitskopie inkl. Verlinkter Datein
18.03.2008 20:25:00
Tino
Hallo,
Wie kann ich jetzt noch das Verzeichnis auswählen
war es ursprünglich nicht so angedacht, das die Dateien in das Verzeichnis der Exceldatei
kommen sollten.
Etwas Geduld
Gruß
Tino

AW: Sicherheitskopie inkl. Verlinkter Datein
18.03.2008 20:34:11
Tino
Hallo,
hier

Die Datei https://www.herber.de/bbs/user/50837.xls wurde aus Datenschutzgründen gelöscht


Gruß
Tino

AW: Sicherheitskopie inkl. Verlinkter Datein
18.03.2008 22:16:56
wossi
Hey hey,
nicht schlecht. Danke.
Die Hauptdatei muss auch in dem auszuwählenden Verzeichnis mit dem Index gespeichert werden. Vielleicht ist es etwas missverständlich von mir geschrieben. Kannst Du es noch hinzufügen?
Das ist jetzt zwar nur Formsache, wenn er meldet, wieviele Dateien er verschoben hat, dann steht dort das falsche Verzeichnis in das geschoben wurde..
Viele Grüße,
wossi

Anzeige
AW: Sicherheitskopie inkl. Verlinkter Datein
18.03.2008 22:51:38
Tino
Hallo,
habe deine wünsche noch reingebaut.
Achtung habe es so gemacht,
sollte diese Datei schon vorhanden sein, wird diese ohne Warnung überschrieben.
https://www.herber.de/bbs/user/50842.xls
Gruß
Tino

AW: Sicherheitskopie inkl. Verlinkter Datein
19.03.2008 01:40:12
Tino
Hallo,
habe die Funktion von Daniel eingebaut, ist wesentlich besser für die Linkanpassung.
Nachteil die Datei muss geöffnet werden.

Die Datei https://www.herber.de/bbs/user/50843.xls wurde aus Datenschutzgründen gelöscht


Gruß
Tino

Anzeige
AW: Sicherheitskopie inkl. Verlinkter Datein
19.03.2008 13:53:00
Tino
Hallo,
manchmal übersieht man so Kleinigkeiten, gerate wen es zu späht wird
https://www.herber.de/bbs/user/50852.xls
Gruß
Tino

AW: Sicherheitskopie inkl. Verlinkter Datein
19.03.2008 15:45:00
wossi
Hallo,
jetzt geht es. Könntest Du den Code noch so dengeln, dass die gespeicherte Hauptdatei euch den Index angehängt bekommt?
Und dann noch eine zweite Frage bzgl. der Codes für das Einfügen der Formel (Tabellenblatt "Kosten"),
ich habe den Code kopiert, und den Blattnamen, den auf Änderungen zu prüfenden Bereich und die Zelle in die das Ergebnis eingetragen werden soll, geändert, und jetzt bekomme ich eine Fehlermeldung:
1004 Anwendungs- oder objektdefinierter Fehler ?!
If LCase$(Zelle.Offset(-5, 0)) = "ist" Then
wenn ich -6 eingebe, dann geht er von der geänderten Zelle 6 nach unten, oder?!
Gruß,
wossi

Anzeige
AW: Sicherheitskopie inkl. Verlinkter Datein
19.03.2008 16:36:00
Tino
Hallo,
habe den Monat als Index genommen.
Habe es nicht getestet sollte aber Funktionieren.
https://www.herber.de/bbs/user/50860.xls
zu 2.
Bereich der der durchlaufen wird. (Spalte 8)
Set Bereich = ThisWorkbook.Sheets("Kosten").Range("D8:O8")
Rückgabe ist Spalte (8 – 5 = Spalte 3)
Zelle.Offset(-5, 0) dies wäre demnach, D3 bis O3
Gruß
Tino

AW: Sicherheitskopie inkl. Verlinkter Datein
19.03.2008 22:50:00
wossi
Hallo,
jetzt ist der Index (Monat) vor dem Dateinamen... kannst Du ihn dahinter setzen?
In der Meldung wohin die Dateien verschoben wurden steht noch der falsche Pfad drin.
Und dann muss ich das Ganze nur noch in die richtige Datei bringen, mal schauen ob ich das hinbekomme.
Und noch ne Frage zu dem Code "Formel einfügen", auf der Seite sollen noch mehr Zeilen mit einer Formel (pro Zeile ein anderer Bezug) bestückt werden. Die Prüfung "IST" ist immer die Selbe an selber Stelle. Muss man den Code für jede Formel neu einfügen, oder kann ich den neuen Bereich und Formel in den gleichen Code schreiben? quasie als Aufzählung?
Gruß,
wossi

Anzeige
AW: Sicherheitskopie inkl. Verlinkter Datein
19.03.2008 23:27:00
Tino
Hallo,
zu erstens
https://www.herber.de/bbs/user/50862.xls
zu zweitens.
eigentlich müsste es auch ohne große Anpassung gehen, da die Relevanten Zellen
durch $ fest stehen.
Gruß
Tino

AW: Fehler mit Pfad übergabe
19.03.2008 23:48:00
Tino
Hallo,
habe immer noch einen Fehler gefunden, wen ich nur C:\ auswähle wird mir der Pafd
mit \ am ende übergeben.
Wähle ich einen Pfad C.\Test wird dieser ohne \ übergeben.
So ist das nun mal mit B-Versionen.
Ist behoben.
https://www.herber.de/bbs/user/50863.xls
Gruß
Tino

AW: Fehler mit Pfad übergabe
20.03.2008 10:08:00
wossi
Hi,
nochmal ne Frage. Wenn in der Formel die bei "IST" per VBA eingetragen werden soll, eine Verknüpfung enthält, wie läuft dass dann? Ich wollte die Formel per Makrorecorder aufzeichnen, aber da hat er mir einen Fehler angezeigt? Hilfe...
Gruß
wossi

AW: Fehler mit Pfad übergabe
20.03.2008 10:32:05
wossi
hat sich schon erledigt....

und jetzt noch mal was...
20.03.2008 12:39:55
wossi
Doch nochmal ne Frage,
ich will eine weitere Zeile einfügen, in die Formeln kopiert werden. Habe einfach einen Bereich 2 generiert.
Aber bei der "For each" zeigt er mir einen Fehler. Was mache ich falsch? Die Formel für Bereich 2 wird eine Andere als die von Bereich1.

Private Sub Worksheet_Calculate()
Dim Bereich As Range, Zelle As Range
If ThisWorkbook.Sheets("Prämissen").CheckBox1 = False Then Exit Sub
Set Bereich1 = ThisWorkbook.Sheets("Kosten u. Adj. Budget").Range("D9:O9")
Set Bereich2 = ThisWorkbook.Sheets("Kosten u. Adj. Budget").Range("D15:O15")
Application.EnableEvents = False
Application.Calculation = xlManual
Application.ScreenUpdating = False
For Each Zelle In Bereich1
If LCase$(Zelle.Offset(-6, 0)) = "ist" Then
'Formel eintargen von geänderte Zelle 6 Zellen nach unten
Zelle.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(Prämissen!R108C21,Prämissen!R109C25,Prämissen!R[26]C[1],0)),"""", _
VLOOKUP(Prämissen!R108C21,Prämissen!R109C25,Prämissen!R[26]C[1],0))"
'Prüfe ob Formel ein wahr ergebnis hat
For Each Zelle In Bereich2
If LCase$(Zelle.Offset(-12, 0)) = "ist" Then
Zelle.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(Prämissen!R108C21,Prämissen!R109C25,Prämissen!R[26]C[1],0)),"""", _
VLOOKUP(Prämissen!R108C21,Prämissen!R109C25,Prämissen!R[26]C[1],0))"
End If
Next Zelle
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub


Wossi

und jetzt noch mal was...
20.03.2008 12:40:00
wossi
Doch nochmal ne Frage,
ich will eine weitere Zeile einfügen, in die Formeln kopiert werden. Habe einfach einen Bereich 2 generiert.
Aber bei der "For each" zeigt er mir einen Fehler. Was mache ich falsch? Die Formel für Bereich 2 wird eine Andere als die von Bereich1.

Private Sub Worksheet_Calculate()
Dim Bereich As Range, Zelle As Range
If ThisWorkbook.Sheets("Prämissen").CheckBox1 = False Then Exit Sub
Set Bereich1 = ThisWorkbook.Sheets("Kosten u. Adj. Budget").Range("D9:O9")
Set Bereich2 = ThisWorkbook.Sheets("Kosten u. Adj. Budget").Range("D15:O15")
Application.EnableEvents = False
Application.Calculation = xlManual
Application.ScreenUpdating = False
For Each Zelle In Bereich1
If LCase$(Zelle.Offset(-6, 0)) = "ist" Then
'Formel eintargen von geänderte Zelle 6 Zellen nach unten
Zelle.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(Prämissen!R108C21,Prämissen!R109C25,Prämissen!R[26]C[1],0)),"""", _
VLOOKUP(Prämissen!R108C21,Prämissen!R109C25,Prämissen!R[26]C[1],0))"
'Prüfe ob Formel ein wahr ergebnis hat
For Each Zelle In Bereich2
If LCase$(Zelle.Offset(-12, 0)) = "ist" Then
Zelle.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(Prämissen!R108C21,Prämissen!R109C25,Prämissen!R[26]C[1],0)),"""", _
VLOOKUP(Prämissen!R108C21,Prämissen!R109C25,Prämissen!R[26]C[1],0))"
End If
Next Zelle
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub


Wossi

AW: und jetzt noch mal was...
20.03.2008 13:39:39
Tino
Hallo,
du kannst nicht
For Each Zelle ...
zweimal aufrufen
bevor du die erste nicht abgeschlossen hast mit
Next Zelle
ich würde es ohne einen zweiten Bereich machen.

Private Sub Worksheet_Calculate()
Dim Bereich As Range, Zelle As Range
If ThisWorkbook.Sheets("Kosten").CheckBox1 = False Then Exit Sub
Set Bereich1 = ThisWorkbook.Sheets("Kosten u. Adj. Budget").Range("D9:O9")
Application.EnableEvents = False
Application.Calculation = xlManual
Application.ScreenUpdating = False
For Each Zelle In Bereich1
If LCase$(Zelle.Offset(-6, 0)) = "ist" Then
'Erste Formel
Zelle.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(Prämissen!R108C21,Prämissen!R109C25,Prämissen!R[26]C[1],0)),""""," & _
"VLOOKUP(Prämissen!R108C21,Prämissen!R109C25,Prämissen!R[26]C[1],0))"
'zweite Formel
Zelle.Offset(7, 0).FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(Prämissen!R108C21,Prämissen!R109C25,Prämissen!R[26]C[1],0)),""""," & _
"VLOOKUP(Prämissen!R108C21,Prämissen!R109C25,Prämissen!R[26]C[1],0))"
End If
Next Zelle
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub


Gruß
Tino

AW: Sicherheitskopie inkl. Verlinkter Datein
19.03.2008 13:21:00
wossi
Hallo Tino,
ich habe mit Begeisterung die neue Datei getestet, leider habe ich ein Fehlermeldung bekommen...
Argument nicht optional:
Sub Verschiebe(Neuer_Pfad As String)
hat es bei dir funktioniert?
Gruß,
wossi

AW: Sicherheitskopie inkl. Verlinkter Datein
17.03.2008 09:16:49
Wossi
Hallo Daniel,
danke dafür.
Um das Verzeichnis auszuwählen, kannst Du mir da nochmal einen Code zusammenstricken?
Gruß,
wossi

Rekursion?!
17.03.2008 09:12:50
Wossi
Hallo Forum,
wer kann mir weiterhelfen und mir eine Rekursion einbauen? Kann man diese auch auf eine bestimmte Anzahl beschränken (so max. 4 Unterebenen)? So dass sich der Rechner im schlimmsten Fall nicht totrechnet?
Danke
Wossi

AW: Sicherheitskopie inkl. Verlinkter Datein
17.03.2008 20:37:59
wossi
Hallo,
wie müsste der Code angepasst werden, dass auch die Hauptdatei den Index bekommt?
Gruß,
wossi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige