Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

vba eigene speicherroutine

Empfohlene Antworten

hi, weiss dass man in vba eine eigene speicherroutine schreiben kann indem man einfach die funktion filesave bzw. filesaveas einbaut. nun möchte ich aber die word eigene speicherfunktion verwenden und darüberhinaus etwas einbauen.

das ganze soll so ablaufen:

speichern (word eigen)

und danach ein logfile füllen.

gibts da ne möglichkeit das zu realisieren??

Hier ne kleine Anregung:


Dim WithEvents m_oSave As CommandBarButton


Private Sub Document_New()


  Dim oCommandBar As CommandBar

  Dim oCmd As CommandBarButton


  Set oCommandBar = Application.CommandBars("Standard")


  For Each oCmd In oCommandBar.Controls

    If oCmd.ID = 3 Then

      Set m_oSave = oCmd

      Exit For

    End If

  Next oCmd


End Sub


Private Sub m_oSave_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)


  'Logfile schreiben

  Call SaveAs


End Sub

So in etwa gehts, ist aber nicht sehr sauber, halt nur n Hack!!!

Gruß

Diablo999

goodness!

danke. das ist echt geniale ware. spitzenbeitrag. ich bedanke mich untertänigst!

danke, danke danke danke

jetzt gibts nur noch eine frage: wo stehen denn diese ids? und welche id hat "speichern unter". denn dafür muss es ja auch funktionieren.

ich danke nochmals

ok 748 is die id für speichern unter... aber das grosse problem ist, dass wenn ich ein neues dokument erzeuge und über den o.g. code speichere ich beim speichern erstmal nicht gefragt werde unter was gespeichert werden soll, sondern es wird einfach zuerst automatisch gespeichert. erst danach kann ich den speicherort auswählen, aber das aktuelle dok. ist schon gespeichert..

bei nur speichern klappt alles gut..

noch ne ahnung?

nee, sorry nochmal: also wenn ich das richtig sehe werden zwar die speichern menüeinträge so modifiziert, dass gespeichert wird und danach noch was anderes passiert.

die normale "speicherlogik" von word wird aber nicht berücksichtigt. es wird also immer einfach über "call filesave" gespeichert egal ob das dok. noch neu ist und erstmal ein pfad ausgewählt werden muss oder ob man über speichern unter... speichert...

In dem Beispiel überlade ich ja nur den Speichernbutton, ds hast du

ja soweit kapiert! Die Menüeinträge funktionieren so ähnlich, weiß ich etz net

auswendig...

Jedenfalls kannst du sowohl Save als auch SaveAs überladen, indem

dazu die richtigen einträge findest, bei SaveAs musst du natürlich

auch die passende Methode "SaveAs" vom Dok ausführen...

Diablo999

Wenn du noch Fragen hast immer raus damit, hab aber heut keine Zeit

mehr des ausführlicher zu schreiben...

so, vielen dank für deine mühe. hab nochmal nachgedacht und dann den unten stehenden code geschrieben.

jetzt is es ok. der knackpunkt war das << if activedocument.path = "" >> im speichern modus. dann is das dokument nämlich neu. wenn nicht dann muss filesaveas ausgeführt werden.

und die von mir angesprochene "windows-interne logik zum speichern" übernimmt ja dann der dialog.

und neben dem speichern kann ich dann mein loggen einbauen...

danke auf jeden fall!

Sub FileSave()

If ActiveDocument.Path = "" Then 'dok ist neu

FileSaveAs

Else

ActiveDocument.Save

End If

End Sub

Sub FileSaveAs()

Dim retVal, retName

ChangeFileOpenDirectory (glblStandardDocPfad)

With Dialogs(wdDialogFileSaveAs)

retVal = .Display

retName = .name

End With

If retVal = -1 Then

ActiveDocument.SaveAs (retName)

End If

Call writeExcelLog

End Sub

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.