Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
420to424
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
420to424
420to424
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro für Prüfung ob Spalten eingeblendet

Makro für Prüfung ob Spalten eingeblendet
01.05.2004 19:34:10
Ralf
Hallo Zusammen!
Wie müsste ein Makro aussehen, dass prüft ob die Spalten mit der Spaltenbezeichung: Ausblenden1 , Ausblenden2 und Ausblenden3 eingeblendet sind und dann - !!! und nur dann !!! - ein Makro ausführt, dass diese Spalten ausblendet und gleichzeitig verschlüsselt.

Die Urform des Makros, dass diese Prüfung noch nicht macht hier:
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Ab hier: Befehl für Schließen der drei Spalten
'Ausblenden... bevor die die Arbeitsmappe gesschlossen wird.
Dim iCol As Integer
With Worksheets("DATA")
For iCol = 1 To 30
If .Cells(1, iCol) = "Ausblenden1" Then
.Columns(iCol).Hidden = True
End If
Next
For iCol = 1 To 30
If .Cells(1, iCol) = "Ausblenden2" Then
.Columns(iCol).Hidden = True
End If
Next
For iCol = 1 To 30
If .Cells(1, iCol) = "Ausblenden3" Then
.Columns(iCol).Hidden = True
End If
Next
End Sub


Die Ergänzung die diese drei Spalten dann verschlüsselt lautet in der Urform so:
Dim rng As Range
For Each rng In Range("G8:I400")
If IsNumeric(rng) And rng <> "" Then rng = rng * 765422592
Das müsste dann so abgeändert werden dass es sich auf die Spaltenüberschriften bezieht und nicht wie hier auf die Spalten.
Kann mir bitte jemand helfen? - Auch an einem verregneten 1. Mai?
Viele Grüße Ralf

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro für Prüfung ob Spalten eingeblendet
01.05.2004 19:50:59
Nepumuk
Hallo Ralf,
wenn ich dich richtig verstanden habe, dann würde ich es so machen:


Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim iCol As Integer, lRow As Long
    With Worksheets("DATA")
        For iCol = 1 To 30
            If Left(.Cells(1, iCol), 10) = "Ausblenden" And InStr(1, "123", Right(.Cells(1, iCol), 1)) <> 0 Then
                If Not .Columns(iCol).Hidden Then
                    .Columns(iCol).Hidden = True
                    For lRow = 2 To .Cells(65536, iCol).End(xlUp).Row
                        If IsNumeric(.Cells(lRow, iCol)) And .Cells(lRow, iCol) <> "" Then .Cells(lRow, iCol) = .Cells(lRow, iCol) * 765422592
                    Next
                End If
            End If
        Next
    End With
    ThisWorkbook.Save
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5

Gruß
Nepumuk
Anzeige
AW: Makro für Prüfung ob Spalten eingeblendet
01.05.2004 20:00:47
Ralf
Hallo Nepumuk,
dass sieht sehr gut aus - genau so war es gemeint.
Werde es gleich mal probieren.
Danke schon mal
Ralf
AW: Makro für Prüfung ob Spalten eingeblendet
01.05.2004 20:16:11
Erich M.
Hallo Ralf,
hängt die Lösung immer noch mit Deinem Problem zusammen, dass bestimmte User
auf sensible Daten keinen Zugriff haben?
Würde mich interessieren, da ich ebenfalls an einem ähnlichen Problem bastle.
Gibts für die mir zuletzt bekannte Anfrage im Forum wie man z.B. durch Formelzugriff
die Datensicherheit umgeht schon eine Lösung?
Danke!
mfg
Erich
AW: Makro für Prüfung ob Spalten eingeblendet
01.05.2004 20:43:46
Nepumuk
Hallo Erich,
1. Ich würde solche Daten in einer ausgeblendeten Tabelle speichern. Denn nichts leichter, als eine ausgeblendete Zeile einzublenden.
2. Die "Verschlüsselung" von Ralf knackt jeder nach längstens 10 Sekunden. Ich habe mal was gemacht das sieht so aus:


For intIndex = 1 To Len(Text1.Text)
    strKennwort = strKennwort & Chr(256 - (Asc(Mid(Text1.Text, intIndex, 1)) + Int((9 * intIndex - 3 * intIndex) / 9 * intIndex) - intIndex * 7))
Next

     Code eingefügt mit Syntaxhighlighter 2.5

Da hängst du schon länger dran, bis etwas vernünftiges dabei herauskommt. Außerdem können sowohl Text als auch Zahlen verschlüsselt werden.
Gruß
Nepumuk
Anzeige
AW: Makro für Prüfung ob Spalten eingeblendet
01.05.2004 22:41:26
Ralf
Hallo Erich,
kannst Du Deine Mail-Adresse hier hinterlassen? Dann bekommst Du mein bisheriges Ergebnis.

- mit dem Verschlüsseln hat Nepumuk natürlich Recht, dass war erst mal der Ansatz, wie das gehen könnte. Jedoch komm ich mit Nepumuks zweiter Version überhaupt nicht zurecht.
Gruß Ralf
AW: Makro für Prüfung ob Spalten eingeblendet
01.05.2004 23:51:56
Nepumuk
Hallo Ralf,
ich hab es dir mal eingebaut:


Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim iCol As Integer, lRow As Long, iChar As Integer, sOutput As String
    With Worksheets("DATA")
        For iCol = 1 To 30
            If Left(.Cells(1, iCol), 10) = "Ausblenden" And InStr(1, "123", Right(.Cells(1, iCol), 1)) <> 0 Then
                If Not .Columns(iCol).Hidden Then
                    .Columns(iCol).Hidden = True
                    For lRow = 2 To .Cells(65536, iCol).End(xlUp).Row
                        For iChar = 1 To Len(CStr(.Cells(lRow, iCol)))
                            sOutput = sOutput & Chr(256 - (Asc(Mid(CStr(.Cells(lRow, iCol)), iChar, 1)) + Int((9 * iChar - 3 * iChar) / 9 * iChar) - iChar * 7))
                        Next
                        .Cells(lRow, iCol) = sOutput
                        sOutput = ""
                    Next
                End If
            End If
        Next
    End With
    ThisWorkbook.Save
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5

Entschlüsseln läuft dann so:


Public Sub entschluesseln()
    Dim iCol As Integer, lRow As Long, iChar As Integer, sOutput As String
    With Worksheets("DATA")
        For iCol = 1 To 30
            If Left(.Cells(1, iCol), 10) = "Ausblenden" And InStr(1, "123", Right(.Cells(1, iCol), 1)) <> 0 Then
                For lRow = 2 To .Cells(65536, iCol).End(xlUp).Row
                    For iChar = 1 To Len(CStr(.Cells(lRow, iCol)))
                        sOutput = sOutput & Chr(256 - Asc(Mid(CStr(.Cells(lRow, iCol)), iChar, 1)) + (Int((9 * iChar - 3 * iChar) / 9 * iChar) - iChar * 7) * -1)
                    Next
                    .Cells(lRow, iCol) = sOutput
                    sOutput = ""
                Next
            End If
        Next
    End With
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5

Gruß
Nepumuk
Anzeige
Addy
02.05.2004 07:59:40
Erich M.
Hallo Ralf,
1284-456@onlinehome.de
(ist auch unter Profilliste zu finden)
Danke!
mfg
Erich

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige