Praxiswissen · Praxisleitfaden

Excel mit VBA validieren: Code, Testdaten und Versionskontrolle

Ein Makro kann in Sekunden tausende Werte verarbeiten – und dabei einen falschen Bezug oder eine ungeeignete Rundungsregel unbemerkt weitergeben. Bei der Validierung von Excel mit VBA geht es deshalb um den nachgewiesenen Ablauf vom Eingang der Daten bis zum verwendbaren Ergebnis. Dieser Leitfaden zeigt, wie Sie Codeänderungen abgrenzen, unabhängige Testdaten auswählen und Programmversion, Arbeitsmappe sowie Ergebnisdatensatz nachvollziehbar verbinden. Ein konkretes Rundungsbeispiel macht die Prüfung greifbar.

Inhaltsverzeichnis

Das Wichtigste vorab

Wie validiert man Excel mit VBA?

Für Excel mit VBA im GMP-Einsatz definieren Sie Verwendungszweck, fachliche Regeln und Fehlerfolgen. Identifizieren Sie den geprüften Code-, Datei- und Umgebungsstand. Verbinden Sie Code-Review mit nachvollziehbaren Tests für Normalfälle, Grenzen, falsche Eingaben und Abbruch. Dokumentieren Sie Ergebnisse, Abweichungen und Freigabe. Eine Makrosignatur oder erfolgreiche Ausführung allein belegt weder fachliche Richtigkeit noch einen kontrollierten Betrieb.

  • Der Prüfgegenstand ist der fachliche Ablauf einschließlich VBA, Formeln, Datenquellen und Umgebung.
  • Unabhängige Sollwerte und gezielte Grenzfälle machen Codefehler sichtbar.
  • Programmfreigabe, Makrosicherheit und Prüfung des einzelnen Ergebnisses sind unterschiedliche Aufgaben.
  • Jede relevante Änderung braucht einen nachvollziehbaren Stand und eine begründete Testauswahl.

Wann gehört VBA zur Excel-Validierung?

Ein Makro kann Werte berechnen, Dateien importieren, Datensätze aussortieren, Freigaben vorbereiten oder Berichte exportieren. Prüfen Sie deshalb zuerst den vollständigen Ablauf: Welche Daten kommen herein, welche Entscheidungen trifft der Code, und welches Ergebnis wird anschließend verwendet? Auch eine scheinbar einfache Sortierfunktion kann die Zuordnung von Probe und Ergebnis verändern.

Die EMA nennt für GMP-Spreadsheets mit individuellem Code ausdrücklich die Validierung nach Annex 11; VBA ist ihr Beispiel. Daraus folgt keine pauschale Pflicht für jede Bürodokumentation. Innerhalb der GMP-Anwendung bestimmen Verwendungszweck und Risiko die Prüfungstiefe. Ein Formatierungsmakro und eine Berechnung zur Qualitätsentscheidung haben unterschiedliche Fehlerfolgen.

Dieser Leitfaden vertieft Excel mit VBA im pharmazeutischen GMP-Umfeld. Die FDA-Quellen betreffen Arzneimittel-CGMP, sofern dieser Bereich für Ihren Prozess einschlägig ist. Die folgenden Prüfschritte sind praktische Umsetzungsvorschläge; sie ersetzen keine Festlegung Ihres konkreten Anwendungsumfangs.

Quellen: [1] [2] [4]

Programmversion, Vorlage und Ergebnisdatensatz auseinanderhalten

Die Bezeichnung „Version 2“ reicht nicht, wenn verschiedene Dateien denselben Namen tragen. Definieren Sie einen freigegebenen Stand aus Arbeitsmappe, VBA-Projekt und relevanter Konfiguration. Verknüpfen Sie ihn mit Änderungsgrund, Prüfung und Freigabe. Ein konkreter Analysevorgang erhält zusätzlich eine eigene Datensatzkennung; hundert ausgefüllte Kopien sind nicht hundert Softwareversionen.

Eine mögliche Logik lautet: Vorlage V1.0 ist freigegeben; V1.1-RC1 ist ein Prüfkandidat; V1.1 ist die daraus freigegebene Auslieferung. Eine Änderung während der Prüfung erhält einen neuen Kandidatenstand. Nummerierung allein schützt nichts: Zugriff, Ablage und Zuordnung müssen den Wechsel nachvollziehbar machen.

Empfohlener Inhalt eines eindeutig zuordenbaren VBA-Freigabepakets
BestandteilFestzuhaltenPraktischer Nachweis
ArbeitsmappeDateistand, Blätter, Formeln, Namen und EinstellungenKontrollierte Originaldatei; eindeutige Releasekennung
VBA-ProjektModule, Formulare, Referenzen und CodeänderungCodevergleich plus Zuordnung zur tatsächlich geprüften Datei
UmgebungExcel-Build, Betriebssystem, Office-Bitness, relevante Add-insUmgebungsprotokoll des Tests; vereinbarter Betriebsumfang
PrüfgrundlageAnforderungen, Testdaten, unabhängige SollwerteVersionierte Testfälle, Ergebnisse, Abweichungen und Review
ErgebnisdatensatzVorgangskennung, Eingaben, Programmstand und BearbeitungZusammenhängende Aufzeichnung mit fachlicher Bewertung

Quellen: [3] [1] [12]

Fachliche Regeln vor dem Code-Review festlegen

Beschreiben Sie eine Berechnung ohne VBA: erlaubte Eingaben, Einheiten, Rechenschritte, Rundungszeitpunkt, Grenzwerte und Verhalten bei fehlenden Daten. Sonst bestätigt der Test lediglich, dass der Code das tut, was er bereits tut. Erwartete Ergebnisse sollten aus der freigegebenen Rechenvorschrift unabhängig hergeleitet werden.

Im Code-Review prüfen Sie anschließend die Umsetzung: Werden Arbeitsmappe und Tabellenbereich eindeutig angesprochen? Bleiben Probenkennungen beim Sortieren verbunden? Was geschieht bei zusätzlichen Zeilen, leeren Importdateien oder einem anderen aktiven Blatt? Diese Fragen sind eigene Prüfvorschläge und werden nach dem tatsächlichen Datenfluss ausgewählt.

Option Explicit hilft, nicht deklarierte Variablen beim Kompilieren zu erkennen. Das entdeckt jedoch keine fachlich falsche Einheit und keinen vertauschten Bezug auf zwei gültige Variablen. Codeprüfung und Ausführung mit gezielten Testdaten ergänzen sich; ein fehlerfreier Compile-Lauf ist kein Nachweis korrekter Ergebnisse.

Quellen: [2] [13]

Beispiel: Eine Rundungsänderung gezielt prüfen

Illustratives Beispiel: Ein Makro berechnet aus zwei positiven Werten A und B den Quotienten A/B. Für diesen Beispielprozess wird festgelegt: B muss größer als null sein; das Ergebnis wird einmal am Ende auf eine ganze Zahl gerundet; genau halbe Werte werden aufgerundet. Diese Vorgabe ist eine gewählte Beispielregel, keine allgemeine GMP-Rundungsregel.

Version R1 verwendet VBA Round. Microsoft beschreibt dafür Banker's Rounding: Ein halber Wert wird zur nächsten geraden Zahl gerundet. Bei 5/2 liegt damit genau der kritische Fall vor. Der Kandidat R2 soll die festgelegte Beispielregel umsetzen. Die Auswahl einer anderen Funktion muss sich an dieser Anforderung orientieren; eine Microsoft-Empfehlung ersetzt die fachliche Entscheidung nicht.

Die Sollwerte der folgenden Matrix wurden unabhängig mit Dezimalarithmetik geprüft. Die Arbeitsmappe wurde hier nicht ausgeführt. R1 und R2 sind fiktive Beispielstände. U1 bezeichnet die vor Durchführung vollständig zu dokumentierende Desktop-Testumgebung; U1 ist keine behauptete Excel-Version. Ist-Ergebnis, Ausführungsdatum und Tester kommen erst bei der tatsächlichen Prüfung hinzu.

Quellen: [5] [2]

Testmatrix für Codeänderung und unveränderte Funktionen

Prüfen Sie zuerst, ob der ausgewählte Test den Unterschied zwischen R1 und R2 überhaupt sichtbar macht. Ein Vergleich nur mit 7/2 würde beide Rundungsregeln mit dem Ergebnis 4 passieren lassen. Ergänzen Sie danach Grenzfälle und Fehlerpfade; die folgende Matrix ist ein Ausgangspunkt, kein vollständiger Validierungsplan.

Illustrative Testmatrix: Rundungsänderung und sichere Ergebnisbereitstellung
Version / UmgebungTestdaten oder EreignisErwartetes ErgebnisReview-Schwerpunkt
R1 / U1A=5; B=2Fachliches Soll 3; VBA-Round-Verhalten 2 macht die Abweichung sichtbarTest erkennt den bekannten Unterschied
R2 / U1A=5; B=23 nach der festgelegten BeispielregelNeuer Code erfüllt die geänderte Anforderung
R2 / U1A=7; B=24Unveränderter Fall bleibt korrekt
R2 / U1A=249 bzw. 251; B=1002 bzw. 3Werte beiderseits der Rundungsgrenze
R2 / U1B=0, leer oder TextEingabe zurückweisen; kein verwendbares neues ErgebnisKeine stille Ersetzung und kein altes Ergebnis als neu
R2 / U1Abbruch vor Abschluss; danach erneuter StartUnvollständigen Lauf erkennen; sauberer NeustartKeine Vermischung von Teilergebnissen
R2 / U1Zielablage ohne SchreibrechtSpeicherfehler sichtbar; keine ErfolgsmeldungExportstatus stimmt mit vorhandener Datei überein
R2 / U1, Makros blockiertDatei öffnen und Berechnung anfordernKeine erfolgreiche Makroausführung behauptenÖffnen der Datei nicht als Verarbeitung werten

Quellen: [5] [6] [1] [10]

Fehlereingaben und Abbruch dürfen keine plausiblen Altwerte liefern

Ein sinnvoller Negativtest beginnt mit einem erfolgreichen Lauf und erzeugt danach einen Fehler. Bleibt die alte Ergebniszelle sichtbar, muss der Benutzer ihren Status eindeutig erkennen können. Bestehende Aufzeichnungen werden dabei nicht gelöscht; der neue fehlgeschlagene Versuch darf nur nicht als erfolgreiches neues Ergebnis erscheinen.

On Error Resume Next kann die Ausführung nach einem Laufzeitfehler fortsetzen. Das ist nicht grundsätzlich falsch, verlangt aber eine passende Prüfung und Behandlung des Fehlers. Eine pauschale Fortsetzung bis zur Erfolgsmeldung kann beispielsweise einen fehlgeschlagenen Import überdecken. Prüfen Sie deshalb auch den Fehlerpfad nach dem ersten geschriebenen Wert.

Verändert der Code Application.EnableEvents oder den Berechnungsmodus, gehört die kontrollierte Wiederherstellung des vorherigen Zustands in das Design. Prüfen Sie normale Beendigung und behandelte Fehler. Ein Prozessabsturz kann solche Aufräumlogik verhindern; dafür braucht es einen erkennbaren unvollständigen Lauf und einen geregelten Wiederanlauf. Abhängige Formeln sollten vor dem Ergebnisexport nachweislich den aktuellen Datenstand verwenden.

Quellen: [6] [7] [8] [4]

Makrosicherheit und Signatur beweisen keine Rechenkorrektheit

Die IT legt fest, welcher Code ausgeführt werden darf. Microsoft beschreibt für Office unter Windows eine vom Herkunfts- und Vertrauensstatus sowie von Richtlinien abhängige Makroblockierung. Eine blockierte Datei muss im vorgesehenen Arbeitsablauf erkennbar unbenutzbar für die Makroverarbeitung sein. Sicherheitsregeln sollten nicht pauschal gelockert werden, um einen Test zum Laufen zu bringen.

Eine VBA-Projektsignatur schützt die Aussage über den signierten Codestand, nicht die Richtigkeit der Berechnung. Bei Codeänderungen wird die Signatur entfernt; ist das gültige zuvor verwendete Zertifikat auf dem Rechner vorhanden, kann das Projekt beim Speichern automatisch neu signiert werden. „Die Datei ist signiert“ ist deshalb kein ausreichender Vergleich mit der freigegebenen Version.

Trennen Sie drei Entscheidungen: Darf der Code starten? Ist genau dieser Programmstand fachlich freigegeben? Wurde der einzelne Ergebnisdatensatz geprüft? Die Makrosignatur beantwortet nicht automatisch alle drei Fragen und ersetzt keine elektronische Freigabesignatur des Datensatzes.

Quellen: [10] [9] [2]

Desktop, Office-Bitness und Abhängigkeiten berücksichtigen

Excel im Web kann VBA-Makros weder erstellen noch ausführen oder bearbeiten. Eine Makrodatei lässt sich dort trotzdem öffnen und bearbeiten. Prüfen Sie deshalb, wie Benutzer zur vorgesehenen Desktop-Ausführung gelangen und wie eine bloß geöffnete Datei von einem abgeschlossenen Makrolauf unterschieden wird.

Bei Windows-API-Aufrufen können Unterschiede zwischen 32- und 64-Bit-Office relevant sein. Microsoft weist darauf hin, dass PtrSafe allein nicht genügt: Zeiger, Handles und zugehörige Deklarationen müssen passen. Daraus folgt keine pauschale Änderungspflicht für jedes Makro. Ermitteln Sie zuerst, ob solche Aufrufe oder andere Architekturabhängigkeiten vorliegen.

Weitere eigene Prüffragen betreffen Dezimaltrennzeichen im Import, Bibliotheksreferenzen, Add-ins und Netzwerkpfade. Legen Sie unterstützte Kombinationen fest und begründen Sie die Testauswahl. Eine unüberschaubare Vielfalt an Arbeitsplatzkonfigurationen kann mehr Aufwand verursachen als die eigentliche Rechenänderung.

Quellen: [11] [12] [2]

Freigabe, spätere Änderungen und Aufwand im KMU planen

Für ein überschaubares Projekt sollte der Fachbereich Rechenvorschrift, Beispieldaten und Grenzfälle bereitstellen. Ein Codeverantwortlicher erklärt Implementierung und Abhängigkeiten. IT dokumentiert Betriebsumgebung und Verteilung; QA bewertet den vorgesehenen Nachweis und die Freigabe im Qualitätssystem. Prüft eine Person mehrere Bereiche, müssen Kompetenz und Review trotzdem nachvollziehbar sein.

Der Aufwand hängt besonders von unbekanntem Altcode, fehlenden Anforderungen, externen Datenquellen, vielen Dateikopien und unklaren Änderungsrechten ab. Beginnen Sie mit einer Bestandsaufnahme und einem abgegrenzten kritischen Ablauf. Eine Zahl von Makrozeilen oder eine pauschale Tageszahl erlaubt keine belastbare Aufwandsschätzung.

Bei einer Änderung dokumentieren Sie betroffene Anforderungen, gemeinsame Funktionen, Datenformate und benötigte Wiederholungsprüfungen. Bewahren Sie die Zuordnung früherer Datensätze zum damaligen Stand. Ein PDF kann ein nützlicher Bericht sein; es ersetzt nicht automatisch die für die Rekonstruktion benötigten Eingaben, Verarbeitungsinformationen und Metadaten. Prüfen Sie den Abruf eines abgeschlossenen Vorgangs praktisch.

Quellen: [2] [4] [3]

Checkliste vor Freigabe einer VBA-Änderung

Nutzen Sie diese Arbeitsliste für die gemeinsame Durchsicht. Ein fehlender Punkt ist ein konkreter Klärungsbedarf; Häkchen allein belegen keine erfolgreiche Prüfung.

  • Verwendungszweck, relevante Makros und fachliche Fehlerfolgen sind beschrieben.
  • Die geprüfte Datei ist eindeutig mit Code, Konfiguration und Umgebung verbunden.
  • Sollwerte wurden unabhängig vom zu prüfenden Makro bestimmt.
  • Normalfälle, Grenzfälle, falsche Eingaben, Abbruch und fehlgeschlagene Speicherung sind geprüft.
  • Altwerte und Teilergebnisse können nicht mit einem erfolgreichen neuen Lauf verwechselt werden.
  • Makroausführung, Signatur und fachliche Freigabe sind getrennt bewertet.
  • Änderungen, Abweichungen, Review und akzeptierte Betriebsgrenzen sind dokumentiert.
  • Verteilung, Rücknahme alter Vorlagen und Abruf früherer Aufzeichnungen sind geregelt.

Quellen: [1] [2] [4] [9]

Häufige Fragen zu Excel mit VBA

Muss jede Excel-Datei mit VBA validiert werden?

Entscheidend ist der Anwendungsbereich. Die EMA verlangt für GMP-Spreadsheets mit individuellem Code eine Validierung nach Annex 11. Daraus lässt sich keine pauschale Pflicht für private oder allgemeine Bürodateien ableiten. Dokumentieren Sie zuerst den GMP-Bezug; legen Sie anschließend den Umfang anhand von Funktionen und Fehlerfolgen fest.

Quellen: [1] [2]

Muss jede Codezeile einen eigenen Testfall bekommen?

Eine starre Zuordnung „eine Zeile, ein Test“ ist kein brauchbarer Nachweisplan. Ordnen Sie Anforderungen, kritische Verzweigungen und Fehlerpfade passenden Prüfungen zu. Code-Review kann technische Zusammenhänge sichtbar machen; Ausführungstests zeigen Verhalten in der vorgesehenen Umgebung. Begründen Sie, welche Kombination die konkreten Risiken ausreichend abdeckt.

Quellen: [2] [1]

Genügen historische Datensätze als Testdaten?

Sie sind hilfreich für typische Abläufe, enthalten aber möglicherweise keine Grenzfälle oder Fehler. Ergänzen Sie gezielt leere Werte, falsche Datentypen und Fälle beiderseits einer Entscheidungsgrenze. Berechnen Sie Sollwerte unabhängig. Historische Ausgaben des gleichen Makros sind allein kein unabhängiger Beleg dafür, dass die Berechnung richtig ist.

Quellen: [1] [5]

Ist Git für VBA-Versionskontrolle vorgeschrieben?

Die genannten GMP-Quellen schreiben Git nicht vor. Entscheidend sind kontrollierte Änderungen und die eindeutige Zuordnung des freigegebenen Stands. Git kann Codevergleiche unterstützen; exportierte Module allein erfassen aber nicht automatisch sämtliche Arbeitsmappenbestandteile. Halten Sie deshalb auch die tatsächlich geprüfte Datei, Konfiguration und Freigabe nachvollziehbar zusammen.

Quellen: [3] [2]

Reicht eine digitale Makrosignatur als Freigabenachweis?

Nein. Sie ersetzt weder fachliche Tests noch den Bezug zu Ihrem genehmigten Release. Microsoft beschreibt außerdem eine automatische Neusignierung beim Speichern, wenn das zuvor verwendete gültige Zertifikat auf dem Rechner vorhanden ist. Vergleichen Sie den signierten Stand daher mit dem kontrollierten Freigabepaket und regeln Sie die Signierberechtigung.

Quellen: [9] [2]

Warum kann VBA Round ein anderes Ergebnis liefern als erwartet?

VBA Round verwendet Banker's Rounding. Das kann bei genau halben Werten von einer fachlich verlangten anderen Rundungsregel abweichen. Definieren Sie Rundungsstelle, Zeitpunkt und Umgang mit halben Werten, bevor Sie eine Funktion auswählen. Prüfen Sie auch Werte unmittelbar neben der Grenze; eine reine Zellformatierung ersetzt die definierte Berechnung nicht.

Quellen: [5]

Was ist bei einem Makroabbruch der wichtigste Test?

Prüfen Sie, ob ein unvollständiger Lauf als solcher erkennbar bleibt und beim Neustart keine alten und neuen Ergebnisse vermischt werden. Testen Sie dazu den Abbruch nach einer ersten Datenänderung. Beziehen Sie Speicherfehler und veränderte Anwendungseinstellungen ein; ein abgefangener Laufzeitfehler ist nicht dasselbe wie ein beendeter Excel-Prozess.

Quellen: [6] [7] [8]

Kann eine VBA-Arbeitsmappe im Browser validiert betrieben werden?

Excel im Web führt VBA nicht aus. Wenn Ihr freigegebener Prozess die Makrofunktion benötigt, ist das Öffnen im Browser kein Ersatz für die Desktop-Ausführung. Legen Sie den zulässigen Ausführungsweg fest und prüfen Sie, dass Benutzer aus einer nicht ausgeführten Datei keine vermeintlich neuen Ergebnisse übernehmen.

Quellen: [11]

Muss nach jedem Office-Update alles neu getestet werden?

Leiten Sie den Umfang aus der dokumentierten Auswirkung ab. Ein Update kann relevante Komponenten betreffen, ohne den VBA-Code zu ändern; umgekehrt rechtfertigt nicht jedes Update automatisch eine vollständige Wiederholung. Prüfen Sie besonders Schnittstellen, Berechnungsabhängigkeiten und Sicherheitsrichtlinien. Dokumentieren Sie die Auswahl der Wiederholungsprüfungen und verbleibende Betriebsgrenzen.

Quellen: [2] [1] [12]

Wie bereitet ein kleines Team die VBA-Validierung effizient vor?

Stellen Sie zuerst die verwendete Originaldatei, Codezugang, Rechenvorschrift, einen vollständigen Beispielvorgang und die Arbeitsplatzkonfiguration bereit. Benennen Sie Fachverantwortlichen, Codeverantwortlichen, IT und QA. Fehlen Codeverständnis oder unabhängige Sollwerte, klären Sie diese Lücke vor umfangreichen Testprotokollen: Sonst wird dokumentiert, ohne die fachliche Richtigkeit beurteilen zu können.

Quellen: [2] [4]

Quellen & fachlicher Stand

Grundlage sind die genannten EU-GMP- und FDA-Quellen sowie öffentlich zugängliche Microsoft-Dokumentationen, abgerufen am 6. Oktober 2026. Microsoft-Angaben sind an die beschriebenen Plattformen gebunden. Testmatrix, Versionsschema und Prüfschritte sind eigene illustrative Umsetzungsvorschläge; die Beispielarbeitsmappe wurde nicht ausgeführt.

  1. EMA: GMP/GDP Questions and Answers – Annex 11, Spreadsheets
  2. Europäische Kommission: EU-GMP Annex 11, Computerised Systems, 2011
  3. Europäische Kommission: EU-GMP Kapitel 4, Documentation, 2011
  4. FDA: Data Integrity and Compliance With Drug CGMP, finale Guidance, 2018
  5. Microsoft Learn: Round function (Visual Basic for Applications)
  6. Microsoft Learn: On Error statement
  7. Microsoft Learn: Application.EnableEvents property (Excel)
  8. Microsoft Learn: Application.Calculation property (Excel)
  9. Microsoft Support: Digitally sign your VBA macro project
  10. Microsoft Learn: Macros from the internet are blocked by default in Office
  11. Microsoft Support: Work with VBA macros in Excel for the web
  12. Microsoft Learn: 64-bit Visual Basic for Applications overview
  13. Microsoft Learn: Option Explicit statement

Zuletzt fachlich geprüft am 06.10.2026.

Daniel Herrmann, Daniel Herrmann Consulting

Daniel Herrmann Consulting

Den Prüfbedarf Ihrer VBA-Arbeitsmappe klären

Daniel Herrmann Consulting unterstützt Sie dabei, vorhandene Excel-Anwendungen abzugrenzen, Nachweislücken zu bewerten und Änderungen nachvollziehbar umzusetzen. Ausgangspunkt sind Ihr Prozess und die tatsächlich genutzte Arbeitsmappe.

  • IT-GxP-Audit →

    Vorhandene Arbeitsmappen, Betriebsregeln und Validierungsnachweise auf konkrete Lücken prüfen.

  • IT-GxP-Consulting →

    Anforderungen, Änderungskontrolle und risikobasierte Prüfungen für Ihren VBA-Prozess ausarbeiten.

Ihr Vorhaben besprechenEinblicke in unsere Projektarbeit →