Hallo,
ich wollte meine Arbeitsmappe anonymisieren und für weitere Hilfe hochladen.
Leider klappt es nicht und ich weiß nicht warum.
Ich beschäftige mich seit Anfang Juni mit VB, Excel 2016, bin also Anfängerin.
Im Modul habe ich folgendes bei mir stehen:
Spoiler anzeigen
Wenn ich nun meinen Bereich, den ich anonymisieren möchte markiere und dann im Modul auf ausführen gehe, passiert das:
1. er nimmt nur die Überschriften und gibt den Fehler: 13 Typen unverträglich aus oder
2. ich habe das Blatt ohne Überschriften markiert und er anonymisiert gar nichts, dafür kommt aber auch die gleiche Fehlermeldung wieder.
Weiterhin ist es egal, ob er die Zahlenwerte mit anonymisieren möchte oder nicht, es funktioniert nicht.
Ich würde mich sehr gerne über Hilfe freuen.
Danke im voraus.
Johanne
ich wollte meine Arbeitsmappe anonymisieren und für weitere Hilfe hochladen.
Leider klappt es nicht und ich weiß nicht warum.
Ich beschäftige mich seit Anfang Juni mit VB, Excel 2016, bin also Anfängerin.
Im Modul habe ich folgendes bei mir stehen:
Visual Basic-Quellcode
- Option Explicit
- Sub anonymisieren()
- Randomize
- Dim rng_s As Range
- Dim rng_cell As Range
- Dim check As Integer
- Dim i As Integer
- Dim VK, VE
- With Application
- VK = .Calculation
- VE = .EnableEvents
- End With
- If TypeOf Selection Is Range Then
- check = IIf(MsgBox("Sollen auch Datumswerte und Zahlen ersetzt werden?", vbYesNo, "Was soll alles ersezt werden") = vbYes, 3, 2)
- On Error Resume Next
- Set rng_s = Intersect(ActiveSheet.UsedRange, Selection).SpecialCells(xlCellTypeConstants, check)
- If rng_s.Count > Selection.CountLarge Then Set rng_s = Selection
- If Err.Number = 0 Then
- On Error GoTo 0
- Call speedup(-4135, False, False)
- On Error GoTo errMsg
- For Each rng_cell In rng_s
- With rng_cell
- If IsDate(.Value) Then
- If .Value < 1 Then
- .Value = Rnd()
- Else
- .Value = .Value + Int(Rnd() * 365 + 1)
- End If
- ElseIf IsNumeric(.Value) Then
- .Value = f_num(.Value)
- Else
- .Value = f_txt(.Value)
- End If
- End With
- Next
- Else
- MsgBox "Bitte markieren sie Zellen mit Inhalt!", vbInformation
- End If
- Else
- MsgBox "Sie sollten zumindest eine Zelle markieren!", vbInformation
- End If
- Call speedup(VK, True, True)
- Exit Sub
- errMsg:
- Call speedup(VK, True, True)
- MsgBox Err.Number & " " & Err.Description
- End Sub
- Sub speedup(ByVal CalC As Integer, ByVal BolE As Boolean, BolScreenU As Boolean)
- With Application
- .Calculation = CalC
- .EnableEvents = BolE
- .ScreenUpdating = BolScreenU
- End With
- End Sub
- Function f_txt(str_txt As String) As String
- Dim i As Integer
- For i = 1 To Len(str_txt)
- Mid(str_txt, i, 1) = Chr(IIf(Rnd() > 0.5, 65, 97) + Int(Rnd() * 25 + 1))
- Next
- f_txt = str_txt
- End Function
- Function f_num(dbl_val As Variant) As Double
- Dim i As Integer
- For i = 1 To Len(dbl_val)
- If IsNumeric(Mid(dbl_val, i, 1)) Then
- Mid(dbl_val, i, 1) = Int(Rnd() * 10)
- End If
- Next
- f_num = CDbl(dbl_val)
- End Function
Wenn ich nun meinen Bereich, den ich anonymisieren möchte markiere und dann im Modul auf ausführen gehe, passiert das:
1. er nimmt nur die Überschriften und gibt den Fehler: 13 Typen unverträglich aus oder
2. ich habe das Blatt ohne Überschriften markiert und er anonymisiert gar nichts, dafür kommt aber auch die gleiche Fehlermeldung wieder.
Weiterhin ist es egal, ob er die Zahlenwerte mit anonymisieren möchte oder nicht, es funktioniert nicht.
Ich würde mich sehr gerne über Hilfe freuen.
Danke im voraus.
Johanne
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Johanne“ ()