Anzeige
Archiv - Navigation
1372to1376
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 für mehrere Arbeitsschritte

Makro für mehrere Arbeitsschritte
29.07.2014 10:12:48
Peter
Hallo,
ist es möglich, bzw. kann mir jemand helfen, ein Makro für die folgenden, immer wieder gleichen, Arbeitsschritte zu erstellen, die ich an einer Excel-Tabelle bisher manuell ausführen muss:
1. Autofilter in Zeile 1 aktivieren
2. Oberste Zeile einfrieren
3. Die letzte Zelle in Spalte A ermitteln, die einen Wert enthält ("unten")
4. Die Zellen A2 bis A"unten" markieren und Inhalt in eine Zahl umwandeln
5. Alle leeren Zellen im Bereich F2 bis F"unten" und H2 bis H"unten" mit den
Buchstaben "ST" füllen
6. In allen Zellen der Bereiche G2 bis G"unten" und I2 bis I"unten"
die Zahl "0" durch die Zahl "1" ersetzen
7. Speichern
Vielen Dank für Eure Unterstützung!
PeMoe

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

Betreff
Datum
Anwender
Anzeige
AW: Makro für mehrere Arbeitsschritte
29.07.2014 11:45:07
EtoPHG
Hallo PeMoe,
Klar kann man helfen, aber vielleicht solltest du zuerstmal selber versuchen Hand an deine Datei zu legen, denn wir sehen die ja nicht!
1. Alle Arbeitschritte mit dem Makro-Rekorder aufzeichen.
2. Den Code lesen, verstehen und gemäss diesem Artikel überarbeiten.
3. Sind dann immer noch Fragen offen oder Fehler vorhanden, nochmal nachfragen mit Angaben wo/wie/was für Fehler auftauche. Mit dem überarbeiteten Code oder noch besser mit einer Beispielmappe.
Gruess Hansueli

AW: Makro für mehrere Arbeitsschritte
29.07.2014 15:30:17
Peter
Hallo,
danke für den Denkanstoß. Ich bin bisher schon bei der Textzahlenumwandlung gescheitert und hatte somit am Anfang aufgegeben...
Mit diesem Code scheint mein Problem gelöst:

Sub AME_BME()
' Autofilter aktivieren
Range("A1").Select
Selection.AutoFilter
'Oberste Zeile einfrieren
With ActiveWindow
.SplitColumn = 0
.SplitRow = 1
End With
ActiveWindow.FreezePanes = True
' Textzahlen in Spalte A umwandeln in Zahlen
Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
Columns("A:A").NumberFormat = "General"
' AME "ST" einfügen
Columns("F:F").Select
Selection.Replace What:="", Replacement:="ST", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
' BME "ST" einfügen
Columns("H:H").Select
Selection.Replace What:="", Replacement:="ST", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
' UmrFaktor AME "1" einfügen
ActiveSheet.Range("$A$1:$K$843").AutoFilter Field:=7, Criteria1:="0,00000"
Columns("G:G").Select
Selection.Replace What:="0", Replacement:="1", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
ActiveSheet.Range("$A$1:$K$843").AutoFilter Field:=7
' UmrFaktor BME "1" einfügen
ActiveSheet.Range("$A$1:$K$843").AutoFilter Field:=9, Criteria1:="0,00000"
Columns("G:G").Select
Columns("I:I").Select
Selection.Replace What:="0", Replacement:="1", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("A1").Select
ActiveSheet.Range("$A$1:$K$843").AutoFilter Field:=9
' Speichern und Schließen
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
Vielleicht geht es noch eleganter, aber für das erste Mal bin ich ganz zufrieden!
Gruß
PeMoe

Anzeige
Eleganter wäre OHNE Select (s. Link) (owT)
29.07.2014 15:48:04
EtoPHG

AW: Makro für mehrere Arbeitsschritte
29.07.2014 16:12:25
Rudi
Hallo,
ohne Select:
Sub AME_BME()
Application.ScreenUpdating = False
' Autofilter aktivieren
Range("A1").AutoFilter
'Oberste Zeile einfrieren
Range("A2").Select
ActiveWindow.FreezePanes = True
' Textzahlen in Spalte A umwandeln in Zahlen
Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
Columns("A:A").NumberFormat = "General"
' AME "ST" einfügen
Columns("F:F").Replace What:="", Replacement:="ST", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
' BME "ST" einfügen
Columns("H:H").Replace What:="", Replacement:="ST", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
' UmrFaktor AME "1" einfügen
ActiveSheet.Range("$A:$K").AutoFilter Field:=7, Criteria1:="0,00000"
Columns("G:G").Replace What:="0", Replacement:="1", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
ActiveSheet.ShowAllData
' UmrFaktor BME "1" einfügen
ActiveSheet.Range("$A:$K").AutoFilter Field:=9, Criteria1:="0,00000"
Columns("I:I").Replace What:="0", Replacement:="1", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("A1").Select
ActiveSheet.ShowAllData
' Speichern und Schließen
ActiveWindow.Close True
End Sub

Gruß
Rudi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige