Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1408to1412
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 leere Zeilen löschen (dynamisch)

Makro für leere Zeilen löschen (dynamisch)
11.02.2015 17:46:44
Meli

Liebe Makro-Experte,
ich bekomme aus einem Programm eine Ausgabedatei, die ein bestimmtes Format hat. Daraus möchte ich Pivottabelle machen, aber die Struktur ist hierfür bescheiden. Deswegen führe ich diverse manuelle Anpassungen durch, damit ich am Schluß eine Tabelle habe, die ich weiter mit Pivot bearbeiten kann.
Da ich diese Prozedur häufiger machen muss, wäre hier bestimmt ein Makro ein sehr große Hilfe, aber ich kann es leider nicht selbst programmieren :-(. Aufzeichnen bringt mir hier nur bedingt etwas, weil die Zeilenanzahl bzw. Zeilen mit Werte bei jeder Abfrage sich ändern kann. Das heißt es müßte dynamisch programmiert werden. Kann mir hier bitte jemand helfen??
Die manuelle Schritte habe ich in der hochgeladenen Datei reingeschrieben. HIer habe ich ein Blatt, das ich "Ursprungsdatei" genannt habe (= Ausgabedatei). Dann das Blatt "Ziel" stellt dar, wie es am Schluß aussieht, wenn ich die manuelle Schritte durchgeführt habe.
https://www.herber.de/bbs/user/95690.xlsx
Über eure Hilfe bedanke ich mich jetzt schon.
Viele Grüße,
Meli

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro für leere Zeilen löschen (dynamisch)
11.02.2015 18:09:46
Daniel
Hi
teste mal folgenden Code, passend für deine Beispieldatei:
Sub test()
With ActiveSheet.UsedRange
With .Columns(.Columns.Count).Offset(1, 1).Resize(.Rows.Count - 1, 3)
.Columns(1).FormulaR1C1 = "=IF(OR(RC1=""Kostenart"",RC5<>""""),RC3,R[-1]C)"
.Columns(2).FormulaR1C1 = "=IF(RC1=""Kostenstelle"",RC3,R[-1]C)"
.Columns(3).FormulaR1C1 = "=If(RC6<>"""",Row(),0)"
.Formula = .Value
.Cells(1, 1).Offset(-1, 0).Value = "Kostenart"
.Cells(1, 2).Offset(-1, 0).Value = "Kostenstelle"
.Cells(1, 3).Offset(-1, 0).Value = 0
End With
End With
With ActiveSheet.UsedRange
.RemoveDuplicates .Columns.Count, xlNo
.Rows(1).SpecialCells(xlCellTypeBlanks).EntireColumn.Delete
.Columns(.Columns.Count).ClearContents
End With
End Sub
Gruß Daniel

Anzeige
DANKESCHÖN!!!
11.02.2015 18:33:33
Meli
Hallo Daniel,
ich habe es mit deinem Code probiert und es funktionert!! :-)... ich habe nur jetzt bei Kostenstellen Nullwerte, aber ich werde es mir morgen mit ausgeruhtem Kopf genauer analysieren. Ich hoffe, ich kann es dann selbst das Makro ändern (oder evtl. liegt es auch an der neuen Ausgabedatei, mit der ich dein Makro ausprobiert habe).
VIELEN DANK auf jeden Fall schon mal.
Gruß,
Meli

325 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige