Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1760to1764
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

Excel Makro für gesamte Spalte anwenden

Excel Makro für gesamte Spalte anwenden
31.05.2020 11:01:25
Charleen
Guten Tag,
ich möchte gerne ein Makro erstellen, welches dann einen Wert kopiert, nach diesem filtert, eine Summe bildet, diesen in die andere Arbeitsmappe einträgt und zusätzlich das älteste Datum kopiert und einträgt.
Dies sieht als Makro welches ich erstellt habe folgendermaßen aus:

Sub Makro1()
' Makro1 Makro
Range("A2").Select
Selection.Copy
Sheets("SAP").Select
ActiveSheet.Range("$A$1:$C$66").AutoFilter Field:=1, Criteria1:="=A", _
Operator:=xlOr, Criteria2:="=A Ergebnis"
Range("B7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Auswertung").Select
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("SAP").Select
Range("C2").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Auswertung").Select
Range("C2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("SAP").Select
ActiveSheet.Range("$A$1:$C$66").AutoFilter Field:=1, Criteria1:=Array( _
"A Ergebnis", "B", "B Ergebnis", "C Ergebnis", "D Ergebnis", "E Ergebnis", _
"F Ergebnis", "G Ergebnis", "H Ergebnis", "I Ergebnis", "J Ergebnis"), Operator:= _
xlFilterValues
Range("B13").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Auswertung").Select
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("SAP").Select
Range("C8").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Auswertung").Select
Range("C3").Select
ActiveSheet.Paste
Range("C9").Select
End Sub

Das Makro soll aus dem Reiter Auswertung nach jedem Wert in der Zeile Name filtern und dann hier die Summe der Menge jeweils im Reiter Auswertung eintragen. Danach soll noch das jeweils älteste Datum eingetragen werden.
Meine Frage wäre nun:
Wie bekomme ich es hin, dass ich das Makro nur beispielhaft für eine Zelle aufzeichne, also für den Namen A, aber das Makro dem Muster für alle anderen Namen ebenfalls folgt, also den Prozess auch für B, C, D, E, ... durchführt?

Angehängt finden Sie die beispielhafte Excel-Datei.
https://www.herber.de/bbs/user/137902.xlsx
Vielen Dank und viele Grüße
Charleen

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Makro für gesamte Spalte anwenden
31.05.2020 12:24:12
Hajo_Zi
Hallo Charleen,
das Makro konnte ich in Deiner Datei nicht finden, was wohl daran liegt das bei mir XLSX kein MNakrop enthält.
Welche Version benutzt Du die in XLSX ein Makro hat?

AW: Excel Makro für gesamte Spalte anwenden
31.05.2020 12:35:52
Charleen
Hallo Hajo,
ich habe die Datei ohne das Makro gespeichert...
Gruß
Charleen
AW: Excel Makro für gesamte Spalte anwenden
31.05.2020 13:02:04
AlterDresdner
Hallo Charleen,
mit dem Makro
Sub Auswertung()
Const Erster = "A" 'erster Buchstabe
Const Letzter = "K" 'letzter Buchstabe
Const Anzahl = 5 'Anzahl der Einträge
Dim zeile As Long, Zielzeile As Long, Buch As Long
Dim Aus As Object
Set Aus = Sheets("Auswertung")
Zielzeile = 2
zeile = 2
For Buch = Asc(Erster) To Asc(Letzter) 'alle Buchstaben
With Sheets("SAP")
Aus.Cells(Zielzeile, 1) = Chr(Buch)
Aus.Cells(Zielzeile, 2) = .Cells(zeile + Anzahl, 2)
Aus.Cells(Zielzeile, 3) = .Cells(zeile, 3)
Aus.Cells(Zielzeile, 3).NumberFormat = .Cells(zeile, 3).NumberFormat
Zielzeile = Zielzeile + 1
zeile = zeile + Anzahl + 1
End With
Next Buch
End Sub

sollte Dein Ziel zu erreichen sein. ggfls müssen die Konstanten angepasst werden.
PS: Die Angabe des Makros im Text und die Datei als .xlsx finde ich ganz sinnvoll,
nicht jeder öffnet gern unbekannte .xlsm...
Gruß der ALteDresdner
Anzeige
AW: Excel Makro für gesamte Spalte anwenden
31.05.2020 13:18:40
Charleen
Hallo der ALteDresdner,
das makro macht genau das was ich erreichen möchte, jedoch ist die Anzahl der Einträge im Reiter SAP variabel. Es können auch mal 20 oder mehr Einträge je "Name" vorhanden sein. Lässt sich dies auch lösen?
Gruß
Charleen
AW: Excel Makro für gesamte Spalte anwenden
01.06.2020 11:58:27
AlterDresdner
Hallo Charleen,
wenn sich das mit den Konstanten Erster, Letzter und Anzahl nicht regeln lässt,
der nachfolgende Code bestimmt die Anzahl aus "A Ergebnis", das muss dann aber so dastehen.
Sub Auswertung2()
Dim zeile As Long, Zielzeile As Long, Buch As String, Anzahl As Long
Dim Aus As Object
Set Aus = Sheets("Auswertung")
Zielzeile = 2
zeile = 2
With Sheets("SAP")
While Not IsEmpty(.Cells(zeile, 1)) 'alle Buchstaben
Buch = .Cells(zeile, 1)
Aus.Cells(Zielzeile, 1) = Buch
Anzahl = 0
Do
Anzahl = Anzahl + 1
Loop Until .Cells(zeile + Anzahl, 1) = Buch & " Ergebnis"
Aus.Cells(Zielzeile, 2) = .Cells(zeile + Anzahl, 2)
Aus.Cells(Zielzeile, 3) = .Cells(zeile, 3)
Aus.Cells(Zielzeile, 3).NumberFormat = .Cells(zeile, 3).NumberFormat
Zielzeile = Zielzeile + 1
zeile = zeile + Anzahl + 1
Wend
End With
End Sub

Gruß der AlteDresdner
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige