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() |
| Ä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() |
| 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 |