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

schaffe es nicht, ein aufgezeichnetes Makro ändern

schaffe es nicht, ein aufgezeichnetes Makro ändern
13.07.2014 14:51:31
Jenny
Hallo an alle,
ich weiß im Betreff fehlt noch das Wort "zu", aber so viele Zeichen lässt der Betreff nicht zu.
Habe folgendes Makro aufgezeichnet, habe aber damit ein paar Probleme, bei denen ich als Laie eure Hilfe brauche.
1. Das Makro soll den gefüllten Teil der Tabelle, also zur Zeit von A1 bis P8410 nach C aufsteigend, dann F aufsteigend sortieren und ebenfalls den gefüllten Bereich vereinheitlichen auf Calibri, Schriftgröße 11 und nicht fett geschrieben.
Soweit habe ich es aufgezeichnet.
Ich habe jetzt noch 2 Dinge, bei denen ich nicht weiterkomme.
1. ich suche für das Makro noch einen Mechanismus, der nach dem aufgezeichneten Teil
die letzte Zeile sucht, in der etwas in Spalte F steht und alle nachfolgenden Zeilen löscht, deren Text in Spalte A identisch ist mit dem Text in Spalte A in der gesuchten Zeile.
Diese Texte in Spalte A stehen immer in direkt nachfolgenden Zeilen, sobald in einer Zeile ein anderer Text steht, braucht nicht mehr weitergesucht zu werden.
2. In dem Makro steht mehrmals der Name des Tabellenblatts, gibts dazu auch eine Alternative, die ich nicht ändern muss, wenn ich den Blattnamen ändere?
3. Die Ranges in dem Makro sind jeweils festgelegt auf die Zeilen 1 bis 8410, jedoch aufgrund des löschens von Zeilen wird die benögtite Range kleiner, gibt es denn die Möglichkeit diese 8410 durch die letzte beschriebene Zeile zu ersetzen?
Wünsche euch noch ein schönes Wochenende und vielen Dank
Jenny
PS: Da mit dem aktivieren von C651 hab ich mich verklickt, das hat mit dem Sinn des Makros nichts zu tun.
Sub Makro3()
' Makro3 Makro
' Tastenkombination: Strg+q
Range("A1:P8410").Select
Range("C651").Activate
With Selection.Font
.Name = "Calibri"
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
With Selection.Font
.Name = "Calibri"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
Selection.Font.Bold = True
Selection.Font.Bold = False
ActiveWorkbook.Worksheets("22-351 10.03.1997").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("22-351 10.03.1997").Sort.SortFields.Add Key:=Range _
("C1:C8410"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("22-351 10.03.1997").Sort.SortFields.Add Key:=Range _
("F1:F8410"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("22-351 10.03.1997").Sort
.SetRange Range("A1:P8410")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: schaffe es nicht, ein aufgezeichnetes Makro ändern
14.07.2014 18:09:33
fcs
Hallo Jenny,
hier das entsprechend angepasste/ergänzte Makro.
Ich hoffe ich hab das Löschen von Zeile, die in Spalte A mit dem Suchwert übereinstimmen korrekt verstanden.
Bezüglich des Blattnamens im aufgezeichneten Code: Das Makro bearbeit jetzt immer das beim Start des Makros aktive Tabellenblatt.
Gruß
Franz
Sub Makro3()
' Makro3 Makro
' Tastenkombination: Strg+q
Dim wks As Worksheet, Zelle As Range
Dim Zeile As Long, Zeile_L As Long, Zeile_LF As Long, varSuch
Set wks = ActiveSheet
With wks
'letzte Zeile mit Daten
Set Zelle = .Cells.Find(What:="*", After:=.Cells(1, 1), LookIn:=xlValues, _
lookat:=xlWhole, searchorder:=xlByRows, Searchdirection:=xlPrevious)
If Zelle Is Nothing Then
'Tabellenblatt ist leer
MsgBox "keine Daten im Tabellenblatt"
GoTo Beenden
Else
Zeile_L = Zelle.Row
With .Range(.Cells(1, 1), .Cells(Zeile_L, 16)) 'Daten Spalten A bis P
With .Font
.Name = "Calibri"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
.Font.Bold = False
End With
If Zeile_L > 2 Then 'wenn Zeile1 = Spaltentitel sonst > 1 prüfen
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=.Range(.Cells(1, 3), .Cells(Zeile_L, 3)), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=.Range(.Cells(1, 6), .Cells(Zeile_L, 6)), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With .Sort
.SetRange wks.Range(wks.Cells(1, 1), wks.Cells(Zelle.Row, 16))
.Header = xlYes 'xlGuess - wenn Spaltentitel in Zeile 1 dann unbedingt xlYes sonst  _
xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'letzte Zeile in Spalte F
Zeile_LF = .Cells(.Rows.Count, 6).End(xlUp).Row
Application.ScreenUpdating = False
'Wert in Spalte A merken
varSuch = .Cells(Zeile_LF, 1).Value
'Werte mit Werte in Spalte A vergleichen und ggf. löschen
For Zeile = Zeile_L To Zeile_LF + 1 Step -1
If .Cells(Zeile, 1).Value = varSuch Then
.Rows(Zeile).Delete Shift:=xlShiftUp
End If
Next
Application.ScreenUpdating = True
End If
End If
End With
Beenden:
End Sub

Anzeige
AW: schaffe es nicht, ein aufgezeichnetes Makro ändern
14.07.2014 19:37:15
Jenny
Hallo Franz,
danke erstmal. Werde erst im Laufe des Abends zum Testen kommen, bekomme gleich Besuch. DAmits keine Missverständnisse gibt. Es soll die letzte Zeile gesucht werden, die einen Inhalt in Spalte F hat, ich sage jetzt einfach mal, das ist Zeile 700, dann soll Zeile 701 gelöscht werden, wenn A701 identisch ist mit A700, ebenso soll Zeile 702 gelöscht werden, wenn A702 = A700, wenn A703 identisch ist mit A700 soll die Zeile 703 gelöscht werden usw. usw. bis eine Zeile erreicht ist, in der der Text in Salte A ungleich A700 ist (was natürlich auch schon in Zeile 701 der Fall sein kann), diese und alle weiteren Zeilen sollen dann erhalten bleiben.

Anzeige
AW: schaffe es nicht, ein aufgezeichnetes Makro ändern
16.07.2014 10:55:09
Jenny
hallo Franz,
sorry habe es jetzt erst geschafft, zu testen. Das Makro funktioniert, aber gibt es vieleicht noch die Möglchkeit, dass mir danach wieder die Stelle angezeigt wird, an der ich gerade am arbeiten war (sprich die erste Zeile in der Spalte F leer ist), anstatt wie im Moment der Anfang des Tabellenblattes.
Auf jeden Fall schonmal vielen vielen Dank
Jenny

AW: schaffe es nicht, ein aufgezeichnetes Makro ändern
16.07.2014 11:18:02
Jenny
hallo Franz, hat sich erledigt. Habe das Zeilen löschen und das sortieren von der Reihenfolge her vertauscht, weil es ansonsten hätte passieren können dass durchs sortieren ein anderer Text als Referenz in Spalte A genommen worden wäre als es noch vor dem Sortieren der Fall gewesen wäre und siehe da, ohne dass ich es mir erklären kann habe ich dadurch auch erreicht, dass das Makro an dieser Stelle bleibt und nicht den Tabellenanfang anzeigt.
Gruß
Jenny
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige