Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1284to1288
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

Fehlerhaftes WB - erstellt mit VBA

Fehlerhaftes WB - erstellt mit VBA
06.11.2012 09:06:03
Gerhard
Hallo Leute
ich bin mittlerweile schon am verzweifeln und finde auch nach reichlicher recherche in diversen Büchern und Foren keine Lösung.
ich bin dabei mir für eine arbeit auf der TU eine pocedure zu schreiben um versuche auszuwerten, dazu erstelle ich für jeden versuch eine eigene auswertungsdatei - jedoch bekomme ich beim erneuten öffnen der datei direkt nach dem erstellen dieser datei eine meldung das in der datei unleserliche inhalte vorhanden sind. ich hätte auch schon versucht das ganze über eine vorlage zu realisieren was aber zur selben meldung führte. Somit bin ich leider aufgrund meiner doch nur beschränkten kenntnisse dazu gezwungen euch um eure Hilfe zu bitten.
mein code lautet wie folgt:
Public Declare Function MakePath _
Lib "imagehlp.dll" Alias "MakeSureDirectoryPathExists" ( _
ByVal lpPath As String _
) As Long
Sub CreatePathAPI()
Dim Path As String
Path = "c:\Auswertungen\"
API_CreatePath (Path)
End Sub

Public Function API_CreatePath(Path As String) As Boolean
' Pfad anlegen
If MakePath(Path) 0 Then API_CreatePath = True
End Function
Sub Datei_neu()
Dim Datname As String
Datname = "Test"
Application.UseSystemSeparators = True
Call CreatePathAPI
Path = "C:\Auswertungen\"
Workbooks.Add
Application.SheetsInNewWorkbook = 6
ActiveWorkbook.Charts.Add After:=Worksheets(6), Count:=4
With ActiveWorkbook
.Worksheets(1).Name = "Protokoll"
.Worksheets(2).Name = "Rohdaten"
.Worksheets(3).Name = "Daten bereinigt"
.Worksheets(4).Name = "Daten geglaettet"
.Worksheets(5).Name = "Steifigkeiten"
.Worksheets(6).Name = "Ent- und Belastung"
.Charts(1).Name = "Dia - Rohdaten"
.Charts(2).Name = "Dia - Daten bereinigt"
.Charts(3).Name = "Dia - Daten geglaettet"
.Charts(4).Name = "Dia - Steifigkeit"
End With
ActiveWorkbook.SaveAs Path & Datname & ".xlsx"
ActiveWorkbook.Close
End Sub
danke im voraus für eure hilfe
Gerhard

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
statt.xlsx viell. .xlsm speichern? owT Gruß
06.11.2012 09:37:11
robert

Wieso als. .xlsm speichern? Mappe enthält kein VBA
06.11.2012 09:48:09
NoNet
Hallo Matthias,
das kann wohl kaum des Rätsels Lösung sein, denn wie Du dem Code entnehmen kannst, enthält die neu erzeugte Mappe (vermutlich) keine VBA-Elemente ! Das könnte allenfalls der Fall sein, sofern die MAPPE.XLTX VBA-Elemente enthält - aber wer macht denn so etwas ;-)) ?
Salut, NoNet

das war nicht Matthias, robert hats vermutet ;-)
06.11.2012 09:52:04
robert

*fg* - Immer diese vielen Namen im Forum ;-) _oT
06.11.2012 09:59:29
NoNet
_oT

;-) Gruß Matthias_oT
06.11.2012 10:10:55
Matthias

Funktioniert mit kleinen Code-Änderungen
06.11.2012 09:44:08
NoNet
Hallo Gerhard,
ich kann den Fehler (unter Excel 2010) nicht nachvollziehen.
Allerdings enthielt Dein Code kleinere logische Fehler (z.B. wurrde zuerst eine neue Mappe erstellt und DANACH festgelegt, dass neue Mappen mit 6 Blättern erstellt werden sollen ;-).
Ich habe Deinen Code geringfügig angepasst und er funktioniert (allerdings enthalten die Blätter noch keine Daten und die Diagramme noch keine Datenquellen ;-) :
Public Declare Function MakePath _
Lib "imagehlp.dll" Alias "MakeSureDirectoryPathExists" (ByVal lpPath As String) As Long
Const strPFad = "C:\temp\Auswertungen\"
Sub CreatePathAPI()
API_CreatePath strPFad
End Sub
Public Function API_CreatePath(Path As String) As Boolean
' Pfad anlegen
If MakePath(Path)  0 Then API_CreatePath = True
End Function
Sub Datei_neu()
Dim Datname As String
Datname = "Test"
Application.UseSystemSeparators = True
Call CreatePathAPI
Application.SheetsInNewWorkbook = 6
Workbooks.Add
ActiveWorkbook.Charts.Add After:=Worksheets(6), Count:=4
With ActiveWorkbook
.Worksheets(1).Name = "Protokoll"
.Worksheets(2).Name = "Rohdaten"
.Worksheets(3).Name = "Daten bereinigt"
.Worksheets(4).Name = "Daten geglaettet"
.Worksheets(5).Name = "Steifigkeiten"
.Worksheets(6).Name = "Ent- und Belastung"
.Charts(1).Name = "Dia - Rohdaten"
.Charts(2).Name = "Dia - Daten bereinigt"
.Charts(3).Name = "Dia - Daten geglaettet"
.Charts(4).Name = "Dia - Steifigkeit"
End With
ActiveWorkbook.SaveAs strPFad & Datname & ".xlsx"
ActiveWorkbook.Close
End Sub
Gruß, NoNet

Anzeige
das würd mich aber ärgern
06.11.2012 10:04:20
Rudi
Hallo,
Application.SheetsInNewWorkbook = 6
Hab ich standardmäßig auf 3.
Ergo
Dim iSINW As Integer
iSINW = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 6
Workbooks.Add
Application.SheetsInNewWorkbook = iSINW
.....

Gruß
Rudi

Das würde Dich ärgern ? - Ziel erreicht ;-)
06.11.2012 10:18:17
NoNet
Hey Rudi,
klaro hast Du Recht, aber das ist schliesslich Gerhards Entscheidung - er wollte das ja so !
Ich habe den Code nur auf Funktionalität korrigiert, nicht auf Sinnhaftigkeit !
Salut in den Pott, NoNet

Einen Herzlichen Dank an alle Beteiligten
06.11.2012 11:27:42
Gerhard
NoNet dein Code hat mir wirklich geholfen - und Danke nochmal für die wirklich rasche Antwort
Grüße
Gerhard
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige