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

VBA Excel: Sub FileSaveAs() - Überschreibt die Methode nicht

Frage Entwicklung VB for Applications

Mitglied: Interspirit

Interspirit (Level 1) - Jetzt verbinden

08.03.2007, aktualisiert 09.03.2007, 9924 Aufrufe, 11 Kommentare

Hallo zusammen,

habe ein VBA-Projekt (Excel 2002 Deutsch) in dem ich die Methode

Sub FileSaveAs()
...
...
End Sub

einfüge, um zu bestimmen was passieren soll, wenn ich auf "Datei/Speichern unter" klicke. Hab schon sehr intensiv gegoogelt und irgendwie funktioniert das bei allen einwandfrei nur bei mir nicht.
Bei mir kommt weiterhin der ganz "normale" Speichern-Unter Dialog. Habe folgendes ausprobiert:

Sub FileSaveAs()
MsgBox "Test"
End Sub

Public Sub FileSaveAs()
MsgBox "Test"
End Sub

Hab auch schon "Sub DateiSpeichernUnter()" versucht, nichts geht. Er öffnet immer den Standard-Dialog.

Habe in dem Projekt ein Modul in dem ich diese Methode neu definiere...

Kann mir jemand helfen?

Vielen Dank im Voraus )

MFG
Tom
Mitglied: Diskilla
08.03.2007 um 09:27 Uhr
Ähm.....
Vielleicht solltest du erklären was du ANSTATT des "normalen" Speichern unter Dialogs willst. Für mich sieht das nämlich so aus, dass du genau den aufrufst und sonst nix.
Gib doch ma bitte nen Tip
Bitte warten ..
Mitglied: Interspirit
08.03.2007 um 09:39 Uhr
Hi du...
Danke für deine Antwort!

Nein, will einen Wert vorgeben, wie die zu speichernde Datei heißen soll

Sub FileSaveAs()

With Dialogs(wdDialogFileSaveAs)
.Name = "xxx.xls"
.Format = wdFormatDocument
.Show
End With

End Sub

Hilft dir das weiter?
Bitte warten ..
Mitglied: Biber
08.03.2007 um 10:14 Uhr
Moin Interspirit,

tjy, so schonend wie möglich:
Obwohl VBA aus dem Hause des sympathischen Weltmarktführers höchstselbst kommt, ist es nicht so ganz richtig objektorientiert, klassen- und methodentauglich.

Das Geraffel, was dort hinterlegt werden kann, sind halt letzten Endes Funktionen und Prozeduren, wie man/frau das halt von einem BASIC-Enkel erwarten kann.

Als nix mit vererbten oder überschriebenen Methoden.
Vielleicht unter 512-Bit-Architektur mal.... aber jetzt nicht.

-->Konsequenz:
Entweder diese Function MyFileSaveAs() nenne und auch so aufrufen, oder, wenn sie denn auch nostalgischen oder ästhetischen Gründen FileSaveAs() heißen soll, dann beim Aufruf den Präfix "Modul1." (oder wo sie drin ist) voranstellen.

Gruss
Biber
Bitte warten ..
Mitglied: Interspirit
08.03.2007 um 10:43 Uhr

-->Konsequenz:
Entweder diese Function MyFileSaveAs() nenne und auch so aufrufen, oder, wenn sie denn auch nostalgischen oder ästhetischen Gründen FileSaveAs() heißen soll, dann beim Aufruf den Präfix "Modul1." (oder wo sie drin ist) voranstellen.


Hallo,

danke für deine Antwort!

Du meinst quasi ich soll die Funktion FileSaveAs so aufrufen?

Modul1.FileSaveAs() ??

Das Problem ist nur, ich rufe die Funktion gar nicht explizit auf. Sie wird ja automatisch ausgeführt sobald ich auf Speichern-Unter klicke...

Oder verstehe ich dich jetzt falsch?!
Bitte warten ..
Mitglied: Biber
08.03.2007 um 10:51 Uhr
Nein, Du verstehst mich schon richtig.
Das Problem ist nur, ich rufe die Funktion gar nicht explizit auf
Dann ist es schwierig....

Dann wäre der (theoretische) Weg IMHO:
Um zu verhindern, dass die Funktion/"Methode" FileSaveAs() aus dem Modul "Visual Basic for Applications" als erstes, als Standard aufgerufen wird, müsste unter Extras->Verweise als allerallererstes ein Modul angegeben sein, das eine Function FileSaveAs() mit den gleichen Aufrufkonventionen enthält.

Ist zwar auch kein Hexenwerk, aber im Verhältnis doch so aufwändig, dass ich mir die Aufwand/Nutzen-Relation noch mal in Ruhe angucken würde.

[Ist aber nur mein Kenntnisstand - vielleicht geht es auch vieeeeeeeeeeel stressärmer. Weitere Kommentare abwarten.]

Gruss
Biber
Bitte warten ..
Mitglied: Biber
08.03.2007 um 10:51 Uhr
--
Bitte warten ..
Mitglied: Interspirit
08.03.2007 um 10:59 Uhr
Der Clou ist ja dass es die Funktion "FileSaveAs" schon gibt.
Diese wird aufgerufen wenn ich "Datei/'Speichern Unter" klicke. In dieser Funktion wird dann dieser Speichern-Dialog aufgerufen.

Wenn ich diese Funktion neu definiere (genau der Name wie es sie schon gibt) wird sie überschrieben und meine Funktion ausgeführt.

Nun ja, hab wie gesagt schon intensiv gegoogelt und es gibt haufenweise menschen die das so praktizieren. Bei mir funktionierts eben nicht.

Vielleicht hab ich die Funktion an falscher Stelle definiert?! (Das war mein erster Gedanke)
Weiß aber nicht wo ich das sonst definieren sollte... Hmmm
Menno
Bitte warten ..
Mitglied: bastla
08.03.2007 um 14:38 Uhr
Hallo Interspirit!

Anscheinend hat das schon einmal jemand geschafft - siehe hier ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
08.03.2007 um 15:12 Uhr
@bastla

Das ist allerdings viel einfacher, als ich befürchtet hatte.
Wieder was gelernt...

Gruss
Biber
Bitte warten ..
Mitglied: bastla
08.03.2007 um 15:15 Uhr
@Biber

Ich kannte das bisher auch nur für Word ...

Grüße
bastla
Bitte warten ..
Mitglied: Interspirit
09.03.2007 um 13:10 Uhr
Hallo Bastla,

vielen Dank für deinen Hinweis - werd das dann doch gleich mal testen!
Da hätt ich ewig in die falsche Richtung gesucht!

Merci nochmal )
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(3)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
gelöst Verschieben von Zellinformation in andere Spalte (per VBA) excel 2010 (5)

Frage von thomas1972 zum Thema Microsoft Office ...

VB for Applications
Bilder vom LDAP in VBA - Excel (3)

Frage von Roadrunner777 zum Thema VB for Applications ...

VB for Applications
gelöst VBA Excel Recordset - Abfrage auf SQL-Server (4)

Frage von Aximand zum Thema VB for Applications ...

VB for Applications
Excel VBA Sortierung von Daten (5)

Frage von easy4breezy zum Thema VB for Applications ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...