Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

NAV Addin Intervallautomatisierung

Forumthread: NAV Addin Intervallautomatisierung

NAV Addin Intervallautomatisierung
17.08.2021 15:36:19
RHag
Hallo werte Com,
wir nutzen das COM Addin „Microsoft Dynamics NAV Add-in“. Exportierte Daten können hiermit durch einen Button „refreshed“ werden.
Ich bin VBA seitig nicht sonderlich bewandert, daher wende ich mich an Euch.
Ich benötige ein Skript wo das Addin bzw der Refresh Button im Intervall automatisiert ausgelöst wird.
Wenn ich den Vorgang aufzeichne, kommt für mich leider nichts Verständliches bei rum.

Sub Makro1()
' Makro1 Makro
ActiveWorkbook.Names("ConnectionInfo").Delete
ActiveWorkbook.Names.Add Name:="ConnectionInfo", RefersToR1C1:= _
"=Sheet1!R1C1:R1C11"
ActiveWorkbook.Names("ObjectInfo").Delete
ActiveWorkbook.Names.Add Name:="ObjectInfo", RefersToR1C1:= _
"=Sheet1!R2C1:R2C11"
ActiveWorkbook.Names("ConnectionInfo").Delete
ActiveWorkbook.Names.Add Name:="ConnectionInfo", RefersToR1C1:= _
"=Sheet1!R1C1:R1C11"
ActiveWorkbook.Names("ObjectInfo").Delete
ActiveWorkbook.Names.Add Name:="ObjectInfo", RefersToR1C1:= _
"=Sheet1!R2C1:R2C11"
With ActiveWorkbook.Worksheets("Sheet1").ListObjects("NavDataRegion").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.ListObjects("NavDataRegion").AutoFilter.ApplyFilter
Selection.AutoFilter
ActiveSheet.ListObjects("NavDataRegion").Resize Range("$A$3:$K$5")
Range("I13").Select
Selection.ListObject.ListRows(1).Delete
Selection.AutoFilter
End Sub
Sollte der Speicherort des Makros hilfreich sein: C:\Program Files (x86)\Microsoft Dynamics NAV\90\RoleTailored Client\Microsoft.Dynamics.Nav.ExcelAddIn.vsto|vstolocal
Beste Grüße
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: NAV Addin Intervallautomatisierung
17.08.2021 22:56:58
Yal
Hallo R,
ohne das passenden Grundwissen wird es schwierig zu unterstützen. Wir können nur etwas "blind" vorschlagen, mit einer sehr hohen Wahrscheinlichkeit, dass es nicht passt. Aber "geholfen" bist Du nur, wenn es auf Anhieb funktioniert.
Im Prinzip hast Du im Mitte des Konstrukt eine "ListObject", was auch als "intelligente Tabelle" bezeichnet wird. Diese Tabelle können selber eingerichtet (Strg+t) oder auf Grund einer Datenbank-Abfrage entstehen. Im zweiten Fall ist an dem ListObject eine QueryTable angebunden. Diese muss so eingerichtet, dass sie sich im regelmässigen Abstand selbst "refresht", spricht, wenn der Eigenschaft RefrechPeriod auf eine Wert ungleich null gesetzt wird.
https://docs.microsoft.com/de-de/office/vba/api/excel.listobject.querytable
Mit VBA sieht es so aus:

Sub AutoRefresh_setzen()
Dim QT As QueryTable
On Error Resume Next
Set QT = ActiveSheet.ListObjects("NavDataRegion").QueryTable
If Not QT Is Nothing Then QT.RefreshPeriod = 5 'setzt der Refresh-Rythmus auf 5 Minuten
End Sub
Das Parameter kann aber auch per Hand gesetzt werden:
wenn irgendeine Zelle in Bereich A3:K5 ausgewählt ist, erscheint eine Zusatzmenü "Tabellentools"/"Entwurf". Darin ist eine Schaltfläche "Aktualisieren" mit im unteren Teil ein Dropdown. Darin "Verbindungeigenschaften". Auswahl "Aktualisierung alle" aktivieren und eine Wert eintragen (Default 60 Minuten).
VG
Yal
Anzeige
;
Anzeige

Infobox / Tutorial

Automatisierung des NAV Add-ins im Excel


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Neues Modul erstellen: Klicke mit der rechten Maustaste auf „VBAProject (DeinWorkbookName)“ und wähle Einfügen > Modul.

  3. Makro einfügen: Kopiere das folgende VBA-Skript und füge es in das Modul ein. Dieses Skript sorgt dafür, dass das NAV Add-in alle 5 Minuten aktualisiert wird:

    Sub AutoRefresh_setzen()
       Dim QT As QueryTable
       On Error Resume Next
       Set QT = ActiveSheet.ListObjects("NavDataRegion").QueryTable
       If Not QT Is Nothing Then QT.RefreshPeriod = 5 'setzt der Refresh-Rhythmus auf 5 Minuten
    End Sub
  4. Makro speichern: Speichere das Excel-Dokument als Makro-fähige Arbeitsmappe (*.xlsm).

  5. Makro ausführen: Du kannst das Makro manuell ausführen oder es in eine Schaltfläche einbinden, um die Intervallautomatisierung zu aktivieren.


Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden":

    • Stelle sicher, dass die Tabelle „NavDataRegion“ in deinem Arbeitsblatt existiert. Du kannst dies überprüfen, indem du das Tabellenblatt ansiehst und die Tabelle entsprechend benennst.
  • Fehler: Makro funktioniert nicht:

    • Prüfe die Sicherheitseinstellungen in Excel unter Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen. Stelle sicher, dass die Ausführung von Makros erlaubt ist.

Alternative Methoden

  • Manuelles Aktualisieren: Du kannst die Tabelle auch manuell aktualisieren, indem du auf die Schaltfläche „Aktualisieren“ im Menü „Tabellentools“ gehst. Dies kann besonders nützlich sein, wenn du nicht möchtest, dass die Daten automatisch aktualisiert werden.

  • Verwendung von Power Query: Wenn du das Dynamics NAV Excel Add-in verwendest, kannst du auch Power Query nutzen, um Daten zu importieren und zu aktualisieren. Hierbei kannst du die Abfrageeigenschaften so einstellen, dass sie in regelmäßigen Intervallen aktualisiert wird.


Praktische Beispiele

  1. Erstellen einer intelligenten Tabelle:

    • Markiere deinen Datenbereich und drücke Strg + T, um eine Tabelle zu erstellen. Benenne die Tabelle in „NavDataRegion“, damit das Makro korrekt funktioniert.
  2. Daten aus Dynamics NAV importieren:

    • Verwende das microsoft dynamics nav add-in excel download, um Daten aus deinem Dynamics NAV-System zu importieren. Achte darauf, dass die Tabelle korrekt benannt ist, um die Automatisierung zu ermöglichen.

Tipps für Profis

  • Verwende Kommentarzeilen im VBA: Dies hilft dir, den Code besser zu verstehen und später Anpassungen vorzunehmen. Beispiel:

    ' Setze den Refresh-Rhythmus für die Tabelle
  • Teste die Skripte in einer Kopie deiner Arbeitsmappe: Damit vermeidest du, dass ungewollte Änderungen an deiner Originaldatei vorgenommen werden.


FAQ: Häufige Fragen

1. Wie kann ich das Intervall für die Aktualisierung ändern?
Du kannst den Wert in der Zeile QT.RefreshPeriod = 5 anpassen. Setze ihn auf die gewünschte Anzahl an Minuten.

2. Wo finde ich das dynamics nav excel add-in?
Das Add-in kann in der Regel über den Microsoft Dynamics NAV-Client installiert werden. Überprüfe die Add-in-Installation und lade es gegebenenfalls aus dem Dynamics NAV Forum herunter.

3. Was mache ich, wenn das Makro nicht funktioniert?
Überprüfe die Tabelle auf korrekte Benennung und stelle sicher, dass die Makros in Excel aktiviert sind. Teste das Skript in einer neuen Arbeitsmappe, um Konflikte auszuschließen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige