Anzeige
Archiv - Navigation
1080to1084
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
Inhaltsverzeichnis

Rückgäng machen nach VBA Ausführung

Rückgäng machen nach VBA Ausführung
20.06.2009 16:32:24
chris58
Hallo !
Ich habe diesen Code in den weiten des Internet gefunden. Da ich kaum Kenntnisse mittels VBA habe, möchte ich erfahren, ob es eine Möglichkeit gibt, nach Ausführung dieses VBA-Codes und Löschung der doppelten Datensätze den Code irgenwie wieder rückgängig zu machen.
Es wäre nicht nötig, aber da ich eine "bedingte Formartierung" in der Spalte C habe (die für die Suche erforderlich ist, den da stehen die Namen), die jede zweite Zeile in einer Farbe einfärbt wäre es gut, wenn die Optik gewahrt bliebe. Kann mir wer helfen, wie man das machen kann.
Danke für Eure Antworten
chris58
Option Explicit

Sub Doppelte_Werte_nach_Spaltenauswahl_markieren()
Dim i As Long
Dim j As Long
Dim k As Integer
Dim F As Integer
Dim dic As Object
Dim strKey As String
Dim FromRow As Long
Dim ToRow As Long
Dim Eingabe As String
Dim SuchCol As Variant
Dim FarbCol As Variant
Set dic = CreateObject("scripting.dictionary")
'Such-Art wird angegeben und Zeilen (von/Bis) und Spalten angegeben
If MsgBox("Wollen Sie eine Standardsuche durchführen?", vbYesNo + vbQuestion, " _
Duplikatsuche") = vbYes Then
'Standartsucheigenschaften werden festgelegt
ReDim FarbCol(1 To 1)
ReDim SuchCol(1 To 1)
FromRow = 1
ToRow = InputBox("Bis zu welcher Zeile soll gesucht werden?", , ActiveCell.Row)
SuchCol(1) = ActiveCell.Column
FarbCol(1) = ActiveCell.Column
Else
'Erweiterte Sucheigenschaften werden eingegeben
Eingabe = InputBox("Ab welcher Zeile soll gesucht werden?")
If IsNumeric(Eingabe) Then
If CLng(Eingabe) > 0 And CLng(Eingabe) 



Function strCol_To_intCol(WSName As String, StrRng As String) As Variant
Dim i As Long
Dim j As Long
Dim Merker As Variant
Dim ind As String
Dim HelpStr As String
Dim HelpArr As Variant
Dim FarbCol As Variant
Dim FCol As String
Dim TCol As String
i = 0
Do Until i = Len(StrRng)
HelpStr = ""
Do
i = i + 1
HelpStr = HelpStr & Mid(StrRng, i, 1)
Loop Until KindOfStr(HelpStr) = "Sig" Or Len(StrRng)  0 Then
FCol = Replace(Replace(HelpStr, ",", ""), "-", "")
End If
Else
If Len(Replace(Replace(HelpStr, ",", ""), "-", "")) > 0 Then
TCol = Replace(Replace(HelpStr, ",", ""), "-", "")
End If
End If
If FCol  "" And TCol  "" Then
If Not IsNumeric(FCol) Then If Not IsError(Columns(FCol).Column) Then FCol =  _
Columns(FCol).Column Else: GoTo ErrorHandle
If Not IsNumeric(TCol) Then If Not IsError(Columns(TCol).Column) Then TCol =  _
Columns(TCol).Column Else: GoTo ErrorHandle
If CDbl(FCol) > CDbl(TCol) Then
Merker = TCol
TCol = FCol
FCol = Merker
Merker = ""
End If
For j = FCol To TCol
If Not IsArray(HelpArr) Then
ReDim HelpArr(1 To 1)
Else
ReDim Preserve HelpArr(1 To UBound(HelpArr) + 1)
End If
HelpArr(UBound(HelpArr)) = j
Next
FCol = ""
TCol = ""
ElseIf FCol = "" And TCol  "" Then
If Not IsNumeric(TCol) Then If Not IsError(Columns(TCol).Column) Then TCol =  _
Columns(TCol).Column Else: GoTo ErrorHandle
If Not IsArray(HelpArr) Then
ReDim HelpArr(1 To 1)
Else
ReDim Preserve HelpArr(1 To UBound(HelpArr) + 1)
End If
HelpArr(UBound(HelpArr)) = CDbl(TCol)
TCol = ""
End If
Loop
strCol_To_intCol = HelpArr
Exit Function
If IsArray(HelpArr) Then
With Worksheets(WSName)
For i = LBound(HelpArr) To UBound(HelpArr)
If strCol_To_intCol Is Nothing Then
Set strCol_To_intCol = .Columns(HelpArr(i))
Else
Set strCol_To_intCol = Union(strCol_To_intCol, .Columns(HelpArr(i)))
End If
Next
End With
End If
Exit Function
ErrorHandle:
MsgBox "Fehhler in der Gegend von " & HelpStr
End Function



Function KindOfStr(Str As String) As String
If Len(CStr(Replace(Str, ",", "")))  Len(Str) Or Len(CStr(Replace(Str, "-", "")))  Len( _
Str) Then
KindOfStr = "Sig"
ElseIf Str Like "[A-Z,a-z]" Then
KindOfStr = "Str"
ElseIf IsNumeric(Str) Then
KindOfStr = "Num"
Else
Stop
End If
End Function


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

Betreff
Datum
Anwender
Anzeige
AW: Rückgäng machen nach VBA Ausführung
20.06.2009 16:40:16
Hajo_Zi
Hallo Chris,
nach Ausführung vonMakros gibt es kein Rückgängig.
Gruß Hajo
AW: Rückgäng machen nach VBA Ausführung
20.06.2009 16:43:19
chris58
Danke für die Auskunft
gruß
chris
Das müsstest du gleich mitpgmieren! Gruß owT
21.06.2009 04:02:53
Luc:-?
:-?
Geht das denn?
21.06.2009 16:16:54
Mark
Hallo Luc,
Du schreibst, dass müsste man direkt mitprogrammieren. Geht sowas wirklich? Wenn ja, hast Du ein Beispiel?
Würde mich ja schon brennend interessieren.
Gruß Mark
AW: zwischenspeichern?
21.06.2009 22:36:06
Daniel
Hi
wenn du die Datei vor dem Makrolauf einfach speicherst, kannst du das Makro rückgängig machen, im dem du die Datei neu lädst.
das wäre mit sicherheit die einfachste Lösung.
der Befehl zum Speichern wäre:
ThisWorkbook.Save
Gruß, Daniel
Anzeige
Ja, das geht! Allerdings kann das ggf...
22.06.2009 02:45:07
Luc:-?
...erheblichen Mehraufwand verursachen, Mark,
das hängt von den Aktionen der Subroutine ab. Da wäre Daniels Vorschlag schon günstiger...
Bisher habe ich mich noch nicht näher damit beschäftigt, meine aber, die VBA-Methode ...Undo dient eher der Rückgängigmachung "normaler" Aktionen. Wie das mit VBA geht, kannst du ja mal ausprobieren (Zugriff auf die Undo-Liste). Du müsstest faktisch alle von der Subroutine vorgenommenen Veränderungen in eine bzw die Undo-Liste speichern und diese dann entweder wie üblich oder mit separater Subroutine "abarbeiten". Ich schreibe zumeist udFktt, für die das nicht nötig ist - im TabBlatt fkt das normale Rückgängig und in Subroutinen trägt ja ohnehin diese die "Verantwortung".
Gruß Luc :-?
Anzeige
Bedingte Formatierung richtig definieren
21.06.2009 16:30:36
NoNet
Hallo Chris,
wenn es "nur" um die Bedingte Formatierung geht, dann geügt es evtl. diese entsprechend zu definieren.
Welche Funktion ("Formel") für Spalte C steht denn derzeit in der "Bed.Formatierung" ?
Wie sollen die Zeilen NACH der Ausführung des Makros formatiert sein ?
Gruß, NoNet

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige