A

Problem Makro
aktive Zelle und 4 Zellen rechts davon markieren Sub Markieren2()
alt = Selection.Address
Range(Selection, Selection.Offset(0, 4)).Select
neu = Selection.Address
MsgBox "alt: " & alt & " Neu: " & neu
End Sub
Sub Markieren()
alt = Selection.Address
Selection.Resize(1, 5).Select    
'wobei Resize die Größe (dh. Anzahl der Zeilen (hier 1) und Spalten (hier 5) des entsprechenden Bereiches neu festlegt.
neu = Selection.Address
MsgBox "alt: " & alt & " Neu: " & neu
End Sub
Anzahl der Formeln einer Mappe ermitteln 'von Andreas Steffens
Sub AnzahlFormeln()
Dim Anzahl, Blatt
Anzahl = 0
On Error Resume Next
For Each Blatt In ActiveWorkbook.Worksheets
Anzahl = Anzahl + CLng(Blatt.Cells.SpecialCells( _
xlCellTypeFormulas).Count)
Next
On Error GoTo 0
MsgBox "Diese Mappe enthält " & Anzahl & " Formeln.", _
vbOKOnly, "Formeln gezählt"
End Sub
Aktuellste Datei eines Verzeichnisses ermitteln von Andreas Steffens:

Sub Aktuellste_Datei()
    Dim Akt_Datei As String, Datei As String
    Dim Akt_Zeit As Double, Zeit As Double
    Const Verzeichnis = "c:\Eigene Dateien\Excel\"
    Akt_Datei = Dir(Verzeichnis & "*.xls")
    Akt_Zeit = CDate(FileDateTime(Verzeichnis & Akt_Datei))
    Do
        Datei = Dir()
        If Datei <> "" Then
            Zeit = CDate(FileDateTime(Verzeichnis & Datei))
            If Zeit > Akt_Zeit Then
                Akt_Zeit = Zeit
                Akt_Datei = Datei
            End If
        End If
    Loop Until Datei = ""
    MsgBox Akt_Datei & " (" & Format(Akt_Zeit, "DD.MM.YY hh:mm:ss") & ")"
End Sub

Änderungsdatum eintragen

(wenn in Spalte A eine Eingabe erfolgt, wird in Spalte B das Datum der Änderung geschrieben)

von Hans W. Herber:

Sub auto_open()
    Worksheets(1).OnEntry = "DatumEintragen"
End Sub

Sub DatumEintragen()
Dim AC As Range
    Set AC = Application.Caller
    If AC.Column <> 1 Then Exit Sub
    AC.Offset(0, 1) = Format(Date, "dd.mm.yy")
End Sub

Automatisches Starten von Makros beim Öffnen und Schließen von Dateien Es gibt 2 Möglichkeiten:
entweder folgende Makros in ein Allgemeines Modul eingeben.
Diese sind kompatibel zu Excel 5 und 95:

Sub Auto_open()
MsgBox "aus ""allgemeinem Modul"""
End Sub

Sub auto_close()
MsgBox "aus ""allgemeinem Modul"""
End Sub

Sie haben aber den Nachteil, dass sie beim Öffnen der Datei durch ein Makro nicht ausgeführt werden. Dies muss dann über "Application.Run Macro" nachgeholt werden.


Oder folgende Makros in "DieseArbeitsmappe" kopieren. In einem normalen
Modul erfüllen sie nicht ihre Funktion.
Sie sind zwar besser, weil sie auf jeden Fall ausgeführt werden, aber Excel 5 und 95 können damit nichts anfangen:

Private Sub Workbook_Open()
MsgBox "Makro aus ""DieseArbeitsmappe"""
End Sub

Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "Makro aus ""DieseArbeitsmappe"""
End Sub
Alle Arbeitsmappen schließen, außer der in der dieses Makro steht Sub AlleSchließenAußerDieser()
For Each w In Workbooks
If w.Name <> ThisWorkbook.Name Then w.Close
Next
End Sub
Aktienkurse im Web abrufen 'Es muß sich ein Tabellenblatt mit dem Namen Daten in der Arbeitsmappe befinden.
'Info: Das Grundmakro stammt von Hans W. Herber und wurde von mir ein bisschen angepaßt.


Sub Aktienkurs_Abrufen()
Dim wName$, WKN$
Application.ScreenUpdating = False
WKN = InputBox("WKN-Nr.:", "Web-Abfrage", 879530) 'T-Aktie
If WKN = "" Then Exit Sub
wName = "http://de.finance.yahoo.com/q?s=" & WKN & ".f"
Worksheets.Add after:=Worksheets(Worksheets.Count)
WebAufruf wName, ActiveSheet
Worksheets("Daten").Range("A2:G2").Value = Range("A17:G17").Value
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
Worksheets("Daten").Select
Range("A1").Select
Columns("A:G").AutoFit
End Sub

Function WebAufruf(wName$, TB As Worksheet)
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;" & wName, _
Destination:=Range("A1"))
.FieldNames = False
.RefreshStyle = xlInsertDeleteCells
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = False
.HasAutoFormat = True
.BackgroundQuery = True
.TablesOnlyFromHTML = True
.Refresh BackgroundQuery:=False
.SavePassword = False
.SaveData = True
End With
End Function


Meine aktuellsten Exceltipps finden Sie hier: