Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Excel abspeichern

Frage Entwicklung VB for Applications

Mitglied: Cadsys-Chemnitz

Cadsys-Chemnitz (Level 1) - Jetzt verbinden

31.03.2009, aktualisiert 15:59 Uhr, 4611 Aufrufe, 12 Kommentare

Wenn ich mit meinem VB Scribt meine Excel Datei abspeichern will kommt immer die Nachfrage ober die Datei überschreiben soll weil diese schon vorhanden ist.

Wie kann ich diese Meldung unterdrücken? So das er speichert ohne Nahcfrage.

Mein Speichercode:

01.
 
02.
            NB.ActiveWorkbook.Saved = True 
03.
            NB.ActiveWorkbook.SaveAs("C:\Data\Version.xls") 
04.
            NB.ActiveWorkbook.Close() 
05.
 
Mitglied: 76109
31.03.2009 um 16:31 Uhr
Hallo Cadsys-Chemnitz,

Wenn Datei schon existiert, dann reicht ".Save" und wenn es nicht sicher ist, dann in etwa so:

01.
Dim fso as Object, vPath As String 
02.
     
03.
vPath = "C:\Data\Version.xls" 
04.
     
05.
Set Fso = CreateObject("Scripting.FileSystemObject") 
06.
 
07.
With NB.ActiveWorkbook 
08.
   If Fso.FileExists(vPath) Then .Save Else .SaveAs vPath 
09.
  .Close 
10.
  .Saved = True 
11.
 End With
Gruß Dieter
Bitte warten ..
Mitglied: Seelbreaker
31.03.2009 um 16:38 Uhr
Ich weiß es zwar, nicht aber aus Neugier... in Zeile 3 steht ja "SaveAs" So heißt ja auch der Speichern Button in Office, der dich vorher einen Pfad auswählen lässt bzw. dir die Möglichkeit gibt einen neuen Dateinamen anzugeben um beispielsweise ein Kopie zu speichern.

Würde:

NB.ActiveWorkbook.Save

auch zum Ziel führen? Oder gibt es Befehl "Save" so nicht wie bei Office wo gnadenlos überschrieben wird?

MFG
Seelbreaker
Bitte warten ..
Mitglied: Cadsys-Chemnitz
31.03.2009 um 16:44 Uhr
Idee ist nicht schlecht leider kommt die Meldung immer noch.

Detei bereits vorhanden. Soll diese überschrieben werden ...


Ich hab mal unten das ganze Script mit deinem Eingebauten Code mit aufgeführt.


01.
 
02.
        Dim NB As Excel.Application 
03.
        Dim z As Integer 
04.
        Dim verPath As String 
05.
        Dim fso As FileSystemObject 
06.
 
07.
        If Button1.Enabled = True Then 
08.
            NB = CreateObject("Excel.Application") 
09.
            NB.Workbooks.Open("C:\Data\Version.ini") 
10.
            z = NB.ActiveWorkbook.ActiveSheet.Range("C1").Value + 5 
11.
            NB.ActiveWorkbook.ActiveSheet.Range("E" & z).Value = TextBox1.Text 
12.
            NB.ActiveWorkbook.ActiveSheet.Range("F" & z).Value = TextBox2.Text 
13.
            NB.ActiveWorkbook.ActiveSheet.Range("B" & z).Value = TextBox3.Text 
14.
            NB.ActiveWorkbook.ActiveSheet.Range("C" & z).Value = TextBox4.Text 
15.
            If CheckBox1.CheckState = CheckState.Checked Then 
16.
                NB.ActiveWorkbook.ActiveSheet.Range("D" & z).Value = "1" 
17.
            Else 
18.
                NB.ActiveWorkbook.ActiveSheet.Range("D" & z).Value = "0" 
19.
            End If 
20.
 
21.
            verPath = "C:\Data\Version.ini" 
22.
            Fso = CreateObject("Scripting.FileSystemObject") 
23.
 
24.
            With NB.ActiveWorkbook 
25.
                .Saved = True 
26.
                If Fso.FolderExists(verPath) Then .Save() Else .SaveAs(verPath) 
27.
                .Close() 
28.
            End With 
29.
        End If 
30.
 
Bitte warten ..
Mitglied: Cadsys-Chemnitz
31.03.2009 um 16:48 Uhr
Doch save gibt es aber bei Beiden fragt er nach ob er überschreiben soll ...

übrigens das würde er im Office auch tun.



Ich schätze man muss irgendwie einen Parameter setzen das die nachfrage einfach ignoriert wird, weiss nur nicht wie.
Bitte warten ..
Mitglied: 76109
31.03.2009 um 16:48 Uhr
Hallo nochmal,

ja, habe Code nochmal geändert. Müsste so gehen?

Gruß Dieter
Bitte warten ..
Mitglied: 76109
31.03.2009 um 16:51 Uhr
Bitte warten ..
Mitglied: Cadsys-Chemnitz
31.03.2009 um 17:03 Uhr
Also hiernochmal mit Deinem abgeänderten Code.

Selbe Fehlermeldung ...

01.
 
02.
        Dim NB As Excel.Application 
03.
        Dim z As Integer 
04.
 
05.
        If Button1.Enabled = True Then 
06.
            NB = CreateObject("Excel.Application") 
07.
            NB.Workbooks.Open("C:\Data\Version.ini") 
08.
            z = NB.ActiveWorkbook.ActiveSheet.Range("C1").Value + 5 
09.
            NB.ActiveWorkbook.ActiveSheet.Range("E" & z).Value = TextBox1.Text 
10.
            NB.ActiveWorkbook.ActiveSheet.Range("F" & z).Value = TextBox2.Text 
11.
            NB.ActiveWorkbook.ActiveSheet.Range("B" & z).Value = TextBox3.Text 
12.
            NB.ActiveWorkbook.ActiveSheet.Range("C" & z).Value = TextBox4.Text 
13.
            If CheckBox1.CheckState = CheckState.Checked Then 
14.
                NB.ActiveWorkbook.ActiveSheet.Range("D" & z).Value = "1" 
15.
            Else 
16.
                NB.ActiveWorkbook.ActiveSheet.Range("D" & z).Value = "0" 
17.
            End If 
18.
 
19.
            Dim fso As Object, vPath As String 
20.
 
21.
            vPath = "C:\\Data\Version.ini" 
22.
 
23.
            fso = CreateObject("Scripting.FileSystemObject") 
24.
 
25.
            With NB.ActiveWorkbook 
26.
                If fso.FileExists(vPath) Then .Save() Else .SaveAs(vPath) 
27.
                .Close() 
28.
                .Saved = True 
29.
            End With 
30.
        End If 
31.
 
Bitte warten ..
Mitglied: 76109
31.03.2009 um 17:10 Uhr
Hallo,

Debuggerfehler oder Save-Fehler?

Die Klammern hinter Save, Close und Saved "..." gehören weg. Gibt sonst Debuggerfehler

Die Lösung von "Xerebus" mit Display.Alerts müsste aber auch funktionieren.

Allerdings glaube ich nicht, das Du die Datei als *.ini abspeichern kannst?

Gruß Dieter
Bitte warten ..
Mitglied: Xerebus
31.03.2009 um 17:18 Uhr
Um die Abfrage zum "Überschreiben" zu umgehen,
setze einfach DisplayAlerts = False


Sub Speichern()
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "..."
Application.DisplayAlerts = True
End Sub


Gefunden bei.
http://www.digital-inn.de/ms-excel/4834-speichern-per-macro-problem.htm ...
Bitte warten ..
Mitglied: Cadsys-Chemnitz
01.04.2009 um 08:25 Uhr
Danke erstmal an alle die mitgeholfen haben bei der Lösung, diese sieht jetzt folgendermaßen aus.

01.
 
02.
        Dim NB As Excel.Application 
03.
        Dim z As Integer 
04.
 
05.
        If Button1.Enabled = True Then 
06.
            NB = CreateObject("Excel.Application") 
07.
            NB.Workbooks.Open("C:\Data\Version.ini") 
08.
            z = NB.ActiveWorkbook.ActiveSheet.Range("C1").Value + 5 
09.
            NB.ActiveWorkbook.ActiveSheet.Range("E" & z).Value = TextBox1.Text 
10.
            NB.ActiveWorkbook.ActiveSheet.Range("F" & z).Value = TextBox2.Text 
11.
            NB.ActiveWorkbook.ActiveSheet.Range("B" & z).Value = TextBox3.Text 
12.
            NB.ActiveWorkbook.ActiveSheet.Range("C" & z).Value = TextBox4.Text 
13.
 
14.
            If CheckBox1.CheckState = CheckState.Checked Then 
15.
                NB.ActiveWorkbook.ActiveSheet.Range("D" & z).Value = "1" 
16.
            Else 
17.
                NB.ActiveWorkbook.ActiveSheet.Range("D" & z).Value = "0" 
18.
            End If 
19.
 
20.
            NB.Application.DisplayAlerts = False 
21.
            NB.ActiveWorkbook.Saved = True 
22.
            NB.ActiveWorkbook.SaveAs("C:\Data\Version.ini") 
23.
            NB.ActiveWorkbook.Close() 
24.
            NB.Application.DisplayAlerts = True 
25.
        End If 
26.
 
So funktiert es wie ich es wollte und keine Fehlermeldung entsteht mehr.

Komischerweise nach einbau der Application.DisplayAlerts = False funktioniert diese Version nicht mehr.

01.
            Dim fso As Object, vPath As String 
02.
 
03.
            vPath = "C:\\Data\Version.ini" 
04.
 
05.
            fso = CreateObject("Scripting.FileSystemObject") 
06.
 
07.
            With NB.ActiveWorkbook 
08.
                If fso.FileExists(vPath) Then .Save() Else .SaveAs(vPath) 
09.
                .Close() 
10.
                .Saved = True 
11.
            End With
ist aber ja nicht weiter tragisch


Zu Didi 1954 :

01.
 
02.
Die Klammern hinter Save, Close und Saved "..." gehören weg. Gibt sonst Debuggerfehler 
03.
 
Negativ, die setzt er automatisch. Man kann Sie gar nicht wegmachen , wenn man es erzwingt geht das Programmm auch nicht mehr. Frag mich jetzt nicht warum.


Und besonderen Dank an Xerebus, dein Beitrag war das Puzzle was gefehlt hat.

Danke

MfG Tino
Bitte warten ..
Mitglied: Cadsys-Chemnitz
01.04.2009 um 08:27 Uhr
PS:

Ach und natürlich kann man Sie als .ini speichern das ist Excel egal. Hab in der Datei Passwörter liegen und wollte das nicht so offensichtlich machen.

Ausserdem kann ich die Excel-Datei dann auch mit Passwort sichern sodas niemand so einfach an die Passwörter kommt und ich aber gut damit arbeiten kann.
Bitte warten ..
Mitglied: 76109
01.04.2009 um 09:06 Uhr
Hallo Cadsys-Chemnitz,

manchmal sieht man vor lauter Wald die Bäume nicht.

Der Fehler ist, dass der Close-Befehl natürlich erst nach dem
Saved = True stehen muss, sonst macht Saved keinen Sinn.
Display.Alerts wird nicht gebraucht

Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Microsoft Office
gelöst Excel: Einzelne Zeilen einer mehrzeiligen Zelle auslesen (3)

Frage von Booster07 zum Thema Microsoft Office ...

Microsoft Office
CSV-Converter deaktiviert Add-ins in Excel (2)

Frage von freeskierchris zum Thema Microsoft Office ...

VB for Applications
Excel Makro zum Suchen von Spalten und exportieren in CSV (3)

Frage von Raptox zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Hardware
Laptop ins Salzwasser gefallen (18)

Frage von Marcel94 zum Thema Hardware ...

Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (13)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Hardware
Lenovo Yoga 500 über angeschlossene USB Tastatur booten (13)

Frage von thomasreischer zum Thema Hardware ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...