Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
752to756
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
752to756
752to756
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro aufpeppen

Makro aufpeppen
12.04.2006 22:32:19
Michael
Hallo xlGemeinde,
folgendes Makro "schießt" durch meine xl-Datei

Sub Formel_Wert()
Dim wks As Worksheet
Dim Zelle As Range
Dim Bereich As Range
Dim sFile As String
Application.ScreenUpdating = True
Sheets("Data").Select
Application.Run Range("WORKSPACE.REFRESH")
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
For Each wks In Worksheets
Set Bereich = wks.Range("A1:BN600")
For Each Zelle In Bereich
If Zelle.FormulaR1C1 Like "=" & "*" & "DE.NAME" & "*" Or _
Zelle.FormulaR1C1 Like "=" & "*" & "AT.GET" & "*" Or _
Zelle.FormulaR1C1 Like "=" & "*" & "INDEX" & "*" Or _
Zelle.FormulaR1C1 Like "=" & "*" & "DBGET" & "*" Then
Zelle.Copy
Zelle.PasteSpecial Paste:=xlValues
End If
Next
Next wks
Sheets("Data").Select
Application.CutCopyMode = False
ActiveWindow.SelectedSheets.Delete
Application.Run Range("WORKSPACE.REFRESH")
sFile = Application.GetSaveAsFilename(InitialFileName:="AD_SIM_", fileFilter:="Excel-Dateien, *.xls")
If sFile = "Falsch" Then Exit Sub
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=sFile
Application.DisplayAlerts = True
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

Ich hätte zwei Fragen:
1. Da das Makro relativ lange läuft, wäre es möglich eine Art Fortschrittsfenster anzuzeigen? Evlt. sogar mit so einer Anzeige die Richtung 100% wandert. Oder zu mindest eine Box die sagt das gerade was gemacht wird und um Geduld bittet.
2. Beim löschen des Blattes Data kommt eine Meldung, ob man das Blatt wirklich löschen möchte. Kann man diese unterdrücken, so das das Blatt Data direkt gelöscht wird?
Für die VBA Cracks bestimmt ein kleineres Problem. Für eher ein größeres.
Viele Grüße und Dank
Michael

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro aufpeppen
12.04.2006 22:51:11
Uduuh
Hallo,

Sub Formel_Wert()
Dim wks As Worksheet
Dim Zelle As Range
Dim Bereich As Range
Dim sFile As String
Application.ScreenUpdating = True
Sheets("Data").Select
Application.Run Range("WORKSPACE.REFRESH") 'was macht das?
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
For Each wks In Worksheets
Set Bereich = wks.Range("A1:BN600")
For Each Zelle In Bereich.SpecialCells(xlCellTypeFormulas)'nur Formeln durchsuchen
If Zelle.FormulaR1C1 Like "*DE.NAME*" Or _
Zelle.FormulaR1C1 Like "*AT.GET*" Or _
Zelle.FormulaR1C1 Like "*INDEX*" Or _
Zelle.FormulaR1C1 Like "*DBGET*" Then
Zelle = Zelle.Value
End If
Next
Next wks
Application.DisplayAlerts = False
Sheets("Data").Delete
Application.DisplayAlerts = False
Application.Run Range("WORKSPACE.REFRESH") 'was macht das?
sFile = Application.GetSaveAsFilename(InitialFileName:="AD_SIM_", fileFilter:="Excel-Dateien, *.xls")
If sFile = "Falsch" Then Exit Sub
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=sFile
Application.DisplayAlerts = True
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

Warum wandelst du Sheets("Data") erst in die Werte um und löschst es später?
Was macht Application.Run Range("WORKSPACE.REFRESH")?
Gruß aus’m Pott
Udo

Anzeige
AW: Makro aufpeppen
12.04.2006 22:58:02
Michael
Hi Udo,
eigentlich nur aus Zeitersparnis. Da das Sheet Data voller Formeln ist die später durch Werte ersetzt werden. Dieser Weg geht schneller.
Da aus anderen Sheets mit einem Array (INDEX) auf Data zugeriffen wird, musss ich diese erst in Werte umwandeln und danach brauche ich Data ja nicht mehr.
Ich hoffe das hilft. Was Application.Run Range("WORKSPACE.REFRESH") macht weis ich nicht. Bin leider nur fähig mit Makrorecorder umzugehen und dies später zusammen zusetzen. :-( Kommt also vom Recorder. Wahrscheinlich braucht man es nicht.
Viele Grüße aus St. Joseph, MO USA
Michael
Anzeige
AW: Makro aufpeppen
12.04.2006 22:58:12
Michael
Hi Udo,
eigentlich nur aus Zeitersparnis. Da das Sheet Data voller Formeln ist die später durch Werte ersetzt werden. Dieser Weg geht schneller.
Da aus anderen Sheets mit einem Array (INDEX) auf Data zugeriffen wird, musss ich diese erst in Werte umwandeln und danach brauche ich Data ja nicht mehr.
Ich hoffe das hilft. Was Application.Run Range("WORKSPACE.REFRESH") macht weis ich nicht. Bin leider nur fähig mit Makrorecorder umzugehen und dies später zusammen zusetzen. :-( Kommt also vom Recorder. Wahrscheinlich braucht man es nicht.
Viele Grüße aus St. Joseph, MO USA
Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige