Clever-Excel-Forum

Normale Version: Hilfe bei VBA Skript
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

ich habe folgendes VBA Skript:

Sub Änderungen()
Dim Zelle as Range
For Each Zelle In Selection
IF Zelle <>““ And Len (Zelle) >5 Then
Zelle = Left (Zelle, 1) & Right(Zelle, Len(Zelle)-2)
End if
Next Zelle
End Sub


Ich habe dieses auch schon mehrfach bei verschiedenen Dateien angewendet. Seit gestern versuche ich nun bei einer Datei auszuführen. Leider hängt sich jedes mal Excel auf. Ich habe zuerst versucht 5000 Zellen zu makieren und es anzuwenden. Als das nicht funktioniert hat habe ich nur eine Zelle makiert. Leider mit dem selben Ergebnis. Hat jemand eine Idee?

Vielen Dank für eure Mühe.

Viele Grüße

Asceroon
Moin!
Zitat:Hat jemand eine Idee?

Hab ich!  :19:
Da die Veränderung des Targets erneut ein Change-Event auslöst, landest Du in einer Endllosschleife!

Für meine eine Idee habe ich zwei Lösungen:
  1. Du musst die Ereignisse abschalten und sicherstellen, dass sie auf jeden Fall wieder eingestellt werden: 
    Sub Änderungen()
    Dim Zelle As Range
    On Error GoTo EventsOn
    Application.EnableEvents = False
    For Each Zelle In Selection
       If Zelle <> ““ And Len(Zelle) > 5 Then
          Zelle = Left(Zelle, 1) & Right(Zelle, Len(Zelle) - 2)
       End If
    Next Zelle
    EventsOn:
    Application.EnableEvents = True
    End Sub
  2. Bei großen Markierungen (hier sind es ja 5.000 Zellen) dürfte die Auslagerung in ein temporäres Array einen enormen Geschwindigkeitsvorteil bringen.
Gruß Ralf
Hallo,

Du hast in der Tabelle ein Ereignismakro namens Worksheet_Change, welches durch dein Makro ausgelöst wird.
Hi Steffl!
Hab tatsächlich erst jetzt realisiert, dass es sich ja um eine normale Sub handelt!  Blush
Dennoch bleiben meine beiden Lösungen erstmal bestehen.

Gruß Ralf
Vielen Dank euch beiden.

Das Skript von Ralf funktioniert. Dennoch würde mich interessieren warum das Makro in der Vergangenheit immer einwandfrei funktionert hat und seit gestern nicht mehr. Weiß das jemand?

Viele Grüße

Asceroon
Das schrieb Dir ja Steffl bereits (und ich indirekt).
Du hast ein Change-Ereignis in der Mappe.
Klicke mal im VBE-Editor (Alt+F11) doppelt auf DieseArbeitsmappe und auf die einzelnen Tabellen.
Irgendwo hast Du entweder
Private Sub Worksheet_Change(ByVal Target As Range)
oder
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Gruß Ralf
(11.08.2016, 07:45)RPP63 schrieb: [ -> ]Irgendwo hast Du entweder
Private Sub Worksheet_Change(ByVal Target As Range)
oder
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Ich habe versucht das jetzt zu verstehen. Bin aber definitiv kein Profi was VBA betrifft. Des Weiteren stürtzt Excel auch mit dem Skript von Ralf ab. Ich habe mal ein Bild gemacht. Vielleicht könnt ihr mir nochmal mit einfachen Worten erklären was ich falsch mache Blush .

[
Bild bitte so als Datei hochladen: Klick mich!
]
Hallo,

bei mir ist bei deinem Bild nur viel Schwarz zu sehen, lade die Datei hoch.
Klicke doppelt auf DieseArbeitsmappe und Tabelle1 im Projektexplorer oben links.

Ansonsten lade mal die Datei hoch.
Sensible Daten kannst Du anonymisieren.
Wichtig nur, dass Du weder Aufbau noch Formeln (und keinen VBA-Code  :19: ) veränderst.

Gruß Ralf
(11.08.2016, 08:16)Steffl schrieb: [ -> ]Hallo,

bei mir ist bei deinem Bild nur viel Schwarz zu sehen, lade die Datei hoch.

anbei
Seiten: 1 2