Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1812to1816
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

Excel Makro
19.02.2021 13:29:38
Mikel
Hallo zusammen,
bin leider totaler Anfänger was Excel Makros betrifft... Habe mir über den Recorder ein Makro erstellt,
welches an einer Tabelle etwas "umstellt"... Ich muss aber immer erst die Zelle markieren und dann das Makro starten, damit die Funktion gestartet wird...
Was muss ich machen, damit ich vorher die Zellen markieren kann, und das Makro das dann der Reihe
nach abarbeitet ?
Vielen Dank im voraus für Eure Hilfe,
Mikel

Sub Makro8()
' Makro8 Makro
' Tastenkombination: Strg+x
ActiveCell.Range("A1:F1").Select
Selection.Cut Destination:=ActiveCell.Offset(0, 9).Range("A1:F1")
ActiveCell.Offset(-1, 0).Range("A1:I1").Select
Selection.Cut Destination:=ActiveCell.Offset(1, 0).Range("A1:I1")
ActiveCell.Offset(1, 0).Range("A1:I1").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlEdgeTop).LineStyle = xlNone
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
ActiveCell.Offset(-1, 0).Range("A1").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
ActiveCell.Offset(1, 12).Range("A1:D1").Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
Selection.UnMerge
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Excel Makro
19.02.2021 14:21:49
ChrisL
Hi Mikel
Schwer zu erraten, was dein Makro tun soll.
Vielleicht so...
Sub tt()
Dim i As Long
For i = ActiveCell.Row To ActiveCell.Row + Selection.Rows.Count Step 2
With Range(Cells(i - 1, 1), Cells(i, 6))
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeBottom).LineStyle = xlContinuous
End With
Range(Cells(i, 13), Cells(i, 16)).Merge
Next i
End Sub

cu
Chris
AW: Excel Makro
19.02.2021 22:57:24
Yal
Hallo Mikel,
"bin leider totaler Anfänger was Excel Makros betrifft": sogar Bill Gates hatte schon mal diesen Status (nur dass er dabei war, wenn die Excel Markos entstanden sind. Aber wer weisst, was Du noch auf die Beine bringt).
Synopsis:
_ für die markierte Zelle, erweitere die Markierung um 5 Zelle nach rechts (insg. 6 Zellen)
_ schneide und füge es 9 Zelle weiter nach Rechts
_ gehe eine Zeile nach oben, erweiter 5 Zelle nach rechts
_ schneide und füge es 1 zeile nach unten (behalte diese Zellen markiert)
_ führe Formatierung drauf
_ gehe eine Zeile nach oben, markiere aber nur die erste Zelle
_ führe Formatierung drauf
_ gehe eine Zeile nach unten und 12 nach rechts
_ markiere 3 zusätzliche Zelle nach Rechts (also von den ersten 6 Zellen die 4 letzten)
_ führe Formatierung drauf
Dann ist Frage, was jetzt passieren soll. Spricht, welche ist die nächste Zelle in der Reihe? Hättest Du als letzte Handlung des Makrorekording diese nächste Zelle markiert, könntest Du die Makro mit Strg+x sofort wieder starten, mit diesen markierte Zelle als Startpunkt...
Aber diese nächste Zelle kann man auch nachtragen. ActiveCell ist jetzt im Offset(0,12) zu dem ursprünglichen Startpunkt.
Oder man könnte sagen: von da wo ich bin als Startpunkt und solang diese Start (z.B.) nicht leer ist...
Sub InSchleife_machen()
Do While ActiveCell  ""
Makro8
Loop
End Sub

(Achtung: potentielle Endlosschleife. Fallschirm-Regel einbauen!)
VG
Yal
Anzeige
AW: Excel Makro
23.02.2021 13:55:28
Michael
Hallo zusammen,
vielen Dank für Eure schnellen Antworten. Leider komme ich damit nicht wirklich zurecht,
bzw. es funktioniert nicht... Ich hätte vielleicht etwas mehr zu dem Makro schreiben sollen, sorry!
Ich habe diverse Excel-Dateien, in denen Preislisten geschrieben sind.
Und zwar sind die Preise immer in 2 Zeilen dargestellt:
PE1 1,00 PE2 2,00
PE3 2,50
Jetzt sollen aus diesen 2 Zeilen eine Zeile gemacht werden.... Also habe ich über den Makrorecorder
erst den PE3 nach rechts gezogen:
PE1 1,00 PE2 2,00
PE3 2,50

Und dann die anderen Preise nach unten in die Zeile zum PE3 gezogen
PE1 1,00 PE2 2,00 PE3 2,50

Soweit, so gut! Jetzt muss ich aber jede Zelle anklicken, in der PE3 steht, um das Makro zu starten...
Leider sind es mal 10 PE3 oder auch mal 15 PE3
Oje.. Ich hoffe ich habe mich verständlich ausgedrückt..;-)
VG, Mikel
Anzeige
AW: Excel Makro
23.02.2021 15:50:04
ChrisL
Hi Mikel
Ich denke man sollte ganz von vorne beginnen. Was ist die Ausgangslage: alle Dateien in einem Ordner? alle gleich aufgebaut? Beispieldatei im XLSX-Format ins Forum stellen (anhand 1-2 Zeilen lassen sich keine Muster erkennen).
Was ist das Endziel: Z.B. bestimmte Kennzahlen ermitteln/auswerten? Wenn ich richtig verstehe, möchtest du viele neue Spalten produzieren (15 x PE3 = 30 Spalten), was eine anschliessende Auswertung erschwert (vielleicht wäre eine vertikale Transformation sinnvoller).
Schlussendlich würde ich mittels Power-Query an die Aufgabe herangehen. Erstmal eine Ordnerabfrage um die Einzeldateien einzusammeln:
https://www.youtube.com/watch?v=NY3m_nLGuTg
Danach die Transformation vornehmen (aus Tabelle Input wird Tabelle Output):
https://www.herber.de/bbs/user/144179.xlsx
cu
Chris
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige