Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1572to1576
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

Makro hängt sich manchmal auf?!

Makro hängt sich manchmal auf?!
23.08.2017 11:06:22
Martin
Hallo zusammen,
ich habe ein Makro für eine geschützte Datei, bei der spezielle Datenbankformeln "wertkopiert" werden müssen. Es wird eine Kopie des Registerblattes erstellt und dort das PW aufgehoben und die Daten wertkopiert. Leider hängt sich das Makro bei einigen Kollegen auf - bei mir läuft es in wenigen Sekunden durch. Woran könnte es liegen bzw. welche Befehle können verbessert/optimiert werden? Danke euch im Voraus!
Sub Wertkopie_DBR_DBS()
ActiveSheet.Unprotect "PW"
Calculate
Dim Bereich As Range
Range("A1").Select
ActiveCell.SpecialCells(xlLastCell).Select
Endspalte = Selection.Columns(Selection.Columns.Count).Column
EndZeile = Selection.Rows(Selection.Rows.Count).Row
Startspalte = 1
Startzeile = 1
Set Bereich = Range(Cells(Startzeile, Startspalte), Cells(EndZeile, Endspalte))
For Each z In Bereich
On Error Resume Next
' Wertkopie für DBRn, DBSn, SUBNM, VIEW und DIMNM - Funktionen:
If InStr(z.Formula, "DBR") Or _
InStr(z.Formula, "DBS") Or _
InStr(z.Formula, "SUBNM") Or _
InStr(z.Formula, "VIEW") Or _
InStr(z.Formula, "DIMNM") Then
z.Value = z.Value
End If
Next z
Range("A1").Select
'Next AnzAB
Mldg = "TEXT"
MsgBox (Mldg)
Range("A1").Select
'ActiveSheet.Protect "PW"
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro hängt sich manchmal auf?!
23.08.2017 12:28:55
JoNNy
Servus Martin,
zunächst kannst du deinen Code dahingehend optimieren,
dass du nicht mit Selections arbeitest sondern,
direkt alles ansprichst. z.B.

Endspalte = Range("A1").SpecialCells(xlLastCell).Columns(Selection.Columns.Count).Column

Aber das muss nicht unbedingt sein.
Dann wäre noch die Frage ob ihr beide die gleiche Office Version verwendet,
wenn nicht kann das auch ein Problem darstellen.
Gruß JoNNy
AW: Makro hängt sich manchmal auf?!
23.08.2017 12:38:32
ChrisL
hi Martin
- Ist die automatische Formelberechnung ausgeschaltet?
- Ist die Neuberechnung (Applikation.Calculate) notwendig?
- Bezieht sich der Code immer auf das gerade aktive Blatt?
- Die Prüfung läuft über den ganzen benutzten Bereich. Könnte man dies evtl. einschränken?
Da aktuell sowieso der ganze benutzte Bereich angesprochen wird, könntest du wie folgt kürzen:
Sub t()
Dim Z As Range
For Each Z In ActiveSheet.UsedRange
If InStr(Z.Formula, "DBR") Or _
InStr(Z.Formula, "DBS") Or _
InStr(Z.Formula, "SUBNM") Or _
InStr(Z.Formula, "VIEW") Or _
InStr(Z.Formula, "DIMNM") Then
Z.Value = Z.Value
End If
Next Z
End Sub

M.E. nicht ursächlich aber dennoch verbesserungswürdig:
- auf Select/Activate verzichten (siehe Antwort Jonny)
- Variablen konsequent deklarieren
cu
Chris
Anzeige

112 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige