In diesem Artikel erfahren Sie, wie Sie mit eine Skript in Excel Ihre Kollegen dazu auffordern den Projektstatus zu aktualisieren.

Hierzu lernen Sie folgende Schritte:

  • In Excel ein Skript hinzufügen
  • Eine Erinnerungen über Power Automate auslösen und Kollegen dazu auffordert, Projektstatus in einer Tabelle zu aktualisieren

Somit können Sie Ihr Projektmanagement optimieren und die Zusammenarbeit im Team verbessern

Office Skript Übungsaufgabe in Excel: Automatisierte Aufgaben Erinnerungen

In diesem Beispiel sind Sie verantwortlich für ein Projekt mit mehreren Mitarbeitern. Mithilfe eines Excel-Arbeitsblatts verfolgen Sie jeden Monat den Status Ihrer Mitarbeiter. Sie müssen die Leute oft daran erinnern, ihren Status anzugeben, deshalb haben Sie sich entschieden, diesen Erinnerungsprozess zu automatisieren.

Beschreibung:

In diesem Beispiel wird ein Office-Skript in einem Power Automate-Flow verwendet, um Erinnerungen an Kollegen zu senden, um den Status eines Projekts zu aktualisieren.

Voraussetzungen:

In diesem Beispiel werden Power Automate und Microsoft Teams verwendet. Sie müssen beide mit dem Konto verknüpfen, das Sie zum Entwickeln von Office-Skripten verwenden.

Sie erstellen einen Power Automate-Flow, um Personen mit fehlenden Statusfeldern eine Nachricht zu senden. Dazu entwickeln Sie ein Skript, das die Arbeit übernimmt. Das erste Skript ruft eine Liste von Personen mit leerem Status ab und das zweite Skript fügt der rechten Zeile eine Status hinzu.

Anleitung zum Aufbau:

1. Vorlage

Laden Sie die Vorlage herunter

task-reminders

2. Erstellen eines neuen Skripts

Öffnen Sie die heruntergeladene Arbeitsmappenvorlage

3. Office-Skripteditor

Benötigen wir ein Skript, um alle Mitarbeiter mit Statusberichten abzurufen, die in der Tabelle fehlen. Wählen Sie auf der Registerkarte „Automatisieren“ die Option „Neues Skript“ und fügen Sie das folgende Skript in den Editor ein.

/**
 * This script looks for missing status reports in a project management table.
 *
 * @returns An array of Employee objects (containing their names and emails).
 */
function main(workbook: ExcelScript.Workbook): Employee[] {
  // Get the first worksheet and the first table on that worksheet.
  let sheet = workbook.getFirstWorksheet()
  let table = sheet.getTables()[0];

  // Give the column indices names matching their expected content.
  const NAME_INDEX = 0;
  const EMAIL_INDEX = 1;
  const STATUS_REPORT_INDEX = 2;

  // Get the data for the whole table.
  let bodyRangeValues = table.getRangeBetweenHeaderAndTotal().getValues();

  // Create the array of Employee objects to return.
  let people: Employee[] = [];

  // Loop through the table and check each row for completion.
  for (let i = 0; i < bodyRangeValues.length; i++) {
    let row = bodyRangeValues[i];
    if (row[STATUS_REPORT_INDEX] === "") {
      // Save the email to return.
      people.push({ name: row[NAME_INDEX].toString(), email: row[EMAIL_INDEX].toString() });
    }
  }

  // Log the array to verify we're getting the right rows.
  console.log(people);

  // Return the array of Employees.
  return people;
}

/**
 * An interface representing an employee.
 * An array of Employees will be returned from the script
 * for the Power Automate flow.
 */
interface Employee {
  name: string;
  email: string;
}

4. Speichern des Skripts

Speichern Sie das Skript unter dem Namen ‚Get People‘.

5. Zweites Skript

Als nächstes benötigen wir ein zweites Skript, um die Statusberichtskarten zu verarbeiten und die neuen Informationen in die Tabelle einzufügen.  Wählen Sie im Aufgabenbereich des Code-Editors die Option „Neues Skript“ aus und fügen Sie das folgende Skript in den Editor ein.

/**
 * This script applies the results of a Teams Adaptive Card about
 * a status update to a project management table.
 *
 * @param senderEmail - The email address of the employee updating their status.
 * @param statusReportResponse - The employee's status report.
 */
function main(workbook: ExcelScript.Workbook,
  senderEmail: string,
  statusReportResponse: string) {

  // Get the first worksheet and the first table in that worksheet.
  let sheet = workbook.getFirstWorksheet();
  let table = sheet.getTables()[0];

  // Give the column indices names matching their expected content.
  const NAME_INDEX = 0;
  const EMAIL_INDEX = 1;
  const STATUS_REPORT_INDEX = 2;

  // Get the range and data for the whole table.
  let bodyRange = table.getRangeBetweenHeaderAndTotal();
  let tableRowCount = bodyRange.getRowCount();
  let bodyRangeValues = bodyRange.getValues();

  // Create a flag to denote success.
  let statusAdded = false;

  // Loop through the table and check each row for a matching email address.
  for (let i = 0; i < tableRowCount && !statusAdded; i++) {
    let row = bodyRangeValues[i];

    // Check if the row's email address matches.
    if (row[EMAIL_INDEX] === senderEmail) {
      // Add the Teams Adaptive Card response to the table.
      bodyRange.getCell(i, STATUS_REPORT_INDEX).setValues([
        [statusReportResponse]
      ]);
      statusAdded = true;
    }
  }

  // If successful, log the status update.
  if (statusAdded) {
    console.log(
      `Successfully added status report for ${senderEmail} containing: ${statusReportResponse}`
    );
  }
}

6. Speichern des Skripts

Speichern Sie das Skript unter dem Namen ‚Save Status‘.

7. Erstellen des Flows in Power Automate

Um einen Flow in Power Automate zu erstellen, führen Sie die folgenden Schritte aus:

1. Gehen Sie in Ihrem Webbrowser auf den Link https://make.powerautomate.com/.
2. Melden Sie sich bei Ihrem Microsoft-Konto an, falls Sie dies noch nicht getan haben.
3. Sobald Sie angemeldet sind, werden Sie zur Power Automate-Startseite weitergeleitet, wo Sie einen neuen Flow erstellen können, indem Sie auf der linken Seite des Bildschirms auf „Erstellen“ klicken. Sie können wählen, ob Sie einen neuen Flow aus einem leeren Element, einer Vorlage oder einem Connector erstellen möchten. Für diese Übung wählen Sie bitte „Instant Cloud Flow“.

8. Erstellen

Wählen Sie „Manuell einen Flow auslösen“ aus den Optionen und wählen Sie „Erstellen“.

9. Flow-Anruf

Der Flow muss das Skript „Personen abrufen“ aufrufen, um alle Mitarbeiter mit leeren Statusfeldern abzurufen.

Wählen Sie Neuer Schritt und dann Excel Online (Business) aus. Wählen Sie unter Aktionen die Option Skript ausführen aus. Geben Sie die folgenden Einträge für den Flow-Schritt an: Speicherort: OneDrive for Business Dokumentbibliothek: OneDrive Datei: task-reminders.xlsx (Auswahl über den Dateibrowser) Skript: Get People

10. Prozess

Als nächstes muss der Flow jeden Mitarbeiter in dem vom Skript zurückgegebenen Array verarbeiten.  Wählen Sie „Neuer Schritt“ aus, suchen Sie nach „Adaptive Karte posten, warten Sie auf eine Antwort“ und wählen Sie die Aktion „Microsoft Teams-Connector“ aus.

11. Adaptive Karte

Für das Senden einer adaptiven Karte muss der JSON-Code der Karte als Nachricht angegeben werden. Mit dem Adaptive Card Designer können Sie benutzerdefinierte Karten erstellen. Verwenden Sie für dieses Beispiel den folgenden JSON.

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "1.0",
  "body": [
    {
      "type": "TextBlock",
      "size": "Medium",
      "weight": "Bolder",
      "text": "Update your Status Report"
    },
    {
      "type": "Image",
      "altText": "",
      "url": "https://i.imgur.com/f5RcuF3.png"
    },
    {
      "type": "TextBlock",
      "text": "This is a reminder to update your status report for this month's review. You can do so right here in this card, or by adding it directly to the spreadsheet.",
      "wrap": true
    },
    {
      "type": "Input.Text",
      "placeholder": "My status report for this month is...",
      "id": "response",
      "isMultiline": true
    }
  ],
  "actions": [
    {
      "type": "Action.Submit",
      "title": "Submit",
      "id": "submit"
    }
  ]
}

12. Empfängerfeld

Fügen Sie für das Feld „Empfänger“ eine E-Mail aus dem dynamischen Inhalt hinzu (die Auswahl wird durch das Excel-Logo gekennzeichnet). Durch das Hinzufügen einer E-Mail wird der Flow-Schritt von einem „Auf jeden Block anwenden“ umgeben. Das bedeutet, dass das Array von Power Automate iteriert wird.

13. Füllen Sie die restlichen Felder aus

Füllen Sie die restlichen Felder wie folgt aus: Beitrag als: Flow Bot Beitrag in: Chat mit Flow Bot Aktualisierungsnachricht: Vielen Dank für die Übermittlung Ihres Statusberichts.

Ihre Antwort wurde erfolgreich zur Tabelle hinzugefügt.

14. Aktion hinzufügen

Wählen Sie im Block „Auf jeden anwenden“ der Karte „Adaptiv posten und auf eine Antwort warten“ die Option „Aktion hinzufügen“ aus. Wählen Sie Excel Online (Business). Wählen Sie unter Aktionen die Option Skript ausführen aus. Geben Sie die folgenden Einträge für den Flow-Schritt an:

Speicherort: OneDrive for Business
Dokumentbibliothek: OneDrive
Datei: task-reminders.xlsx (Auswahl über den Dateibrowser)
Skript: Status speichern senderEmail: E-Mail (dynamischer Inhalt aus Excel)
statusReportResponse: Antwort (dynamischer Inhalt von Teams)

15. Speichern Sie den Prozess

 

Prozess:

Jedes Unternehmen, das auf Projektmanagement und Zusammenarbeit angewiesen ist, kann von automatisierten Aufgabenerinnerungen profitieren. Dazu gehören Softwareentwicklungsteams, Marketingteams, Projektmanager und mehr. Durch das Versenden rechtzeitiger Erinnerungen zur Aktualisierung des Projektstatus tragen Sie dazu bei, dass Projekte auf Kurs bleiben, Fristen eingehalten werden und Teams aufeinander abgestimmt bleiben.

Benötigen Sie einen VBA Programmierer?

Wir als exact construct programmieren mit einem Team von rd. 20 Mitarbeitern seit über 10 Jahren Excel-Tools. Wir sind ein Nischenanbieter der spezialisiert auf Makros/VBA-Codes ist. Daneben unterstützen wir auch als 3rd Level Support die IT-Abteilungen rund um Probleme bei MS Office (Excel, Word, PowerPoint, etc.).
Haben Sie ein Excel-Problem? Benötigen Sie einen Makro-Programmierer? Rufen Sie uns unverbindlich an +41 52 511 05 25 oder kontaktieren Sie uns via Kontaktformular.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen