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

Code von Office10 in Office97

Code von Office10 in Office97
17.03.2004 13:18:48
Sascha
Hi Leute!
Dieser Code bewirkt folgendes:
1. Blende die Spalten "E", "G", "I",..... aus, wenn der Wert in Zelle1 0 ist (ab dem zweiten Blatt).
2. Schütze alle Blätter mit dem Passwort "Schutz"
3. Verstecke das aktive Blatt "Artikel" - auf dieser befindet sich der CommandButton
4. Schütze die Mappe mit dem Passwort "Schutz"
5. Speichere diese Mappe im Pfad "D:\Sascha\Excel\Gravurlisten unter dem Namen - "Inhalt Zelle D8 des Blattes Artikel"
Dieser Code funktioniert im Office10 auch super. Nun wollte ich diese Mappe weitergeben. Kann mir Jemand den Code so verändern, dass er auch im Office97 funktioniert? Habe leider keine Ahnung von VBA. Diesen Code habe ich mir in diesem super Forum gesucht und erfragt.


Private Sub ArbeitSpeichern_Click()
Dim spaArray(), n%
spaArray = Array("E", "G", "I", "K", "M", "O", "Q", "S", "U", _
"W", "Y", "AA", "AC", "AE", "AG", "AI")
For i = 2 To Worksheets.Count
For n = LBound(spaArray()) To UBound(spaArray())
If Not IsEmpty(Worksheets(i).Range(CStr(spaArray(n)) & "1")) And Worksheets(i).Range(CStr(spaArray(n)) & "1") = 0 Then
Worksheets(i).Columns(spaArray(n) & ":" & spaArray(n)).Hidden = _
Not Worksheets(i).Columns(spaArray(n) & ":" & spaArray(n)).Hidden
End If
Next n
Next i
Sh = Sheets.Count
For i = 1 To Sh
Sheets(i).Protect ("Schutz"), DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingColumns:=True
Sheets(i).EnableSelection = xlUnlockedCells
Next i
ActiveWindow.SelectedSheets.Visible = False
ActiveWorkbook.Protect ("Schutz"), Structure:=True, Windows:=False
pfad = "D:\Sascha\Excel\Gravurlisten"
Datei = Sheets("Artikel").Range("D8")
ThisWorkbook.SaveAs pfad & "\" & Datei & ".xls"
End Sub

Danke schon mal für die Hilfe
mfg Sascha

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code von Office10 in Office97
17.03.2004 14:09:02
Axel
Hallo,
Excel 97 unterstützt keine Zuweisung an Datenfelder und kennt beim Tabellenblatt-Schutz die Eigenschaft AllowFormattingColumns nicht (letzteres gilt auch für Excel 2000).
Option Explicit gibt es allerdings auch bereits bei Excel 97 !!!
Hier die Version für Excel 97:
Option Explicit
Private Sub ArbeitSpeichern_Click()
   Dim spaArray As Variant
   Dim pfad As String
   Dim i As Integer
   Dim n As Integer
   spaArray = Array("E", "G", "I", "K", "M", "O", "Q", "S", "U", _
      "W", "Y", "AA", "AC", "AE", "AG", "AI")
   For i = 2 To Worksheets.Count
      For n = LBound(spaArray) To UBound(spaArray)
         If Not IsEmpty(Worksheets(i).Range(CStr(spaArray(n)) & "1")) And Worksheets(i).Range(CStr(spaArray(n)) & "1") = 0 Then
            Worksheets(i).Columns(spaArray(n) & ":" & spaArray(n)).Hidden = _
            Not Worksheets(i).Columns(spaArray(n) & ":" & spaArray(n)).Hidden
         End If
      Next n
   Next i
      
   For i = 1 To Sheets.Count
      Sheets(i).Protect ("Schutz"), DrawingObjects:=True, Contents:=True, Scenarios:=True
      Sheets(i).EnableSelection = xlUnlockedCells
   Next i
    
   ActiveWindow.SelectedSheets.Visible = False
   ActiveWorkbook.Protect ("Schutz"), Structure:=True, Windows:=False
   pfad = "D:\Sascha\Excel\Gravurlisten"
End Sub
     Code eingefügt mit Syntaxhighlighter 1.14


Gruß
Axel
Anzeige
AW: Code zeigt Laufzeitfehler 13
18.03.2004 09:45:41
Sascha
Hi Axel!
Leider funktioniert der Code nicht (zeigt Laufzeitfehler 13- Typen unverträglich)
in Zeile:
If Not IsEmpty(Worksheets(i).Range(CStr(spaArray(n)) & "1")) And Worksheets(i).Range(CStr(spaArray(n)) &
Weist du wo der Fehler liegt?
Danke
Sascha
AW: Code von Office10 in Office97
18.03.2004 09:58:33
Axel
Hallo,
lade deine Mappe bitte mal auf den Server hoch und poste den Link.
Gruß
Axel
AW: Code von Office10 in Office97
18.03.2004 11:22:02
Axel
Hi,
ich nehme an, dass du in den Blättern "Klasse_*" die Spalten, für die in den Verknüpfungszellen des Artikel-Blattes keine Preise eingegeben sind, ausblenden willst. Richtig?
Für diesen Fall, habe ich den Code mal runderneuert.
Private Sub ArbeitSpeichern_Click()
   Dim spaArray As Variant
   Dim i As Integer
   Dim n As Integer
   spaArray = Array("E", "G", "I", "K", "M", "O", "Q", "S", "U", _
      "W", "Y", "AA", "AC", "AE", "AG", "AI")
   ' Bildschirmaktualisierung unterdrücken
   Application.ScreenUpdating = False
   
   ' zunächst den Mappenschutz aufheben
   For i = 1 To Sheets.Count
      Sheets(i).Unprotect "Schutz"
   Next i
   For i = 2 To Worksheets.Count
      For n = LBound(spaArray) To UBound(spaArray)
      
         With Worksheets(i).Columns(spaArray(n))
            ' Blatt ausblenden, wenn die erste Zelle der Spalte leer
            ' ist oder den String "0" enthält
            .Hidden = (IsEmpty(.Cells(1)) Or .Cells(1) = "0")
         End With
         
      Next n
   Next i
      
   For i = 1 To Sheets.Count
      Sheets(i).Protect ("Schutz"), DrawingObjects:=True, Contents:=True, Scenarios:=True
      Sheets(i).EnableSelection = xlUnlockedCells
   Next i
    
   ' Warum muß das Blatt ausgeblendet werden?
   'ActiveWindow.SelectedSheets.Visible = False
   ActiveWorkbook.Protect ("Schutz"), Structure:=True, Windows:=False
      
   ThisWorkbook.SaveAs "D:\Sascha\Excel\Gravurlisten\" & _
      Sheets("Artikel").Range("D8")
End Sub
     Code eingefügt mit Syntaxhighlighter 1.14


Gruß
Axel
Anzeige
AW: Code von Office10 in Office97
18.03.2004 12:15:29
Sascha
Hi Alex!
Danke für die Hilfe!
Vieleicht sollte ich mal genau erklären was ich erreichen wollte. Bin halt im VBA eine Niete.
1. Die Spalten "E", "G" usw. ab dem 2. Blatt, sollen dann ausgeblendet werden, wenn in Zelle1 der Spalte nichts oder 0 steht. Verknüpft ist die jeweilige Zelle1 mit Zellen des Blattes "Artikel" (B12, C12, usw. - nicht der Preis sondern die Bezeichnung des Artikels)
2. Danach soll das erste Blatt versteckt und alle Blätter und die Mappe geschützt werden.
3. Die Mappe soll unter dem Zellinhalt der Zelle D8 des Blattes Artikel gespeichert werden.
Das erste Blatt soll versteckt und die Mappe geschützt werden, weil die entstehende (durch speichern) Mappe weitergegeben werden soll.
Am besten wäre natürlich, wenn das erste Blatt in der entstehenden Mappe garnicht da wäre und alle Blätter und Mappen geschützt sind, damit nur ungeschützte Zellen ausgefüllt werden können. Dazu müssten ja aber alle, mit Blatt "Artikel" verknüpften Zellen in Werte umgewandelt werden. Geht das?
Sorry für den langen Text.
Gruss, Sascha
Anzeige
AW: Code von Office10 in Office97
18.03.2004 12:53:38
Axel
ok, dann teste mal folgendes:
Private Sub ArbeitSpeichern_Click()
   
   Dim spaArray As Variant
   Dim i As Integer
   Dim n As Integer
   Dim strFileNameCopy As String, strLinkCompare
   Dim rng As Range, rngFormula As Range
   Dim wbCopy As Workbook
   
   ' Bildschirmaktualisierung unterdrücken
   Application.ScreenUpdating = False
   
   ' Dateinamen für Kopie der Mappe festlegen
   strFileNameCopy = "D:\Sascha\Excel\Gravurlisten\" & Sheets("Artikel").Range("D8")
   
   ' Kopie erstellen
   ThisWorkbook.SaveCopyAs strFileNameCopy
      
   ' Kopie öffnen
   Workbooks.Open strFileNameCopy
   
   spaArray = Array("E", "G", "I", "K", "M", "O", "Q", "S", "U", _
      "W", "Y", "AA", "AC", "AE", "AG", "AI")
   ' zunächst den Mappenschutz aufheben
   ' diese Schleife kann entfallen, wenn die Quellmappe keinen
   ' Schutz aufweist
   For i = 1 To Sheets.Count
      Sheets(i).Unprotect "Schutz"
   Next i
   
   ' Spalten ausblenden
   For i = 2 To Worksheets.Count
      For n = LBound(spaArray) To UBound(spaArray)
      
         With Worksheets(i).Columns(spaArray(n))
            ' Blatt ausblenden, wenn die erste Zelle der Spalte leer
            ' ist oder den String "0" enthält
            .Hidden = (IsEmpty(.Cells(1)) Or .Cells(1) = "0")
         End With
         
      Next n
   Next i
      
   ' Verknüpfungen auf das Artikelblatt entfernen
   ' es wird vorausgesetzt, das dieses Blatt das erste der
   ' Blattaufzählung ist
   
   ' Vergleichsstring zusammensetzen
   strLinkCompare = "=" & Worksheets(1).Name & "!*" ' liefert "=Artikel!*"
   
   For i = 2 To Worksheets.Count
      With Worksheets(i).Cells
      
         ' Wenn ein Blatt keine Formeln enthält, entsteht bei
         ' Anwendung der SpecialCells-Methode ein Laufzeitfehler
         ' der abgefangen werden muß
         On Error Resume Next
         Set rngFormula = .SpecialCells(xlCellTypeFormulas)
         On Error Goto 0
         
         ' alle Zellen mit Formeln durchlaufen
         If (Not rngFormula Is NothingThen
            For Each rng In rngFormula
               
               ' falls eine Verknüpfung enthalten ist
               If (rng.Formula Like strLinkCompare) Then
                  ' dann die Formel durch den Zellwert ersetzen
                  ' dadurch wird die Verknüpfung entfernt
                  rng.Formula = rng.Value
               End If
            Next
         End If
      End With
   Next i
   
   ' Schutz setzen
   For i = 1 To Sheets.Count
      Sheets(i).Protect ("Schutz"), DrawingObjects:=True, Contents:=True, Scenarios:=True
      Sheets(i).EnableSelection = xlUnlockedCells
   Next i
    
   ActiveWorkbook.Protect ("Schutz"), Structure:=True, Windows:=False
      
   ' neu speichern
   ActiveWorkbook.Save
   
   ' und danach schliessen
   ' ActiveWorkbook.Close
End Sub
     Code eingefügt mit Syntaxhighlighter 1.14


Gruß
Axel
Anzeige
AW: Code von Office10 in Office97
18.03.2004 14:46:36
Sascha
Hi Alex!
Super, vielen Dank für die Hilfe!
Funktioniert fast perfekt.
1. Bei der Kopie fehlt die Dateiendung (kann man da gleich festlegen, das die Kopie immer im Excel97-Format gespeichert wird, auch wenn das Original mit Excel2000 geöffnet wird?
2. Das erste Blatt ist in der Kopie noch vorhanden, wenns nicht komplett entfernt werden kann, kann man es wenigstens verstecken?
Und dann verstehe ich folgende Passage nicht:
With Worksheets(i).Columns(spaArray(n))
' Blatt ausblenden, wenn die erste Zelle der Spalte leer
' ist oder den String "0" enthält
.Hidden = (IsEmpty(.Cells(1)) Or .Cells(1) = "0")
Was meinst du damit? Es sollen keine Blätter ausgeblendet werden, nur die genannten Spalten - und das funktioniert ja super.
Nochmal Danke für die Hilfe!
mfg
Sascha
Anzeige
AW: Code von Office10 in Office97
18.03.2004 15:37:41
Axel
Hi,
das mit dem Blatt ausblenden war ein Schreibfehler, ist natürlich die Spalte gemeint.
Das mit dem Suffix ".xls" hast du ja schon hinbekommen, füge ich dem Code aber noch bei.
Zwischen Excel 97 und 2002 gibt es hinsichtlich des Speicherformats eigentlich keine Änderungen deswegen ist m.E. die Angabe eines Formats bei der SaveAs (statt Save)-Methode nicht notwendig. Da die Quelldatei aber im Excel 5-Format vorliegt, habe ich das trotzdem zugefügt.
Das Entfernen des ersten Blattes hatte ich glatt vergessen.
Hier also die - hoffentlich - endgültige Fassung.
Option Explicit
Private Sub ArbeitSpeichern_Click()
   
   Dim spaArray As Variant
   Dim i As Integer
   Dim n As Integer
   Dim strFileNameCopy As String, strLinkCompare
   Dim rng As Range, rngFormula As Range
   Dim wbCopy As Workbook
   
   ' Bildschirmaktualisierung unterdrücken
   Application.ScreenUpdating = False
   
   ' Dateinamen für Kopie der Mappe festlegen
   strFileNameCopy = "D:\Sascha\Excel\Gravurlisten\" & _
      Sheets("Artikel").Range("D8") & ".xls"
   ' Kopie erstellen
   ThisWorkbook.SaveCopyAs strFileNameCopy
      
   ' Kopie öffnen
   Workbooks.Open strFileNameCopy
   
   spaArray = Array("E", "G", "I", "K", "M", "O", "Q", "S", "U", _
      "W", "Y", "AA", "AC", "AE", "AG", "AI")
   ' zunächst den Mappen- und Blattschutz aufheben
   ' dies kann entfallen, wenn die Quellmappe keinen
   ' Schutz aufweist
   ActiveWorkbook.Unprotect "Schutz"
   
   For i = 1 To Sheets.Count
      Sheets(i).Unprotect "Schutz"
   Next i
   
   ' Spalten ausblenden
   For i = 2 To Worksheets.Count
      For n = LBound(spaArray) To UBound(spaArray)
      
         With Worksheets(i).Columns(spaArray(n))
            ' Spalte ausblenden, wenn die erste Zelle der Spalte leer
            ' ist oder den String "0" enthält
            .Hidden = (IsEmpty(.Cells(1)) Or .Cells(1) = "0")
         End With
         
      Next n
   Next i
      
   ' Verknüpfungen auf das Artikelblatt entfernen
   ' es wird vorausgesetzt, das dieses Blatt das erste der
   ' Blattaufzählung ist
   
   ' Vergleichsstring zusammensetzen
   strLinkCompare = "=" & Worksheets(1).Name & "!*" ' liefert "=Artikel!*"
   
   For i = 2 To Worksheets.Count
      With Worksheets(i).Cells
      
         ' Wenn ein Blatt keine Formeln enthält, entsteht bei
         ' Anwendung der SpecialCells-Methode ein Laufzeitfehler
         ' der abgefangen werden muß
         On Error Resume Next
         Set rngFormula = .SpecialCells(xlCellTypeFormulas)
         On Error Goto 0
         
         ' alle Zellen mit Formeln durchlaufen
         If (Not rngFormula Is NothingThen
            For Each rng In rngFormula
               
               ' falls eine Verknüpfung enthalten ist
               If (rng.Formula Like strLinkCompare) Then
                  ' dann die Formel durch den Zellwert ersetzen
                  ' dadurch wird die Verknüpfung entfernt
                  rng.Formula = rng.Value
               End If
            Next
         End If
      End With
   Next i
   
   ' Warnungen deaktivieren
   Application.DisplayAlerts = False
   
   ' erstes Blatt der Mappe entfernen
   Worksheets(1).Delete
   
   ' Warnungen aktivieren
   Application.DisplayAlerts = True
   
   ' Schutz setzen
   For i = 1 To Sheets.Count
      Sheets(i).Protect "Schutz", DrawingObjects:=True, _
         Contents:=True, Scenarios:=True
      
      Sheets(i).EnableSelection = xlUnlockedCells
   Next i
    
   ActiveWorkbook.Protect "Schutz", Structure:=True, Windows:=False
      
   ' neu speichern im Standard-Excel-Format
   ActiveWorkbook.SaveAs FileFormat:=xlWorkbookNormal
   
   ' und danach schliessen
   ' ActiveWorkbook.Close
End Sub
     Code eingefügt mit Syntaxhighlighter 1.14


Gruß
Axel
Anzeige
AW: Code von Office10 in Office97
18.03.2004 16:07:21
Sascha
Hi Axel!
Funktioniert super, bis auf den Speicherpfad der Kopie. Die Kopie wird in "Eigene Dateien" gespeichert statt nach D:\Sascha\Excel\Gravurlisten
Vielen Dank für deine Mühe, echt super.
Gruss, Sascha
AW: Code von Office10 in Office97
18.03.2004 16:20:06
Sascha
Sorry falsch ausgedrückt.
Ich habe den Code so eingefügt, wie du ihn mir gegeben hast, dass heisst die Kopie wird nicht gleich geschlossen. Beim schließen kommt natürlich die Frage "Änderungen speichern"? Diese Kopie speichert dann nach C:\Eigene Dateien. Diese Kopie ist auch die, die funktioniert. Bei der ersten Kopie, im Ordner D:\Sascha..... stürzt Excel ab und der Zugriff auf diese Datei wird verweigert.
Anzeige
AW: Code von Office10 in Office97
18.03.2004 16:39:07
Sascha
Hi Axel!
Ich weiss was verändert werden müsste, nur nicht wie. Wenn ich im Code das Letzte Speichern deaktiviere und dann über "speichern unter" die vorhandene Datei Im Ordner D:\Sascha\Excel\Gravurlisten überschreibe funzt diese Kopie ohne Probleme.
Gruss Sascha
AW: Code von Office10 in Office97
18.03.2004 16:47:30
Axel
Hallo,
ich bin jetzt etwas verwirrt. Wenn du unter "Eigene Dateien" speichern möchtest, brauchst du doch nur die Zuweisung an die Varialbe strFileNameCopy zu ändern.
Oder habe ich etwas falsch verstanden?
Gruß
Axel
AW: Code von Office10 in Office97
18.03.2004 17:01:27
Sascha
Ich schon wieder.
Im oberen teil des Codes wird doch schon eine Kopie erstellt. Der letzte Befehl speichert die Mappe aber nach C:\Eigene Dateien. Dieser Befehl soll ja aber die erste Kopie im Ordner D:\Sascha\Excel\Gravurlisten überschreiben.
ActiveWorkbook.SaveAs FileFormat:=xlWorkbookNormal
Gruss, sascha
Anzeige
AW: Code von Office10 in Office97
18.03.2004 17:16:48
Axel
Ups,
hast Recht, habe da etwas übersehen.
Ersetze die SaveAs-Zeile mit:
ActiveWorkbook.SaveAs FileName:=strFileNameCopy, FileFormat:=xlWorkbookNormal
d.h. das Argument FileName wird zugefügt.
Wenn das nicht angegeben ist, wird die Datei unter identischem Namen im aktuellen Pfad gespeichert.
Auch ich lerne noch dazu ...
Gruß
Axel
AW: Code von Office10 in Office97
18.03.2004 17:39:41
Sascha
Super, dann lernen wir ja beide, wobei ich noch ganz am Anfang bin.
Geht fast: Wenn ich den Code jetzt abfahre erscheint:
Eine Datei mit dem Namen D:\Sascha\Excel\Gravurlisten\Testlauf existiert schon an diesem Platz. Soll sie ersetzt werden?
bestätige ich mit "Ja"
Dann öffnet sich "Testlauf" und jetzt muss ich diese Datei noch mal Speichern, dann iss fertig. Geht das nich auch noch aftomatisch, weil dann könnte sie auch automatisch schliessen?
Gruss Sascha
Anzeige
AW: Code von Office10 in Office97
18.03.2004 18:11:32
Axel
ok, dann also der letzte Ansatz.
Das Wiederaktivieren der Warnmeldungen habe ich jetzt hinter SaveAs verlegt, dadurch wird die Sicherheitsabfrage zum Überschreiben unterdrückt.
Der bisher auskommentierte Code zum Schliessen der Mappe am Ende der Prozedur ist jetzt scharf.
Gruß
Axel


Option Explicit
Private Sub ArbeitSpeichern_Click()
   
   Dim spaArray As Variant
   Dim As Integer
   Dim As Integer
   Dim strFileNameCopy As String, strLinkCompare
   Dim rng As Range, rngFormula As Range
   Dim wbCopy As Workbook
   
   ' Bildschirmaktualisierung unterdrücken
   Application.ScreenUpdating = False
   
   ' Dateinamen für Kopie der Mappe festlegen
   strFileNameCopy = "D:\Sascha\Excel\Gravurlisten\" & _
      ThisWorkbook.Sheets("Artikel").Range("D8") & ".xls"
   ' Kopie erstellen
   ThisWorkbook.SaveCopyAs strFileNameCopy
      
   ' Kopie öffnen
   Workbooks.Open strFileNameCopy
   
   spaArray = Array("E", "G", "I", "K", "M", "O", "Q", "S", "U", _
      "W", "Y", "AA", "AC", "AE", "AG", "AI")
   ' zunächst den Mappen- und Blattschutz aufheben
   ' dies kann entfallen, wenn die Quellmappe keinen
   ' Schutz aufweist
   ActiveWorkbook.Unprotect "Schutz"
   
   For i = 1 To Sheets.Count
      Sheets(i).Unprotect "Schutz"
   Next i
   
   ' Spalten ausblenden
   For i = 2 To Worksheets.Count
      For n = LBound(spaArray) To UBound(spaArray)
      
         With Worksheets(i).Columns(spaArray(n))
            ' Spalte ausblenden, wenn die erste Zelle der Spalte leer
            ' ist oder den String "0" enthält
            .Hidden = (IsEmpty(.Cells(1)) Or .Cells(1) = "0")
         End With
         
      Next n
   Next i
      
   ' Verknüpfungen auf das Artikelblatt entfernen
   ' es wird vorausgesetzt, das dieses Blatt das erste der
   ' Blattaufzählung ist
   
   ' Vergleichsstring zusammensetzen
   strLinkCompare = "=" & Worksheets(1).Name & "!*" ' liefert "=Artikel!*"
   
   For i = 2 To Worksheets.Count
      With Worksheets(i).Cells
      
         ' Wenn ein Blatt keine Formeln enthält, entsteht bei
         ' Anwendung der SpecialCells-Methode ein Laufzeitfehler
         ' der abgefangen werden muß
         On Error Resume Next
         Set rngFormula = .SpecialCells(xlCellTypeFormulas)
         On Error GoTo 0
         
         ' alle Zellen mit Formeln durchlaufen
         If (Not rngFormula Is NothingThen
            For Each rng In rngFormula
               
               ' falls eine Verknüpfung enthalten ist
               If (rng.Formula Like strLinkCompare) Then
                  ' dann die Formel durch den Zellwert ersetzen
                  ' dadurch wird die Verknüpfung entfernt
                  rng.Formula = rng.Value
               End If
            Next
         End If
      End With
   Next i
   
   ' Warnungen deaktivieren
   Application.DisplayAlerts = False
   
   ' erstes Blatt der Mappe entfernen
   Worksheets(1).Delete
   
   ' Schutz setzen
   For i = 1 To Sheets.Count
      Sheets(i).Protect "Schutz", DrawingObjects:=True, _
         Contents:=True, Scenarios:=True
      
      Sheets(i).EnableSelection = xlUnlockedCells
   Next i
    
   ActiveWorkbook.Protect "Schutz", Structure:=True, Windows:=False
      
   ' neu speichern im Standard-Excel-Format
   ActiveWorkbook.SaveAs FileName:=strFileNameCopy, FileFormat:=xlWorkbookNormal
   
   ' Warnungen wieder aktivieren
   Application.DisplayAlerts = True
   
   ' und danach schliessen
   ActiveWorkbook.Close
End Sub


     Code eingefügt mit Syntaxhighlighter 2.5


AW: Code von Office10 in Office97
18.03.2004 18:28:20
Sascha
Ne, das war es leider auch nicht. Die Warnmeldungen sind alle weg, aber beim öffnen der Kopie meldet Excel "Anwendung wird geschlossen".
Macht aber nichts, ich habe ja ne funktionierende Version. Ich werde mal noch ein bischen dranrumspielen, morgen.
Ich danke dir für deine Hilfe, hattest ja ganz schön Geduld mit mir. Man hört sich.
tschau, sascha
AW: Code von Office10 in Office97
18.03.2004 17:20:56
Sascha
Habe jetzt alles noch durchgetestet und habe deinen Code gelassen, bis auf den letzten Eintrag: aktive Mappe schliessen (ActiveWorkbook.Close).
Jetzt passiert also fogendes:
Ich öffne die Originaldatei ("Gravurliste"), drücke meinen CommandButton (arbeitspeichern). Dann werde ich gefragt "Datei existiert schon - "Datei ersetzen" - damit ist die Kopie gemeint ("A9999999"), ich bestätige mit OK. Daraufhin ist die Kopie "A99999999" geöffnet. Wenn ich diese Datei jetzt schliessen will, fragt mich Excel ob ich die vorgenommen Änderungen speichern will, obwohl ich gar keine Änderungen vorgenommen habe. Bestätige ich mit "Nein", bringt mir die Datei bei erneutem Aufruf einen Excelabsturz. Bestätige ich aber mit "Ja" und gebe den Pfad D:\Sascha..... ein und überschreibe die vorhanden Datei nochmal, dann funzt alles prima, keine Ahnung warum.
AW: Code von Office10 in Office97
18.03.2004 14:51:41
Sascha
Hi Alex!
Dateiendung habe ich schon hinbekommen.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige