Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1296to1300
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 ausführen bei Zelländerung

Makro ausführen bei Zelländerung
08.02.2013 14:12:32
Gerhard
Hallo zusammen,
folgendes Problem: Ich möchte, dass ein Makro läuft sobald ich eine Zelle ändere:
Dies hat auch gut geklappt mit folgendem Code:
CODE IN DER TABELLE:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Application.DisplayAlerts = False
If Target = Range("CC_1") Then
Application.ScreenUpdating = False
Dim PIV As Object
Sheets("CC DETAIL").Select
For Each PIV In ActiveSheet.PivotTables
PIV.PivotFields("Func. Area").ClearAllFilters
PIV.PivotFields("Func. Area").CurrentPage = Range("CC_1").Text
Next
Sheets("CC DETAIL (2 months)").Select
For Each PIV In ActiveSheet.PivotTables
PIV.PivotFields("Func. Area").ClearAllFilters
PIV.PivotFields("Func. Area").CurrentPage = Range("CC_1").Text
Next
Sheets("CC DETAIL Pay Free").Select
For Each PIV In ActiveSheet.PivotTables
PIV.PivotFields("Func. Area").ClearAllFilters
PIV.PivotFields("Func. Area").CurrentPage = Range("CC_1").Text
Next
Sheets("CC DETAIL Pay Free (2 months)").Select
For Each PIV In ActiveSheet.PivotTables
PIV.PivotFields("Func. Area").ClearAllFilters
PIV.PivotFields("Func. Area").CurrentPage = Range("CC_1").Text
Next
Call AutofitColumn
Sheets("COST CENTER REPORT").Select
Application.ScreenUpdating = True
End If
End Sub

CODE IN EINEM MODUL DER GLEICHEN ARBEITSMAPPE
Sub AutofitColumn()
Sheets("CC DETAIL").Select
Cells.EntireColumn.AutoFit
Sheets("CC DETAIL (2 months)").Select
Cells.EntireColumn.AutoFit
Sheets("CC DETAIL Pay Free").Select
Cells.EntireColumn.AutoFit
Sheets("CC DETAIL Pay Free (2 months)").Select
Cells.EntireColumn.AutoFit
End Sub
Nach jeder Ausführung dieses Makros muss ich allerdings die Tabelle, in der der erste Code enthalten ist, mit Move or Copy seperat abspeichern und vorher alle Werte mit CopyPasteSpecialValues hardcoden. Wenn ich dies dann mache, kommt jedesmal dann eine Fehlermeldung, das Sub "AutofitColumn" nicht definiert sei. Das Problem ist, dass eben immer dieses Makro wieder läuft in der kopierten Tabelle und dann die Sub
"AutofitColumn" nicht gefunden wird. Kann man obigen Code auch so gestalten, dass dieser nur im personal.xls gespeichert ist und keine Fehlermeldungen beim Herauskopieren mehr auftauchen?
Vielen Dank vorab!
Gerhard

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro ausführen bei Zelländerung
08.02.2013 19:05:15
Luschi
Hallo Gerhard.
ersetze die Zeile:

Call AutofitColumn
gegen diesen kleine Codeblock:

On Error Resume Next
Err.Clear
Application.Run Macro:="AutofitColumn"
On Error GoTo 0
Gruß von Luschi
aus klein-Paris

AW: Makro ausführen bei Zelländerung
13.02.2013 10:30:38
Gerhard
Hi Luschi,
vielen Dank für Deine Antwort. Wenn ich jedoch das Sheet rauskopiere in ein separates Sheet und dieses widerrum mit copy üpaste special values hardcoden möchte, kommt nun folgende Fehlermeldung:
Run Time Error '7':
Out of Memory
Wenn ich dann auf Debug klicke, ist die Zeile
If Target = Range("CC_1") Then
gelb markiert...

Anzeige
AW: Makro ausführen bei Zelländerung
14.02.2013 11:10:01
Luschi
Hallo Gerhard,
diese Bechreibung 'copy üpaste special values hardcoden' habe ich nicht verstanden.
Gruß von Luschi
aus klein-Paris

AW: Makro ausführen bei Zelländerung
14.02.2013 11:24:52
Gerhard
Hi Luschi,
copy paste special values ist eine Beschreibung für "Kopieren und nur Werte einfügen". Damit ersetzt man alle Formeln mit Werten. Ic hhabe übrigens vorhin die Lösung gefunden, indem ich einfach noch eine Fehlerroutine eingefügt habe. Jetzt passt alles super! Ich bedanke mich herzlich bei Dir! Hat mir super geholfen!!!
Gerhard
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume NextIf Target = Range("CC_1") Then
Application.ScreenUpdating = False
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige