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

Textverschlüsselung mit VBA

Forumthread: Textverschlüsselung mit VBA

Textverschlüsselung mit VBA
09.02.2019 17:25:01
kocius
Hallo Community,
bräuchte schon mal wieder Eure Hilfe.
Da geht um Text Verschlüsselung/Entschlüsselung.
In der Tabelle „Verschlüsseln“ in der Zeile B2 wird manuell ein beliebiger Klartext manuell eingegeben und in der Zeile B3 manuell ein beliebiger Kennwort eingetragen.
In der Zeile B4 wird mittels Buttons „Kennwort vereinfachen“ die mehrfachvorkommeden Buchstaben gestrichen.
Es müssen zwei Schritte programmiert werden
Schritt 1:
In der Tabelle1 ist die Spalte A fest definiert. In die Spalte B, ab Zeile B3 wird an das vereinfachten Kennwort („INTERSCH“) das Alphabet in umgekehrter Reihenfolge angehängt. Wichtig: die Buchstaben sollen in der Spalte B nicht wiederholen und nur einmal in der Spalte B vorkommen. D.h.: wenn die Buchstabe N schon im vereinfachten Kennwort ist („INTERSCH“), in dem Alphabet, das in umgekehrter Reihenfolge angehängt wird, soll die nicht mehr auftauchen (statt N kommt die nächstdrunterliegende Buchstabe M). So wird eine Spalte mit Geheimtext erzeugt.
Schritt 2:
Anhang vom dem Geheimtext (Tabelle1, Spalte B) soll der Klartext (Tabelle „Verschlüsseln“, Zeile B2) verschlüsselt und wieder entschlüsselt werden. Die Ergebnisse kommen dann in die Tabelle „Verschlüsseln“ Zeilen B5/B6
Hatte schon was programmiert, leider komme nicht richtig weiter mit Arrays.
Würde über Eure Hilfe sehr freuen!
Anbei die Datei:
https://www.herber.de/bbs/user/127533.xlsm
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zweck?
09.02.2019 18:08:07
Fennek
Hallo,
der Ansatz ist schon besser als "Caesar" (Rot-x), aber noch lange keine ernsthafte Verschlüsselung.
Wenn es eine Programmierübung oder ein Spiel für einen Kinder- (besser: Teenie)-Geburtstag ist, sollte es möglich sein, den Code zum Laufen zu bringen.
mfg
AW: Zweck?
09.02.2019 19:18:43
kocius
Hallo,
ist eine Aufgabe von einem Kumpel, hat nix mit CIA zu tun;)
Gruss
Anzeige
AW: VBA
09.02.2019 21:01:19
Fennek
Hallo,
hier der Vorschlag zum Codieren des "Plain Text" Pt in die "Cipher" Ci und zurück.
Sub Codieren()
Dim Pt As String, Ci As String
Pt = Cells(2, 2)
Tb = Sheets("Code").Range("A3:B28")
For b = 1 To Len(Pt)
For i = LBound(Tb) To UBound(Tb)
If Mid(Pt, b, 1) = Tb(i, 1) Then Ci = Ci & Tb(i, 2)
Next i
Next b
Cells(5, 2) = Ci
End Sub

Sub Dekodieren()
Dim Pt As String, Ci As String
Ci = Cells(5, 2)
Tb = Sheets("Code").Range("A3:B28")
For b = 1 To Len(Ci)
For i = LBound(Tb) To UBound(Tb)
If Mid(Ci, b, 1) = Tb(i, 2) Then Pt = Pt & Tb(i, 1)
Next i
Next b
Cells(6, 2) = Pt
End Sub

mfg
Anzeige
AW: VBA
09.02.2019 21:02:13
Fennek

Sub Codieren()
Dim Pt As String, Ci As String
Pt = Cells(2, 2)
Tb = Sheets("Code").Range("A3:B28")
For b = 1 To Len(Pt)
For i = LBound(Tb) To UBound(Tb)
If Mid(Pt, b, 1) = Tb(i, 1) Then Ci = Ci & Tb(i, 2)
Next i
Next b
Cells(5, 2) = Ci
End Sub
Sub Dekodieren()
Dim Pt As String, Ci As String
Ci = Cells(5, 2)
Tb = Sheets("Code").Range("A3:B28")
For b = 1 To Len(Ci)
For i = LBound(Tb) To UBound(Tb)
If Mid(Ci, b, 1) = Tb(i, 2) Then Pt = Pt & Tb(i, 1)
Next i
Next b
Cells(6, 2) = Pt
End Sub

Anzeige
AW: VBA
10.02.2019 01:36:02
kocius
Hallo Fennek,
danke! mit Codieren/Decodieren hat super funktioniert! Leider klappt es nicht mit Shritt 1 (Alphabet absteigend sortieren, so das die Buchstaben, die vorhanden sind, soll er überspringen).
Anbei die Datei, die nicht wie gewünscht funktioniert:
https://www.herber.de/bbs/user/127539.xlsm
Anzeige
AW: VBA
10.02.2019 10:42:51
kocius
Danke, funktioniert perfekt! Wenn es geht, hätte noch eine kleine Anpassung (die letzte)
In der Spalte A sind einmal Leerzeichen und ein paar Ziffern. In der Spalte B leider klappt es nicht absteigend aufzubauen. In der Spalte C ist abgebildet, wie es sein muss.
Für die Anpassung bin ich sehr dankbar!
https://www.herber.de/bbs/user/127542.xlsm
Anzeige
erledigt
11.02.2019 11:42:15
kocius
Hallo Jungs, danke, hat sich erledigt. Bei Zahlen musste man die in Text umwandeln mit Cstr
;
Anzeige

Infobox / Tutorial

Textverschlüsselung in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um Text in Excel zu verschlüsseln, kannst du die integrierten Funktionen von VBA verwenden. Hier sind die Schritte, um eine einfache Textverschlüsselung mit einer Caesar-Verschlüsselung zu implementieren.

  1. Öffne Excel und aktiviere die Entwicklertools:

    • Gehe zu Datei > Optionen > Menüband anpassen.
    • Aktiviere die Entwicklertools.
  2. Füge ein Modul hinzu:

    • Klicke auf Entwicklertools > Visual Basic.
    • Klicke mit der rechten Maustaste auf VBAProject (deine Datei) > Einfügen > Modul.
  3. Füge den folgenden VBA-Code ein:

    Sub Codieren()
       Dim Pt As String, Ci As String
       Pt = Cells(2, 2) ' Klartext aus Zelle B2
       Tb = Sheets("Code").Range("A3:B28") ' Tabelle mit Buchstaben und deren Verschlüsselung
       For b = 1 To Len(Pt)
           For i = LBound(Tb) To UBound(Tb)
               If Mid(Pt, b, 1) = Tb(i, 1) Then Ci = Ci & Tb(i, 2)
           Next i
       Next b
       Cells(5, 2) = Ci ' Verschlüsselter Text in Zelle B5
    End Sub
    
    Sub Dekodieren()
       Dim Pt As String, Ci As String
       Ci = Cells(5, 2) ' Verschlüsselter Text aus Zelle B5
       Tb = Sheets("Code").Range("A3:B28")
       For b = 1 To Len(Ci)
           For i = LBound(Tb) To UBound(Tb)
               If Mid(Ci, b, 1) = Tb(i, 2) Then Pt = Pt & Tb(i, 1)
           Next i
       Next b
       Cells(6, 2) = Pt ' Entschlüsselter Text in Zelle B6
    End Sub
  4. Fülle die Tabelle "Code" mit den Buchstaben und den entsprechenden verschlüsselten Zeichen:

    • Beispielsweise: A in Spalte A und D in Spalte B für eine Verschiebung um 3.
  5. Starte die Makros:

    • Gehe zurück zu Excel und führe das Makro Codieren aus, um den Text zu verschlüsseln.
    • Führe dann Dekodieren aus, um den verschlüsselten Text wieder zu entschlüsseln.

Häufige Fehler und Lösungen

  • Fehler: Der verschlüsselte Text bleibt leer.

    • Lösung: Stelle sicher, dass die Buchstabentabelle in der richtigen Range (A3:B28) vorhanden ist und die Buchstaben korrekt zugeordnet sind.
  • Fehler: Der Klartext wird nicht richtig verschlüsselt.

    • Lösung: Überprüfe, ob der Klartext in Zelle B2 korrekt eingegeben ist und keine Leerzeichen oder Sonderzeichen enthält, die nicht in der Tabelle vorhanden sind.
  • Fehler: Makros werden nicht ausgeführt.

    • Lösung: Aktiviere die Makros in den Excel-Optionen unter Trust Center.

Alternative Methoden

Neben der VBA-Methode kannst du auch folgende Möglichkeiten nutzen:

  • Formeln: Nutze Excel-Formeln für einfache Verschlüsselungen, z.B. durch die Verwendung von CHAR() und CODE(), um Buchstaben um eine feste Anzahl zu verschieben.

  • Add-Ins: Es gibt verschiedene Add-Ins für Excel, die erweiterte Verschlüsselungsoptionen bieten.


Praktische Beispiele

  1. Beispiel: Caesar-Verschlüsselung:

    • Wenn du den Text "HELLO" mit einem Verschlüsselungswert von 3 verschlüsselst, wird er zu "KHOOR".
  2. Beispiel: Text entschlüsseln:

    • Der verschlüsselte Text "KHOOR" kann mit der gleichen Methode zurück in "HELLO" entschlüsselt werden.

Tipps für Profis

  • Sichere deine Makros: Speichere deine Excel-Datei im .xlsm-Format, um die Makros zu erhalten.
  • Fehlerbehandlung einfügen: Implementiere Error-Handling in deinem VBA-Code, um unerwartete Fehler zu vermeiden.
  • Benutzerfreundlichkeit erhöhen: Füge Schaltflächen in Excel hinzu, um die Ausführung der Makros zu erleichtern.

FAQ: Häufige Fragen

1. Wie funktioniert die Caesar-Verschlüsselung in Excel?
Die Caesar-Verschlüsselung verschiebt jeden Buchstaben im Klartext um eine feste Anzahl von Stellen im Alphabet.

2. Kann ich Text in Excel auch ohne VBA verschlüsseln?
Ja, einfache Verschlüsselungen können auch mit Excel-Formeln durchgeführt werden, jedoch ist VBA für komplexere Algorithmen besser geeignet.

3. Wie kann ich sicherstellen, dass mein verschlüsselter Text sicher bleibt?
Vermeide die Verwendung leicht zu erratender Schlüssel und denke daran, die Verschlüsselung regelmäßig zu aktualisieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige