Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1460to1464
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 fortlaufend wiederholen

Makro fortlaufend wiederholen
26.11.2015 10:07:21
Blue
Servus,
ich habe mir mit Hilfe der Makroaufzeichnung ein Makro erstellt, welches mir aus Tabelle1 Daten in Tabelle2 in einer neuen Reihenfolge kopiert und die noch eine Formatierung anpasst.
Nun möchte ich das mir das Makro diesen Ablauf für die nächsten Zeilen wiederholt und zwar so oft wie in Tabelle1 gefüllte Zeilen gibt.
Könnte mir da jemand helfen?
Hier mal das Makro:
Sub Test()
' Test Makro
ActiveCell.FormulaR1C1 = "=Tabelle1!R[-16]C"
Range("C18").Select
ActiveCell.FormulaR1C1 = "=Tabelle1!R[-16]C"
Range("C19").Select
ActiveCell.FormulaR1C1 = "=Tabelle1!R[-17]C[1]"
Range("C20").Select
ActiveCell.FormulaR1C1 = "=Tabelle1!R[-18]C[2]&"" ""&Tabelle1!R[-18]C[3]"
Range("D18").Select
ActiveCell.FormulaR1C1 = "=Tabelle1!R[-16]C[3]"
Range("D19").Select
ActiveCell.FormulaR1C1 = "=Tabelle1!R[-17]C[4]"
Range("E18").Select
ActiveCell.FormulaR1C1 = "=Tabelle1!R[-16]C[4]"
Range("E19").Select
ActiveCell.FormulaR1C1 = "=Tabelle1!R[-17]C[5]"
Range("F18").Select
ActiveCell.FormulaR1C1 = "=Tabelle1!R[-16]C[5]"
Range("F19").Select
ActiveCell.FormulaR1C1 = "=Tabelle1!R[-17]C[6]"
Range("17:17,21:21").Select
Range("A21").Activate
Selection.RowHeight = 5
Range("B17:F21").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlMedium
End With
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlMedium
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("B18").Select
End Sub

mfg Blue Bird

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro fortlaufend wiederholen
26.11.2015 13:02:35
fcs
Hallo BlueBird,
bei einer sollchen Umgruppierung von Daten per Formel verwendet man in den Formeln am besten absolute Bezüge. Mit relativen Bezügen wird es zu kompliziert, da man berücksichtigen muss, dass die Quellzeile immer um eine Zeile größer wird, während sich die Zeilennummern in der Zieltabelle in 5er-Schritten ändern.
Gruß
Franz
Sub Test()
' Test Makro
Dim wks1 As Worksheet, wks2 As Worksheet
Dim Zeile_1 As Long
Dim Zeile_2 As Long
Dim strFormel As String, strTab As String
Dim StatusCalc As Long
Set wks1 = Worksheets("Tabelle1")
Set wks2 = ActiveSheet
'Makrobremsen lösen
With Application
.ScreenUpdating = False
StatusCalc = .Calculation
.Calculation = xlCalculationManual
End With
With wks1
Zeile_2 = 17
strTab = "'" & .Name & "'!"
For Zeile_1 = 2 To .Cells(.Rows.Count, 3).End(xlUp).Row
With wks2
With .Cells(Zeile_2, 3)
strFormel = "=" & strTab & " R" & Zeile_1 & "C3"
.Offset(1, 0).FormulaR1C1 = strFormel
strFormel = "=" & strTab & " R" & Zeile_1 & "C4"
.Offset(2, 0).FormulaR1C1 = strFormel
strFormel = "=" & strTab & " R" & Zeile_1 & "C5 &"" ""&" & strTab & " R" & Zeile_1 & _
"C6"
.Offset(3, 0).FormulaR1C1 = strFormel
strFormel = "=" & strTab & " R" & Zeile_1 & "C7"
.Offset(1, 1).FormulaR1C1 = strFormel
strFormel = "=" & strTab & " R" & Zeile_1 & "C8"
.Offset(2, 1).FormulaR1C1 = strFormel
strFormel = "=" & strTab & " R" & Zeile_1 & "C9"
.Offset(1, 2).FormulaR1C1 = strFormel
strFormel = "=" & strTab & " R" & Zeile_1 & "C10"
.Offset(2, 2).FormulaR1C1 = strFormel
strFormel = "=" & strTab & " R" & Zeile_1 & "C11"
.Offset(1, 3).FormulaR1C1 = strFormel
strFormel = "=" & strTab & " R" & Zeile_1 & "C12"
.Offset(2, 3).FormulaR1C1 = strFormel
End With
Application.Union(.Rows(Zeile_2), .Rows(Zeile_2 + 4)).RowHeight = 5
With .Range(.Cells(Zeile_2, 2), .Cells(Zeile_2 + 4, 6))
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
With .Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlMedium
End With
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlMedium
End With
.Borders(xlEdgeBottom).LineStyle = xlNone
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlMedium
End With
With .Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
.Borders(xlInsideHorizontal).LineStyle = xlNone
End With
End With 'wks2
Zeile_2 = Zeile_2 + 5
Next Zeile_1
End With 'wks1
With wks2
Zeile_2 = Zeile_2 - 1
With .Range(.Cells(Zeile_2, 2), .Cells(Zeile_2, 6))
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlMedium
End With
End With
End With
'Makrobremsen zurücksetzen
With Application
.ScreenUpdating = True
.Calculation = StatusCalc
End With
End Sub

Anzeige
AW: Makro fortlaufend wiederholen
26.11.2015 13:24:54
Blue
Servus,
danke für diese Lösung, klappt auch Prima.
Nur übergibt er mir die Daten aus Tabelle1 Spalte B nicht in Tabelle2 Spalte B, diese fehlen noch.
mfg Blue Bird

AW: Makro fortlaufend wiederholen
26.11.2015 14:04:59
fcs
Hallo Bluebird,
das ist halt das Problem von "ActiveCell" in deinem aufgezeichneten Makro. Man weiss halt nie als Außenstehender wo das ist, da hab ich es dann ignoriert.
Gruß
Franz
Du must im folgenden Teilabschnitt 2 Zeilen ergänzen:
        With .Cells(Zeile_2, 3)
strFormel = "=" & strTab & " R" & Zeile_1 & "C2"  'neu
.Offset(1, -1).FormulaR1C1 = strFormel            'neu
strFormel = "=" & strTab & " R" & Zeile_1 & "C3"
.Offset(1, 0).FormulaR1C1 = strFormel

Anzeige
AW: Makro fortlaufend wiederholen
27.11.2015 07:44:00
Blue
Servus Franz,
danke vielmals für die schnellen Lösungen, hat alles Prima geklappt.
mfg Blue Bird

AW: Makro fortlaufend wiederholen
27.11.2015 09:34:39
Blue
Servus,
ich müsste die Textgröße bei der Abgabe ändern.
Könntest du mir sagen wie ich das einpflege?
mfg Blue Bird

AW: Makro fortlaufend wiederholen
27.11.2015 12:27:44
fcs
Hallo Blue Bird,
sollen alle Zellen eine einheitlich Schriftgröße bekommen?
Oder soll die Schriftgröße individuell für bestimmte Zellen oder Spalten festgelegt werden.
die entsprechende VBA-Anweisung ist
    Zellbereich.Font.Size=11  '11 = Schriftgröße in Punkt

Zellbereich ist dann entsprechend festzulegen. Evtl. kann man es hier mit in die Rahmenformatierung einbauen.
Gruß
Franz

Anzeige
AW: Makro fortlaufend wiederholen
30.11.2015 13:23:38
Blue
Servus Franz,
ich tuhe mich irgendwie schwer die VBA einzupflegen.
Wo muss ich diese einsetzen damit ich es für die Spalten individuell einstellen kann.
Unabhängig davon hätte ich noch eine andere Frage, da ich meine Liste sehr wahrscheinlich abändern muss.
Wie bekomme ich es hin das meine Daten die in Tabelle2 stehen in Tabelle1 nicht mehr in jeder Spalte in einer neuen Zeile stehen sondern mit Textumbrüch in einer Zelle erscheinen.
Hier mal noch ein Bespiel zum Verstndänis.
https://www.herber.de/bbs/user/101897.xlsm
mfg Blue Bird

Anzeige
AW: Makro fortlaufend wiederholen
30.11.2015 23:11:58
fcs
Hallo Blue Bird,
in der Textdatei hab ich das angepasste Makro hochgeladen, so dass Zellinhalte wie in der Beispiel-Tabelle umgruppiert werden - inlusive Formatierung der Inhalte in den Spalten.
https://www.herber.de/bbs/user/101912.txt
Gruß
Franz

AW: Makro fortlaufend wiederholen
01.12.2015 08:15:59
Blue
Servus Franz,
genauso habe ich mir das Makro forgestellt, da bin ich flexibel und kann mir das anpassen wie ich es brauche.
Danke vielmals dafür, nur eine Sache habe ich noch.
In dem jetztigen Makro muss ich immer erst in das Tabellenblatt gehen wo meine zu kopierenden Daten sind.
Könntest du das noch so anpassen das ich wie in der dem ersten Makro das ich auf meinem Zieltabellenblatt bleiben kann zur Ausführung des Makros?
Da in meinem Liste das Makro über Button auf dem Zieltabellenblatt ausgeführt wird und das wo meine Daten zum kopieren stehen ausgeblendet ist.
mfg Blue Bird

Anzeige
AW: Makro fortlaufend wiederholen
01.12.2015 10:37:00
Blue
Servus Franz,
meine letzte Nachricht hat sich erledigt, ich habe es selber hinbekommen.
Bräuchte allerdings doch noch einmal deine Hilfe und zwar müsste ich für die Email Schriftgröße anders ausgeben wie für die Fax.
Wie müsste ich das Makro an dieser Stelle anpassen.
mfg Blue Bird

AW: Makro fortlaufend wiederholen
01.12.2015 11:45:24
fcs
Hallo Blue Bird,
unterschiedliche Schriftgrößen sind in Zellen mit Formeln nicht möglich.
Du müsstest die Formel in den Zellen in Spalte F durch ihren Wert ersetzen. Dann funktioniert es.
Anzupassender Abschnitt im Makro
        'Zeilenhöhe für Zeilen mit Daten setzen /Schriftgröße E-mail anpassen
Dim Pos1 As Integer, Pos2 As Integer
For Zeile_1 = Zeile_1_Ziel + 1 To Zeile_2 - 1 Step AnzZeilen
'            .Rows(Zeile_1).RowHeight = 39
.Rows(Zeile_1).AutoFit
With .Cells(Zeile_1, 6)
.Value = .Text
Pos1 = InStr(1, .Text, Chr(10)) + 1
Pos2 = Len(.Text)
.Characters(Pos1, Pos2).Font.Size = 8
End With
Next

Gruß
Franz

Anzeige
AW: Makro fortlaufend wiederholen
01.12.2015 13:15:58
Blue
Servus Franz,
nochmal vielen Dank für deine immer wieder schnellen und passenden Antwort.
Sorry aber ich gerade immer wieder an Sachen die ich erweitern muss.
Aber durch das ganze komm ich immer weiter in die Materie VBA hinein.
Nun bräuchte ich noch den Befehl "An Zellengröße anpassen".
Z.B. wenn die Faxnummer zu Lang wird sich an Zellgröße anpassen soll.
mfg Blue Bird

AW: Makro fortlaufend wiederholen
01.12.2015 13:25:49
Blue
Servus Franz,
habe mich verschieben die Sache mit dem "An Zellengröße anpassen" würde ich gerne in Spalte "Adresse" mit einpflegen.
Da manchmal Firmennamen so groß sind das ein Zeilenumbruch entsteht und das macht mir die Sache rein optisch unangenehm.
mfg Blue Bird

Anzeige
AW: Makro fortlaufend wiederholen
01.12.2015 16:24:38
fcs
Hallo Blue Bird,
die Formatierungen "Zeilenumbruch" und "An Zellengröße anpassen" kann man nicht mit einander kombinieren.
Du musst also mit dem rein optisch Unangenehmen leben.
Gruß
Franz

AW: Makro fortlaufend wiederholen
02.12.2015 08:09:45
Blue
Servus,
alles klar, dann lebe ich damit, bzw. muss dann halt an der einen oder anderen Stelle nochmal per Hand ran, aber das ist nicht umbedingt das Problem.
Danke dir nochmal vielmals für die schnellen und praktischen Lösungen.
mfg Blue Bird

AW: Makro fortlaufend wiederholen
04.12.2015 09:32:08
Blue
Servus,
ich habe in dieser Excelliste noch ein anderes Thema was zwar nicht zum Betreff passt, aber die Leute die mir hier bereits geholfen haben wissen somit schonmal was meine Gedanken und Hintergründe waren.
Zum aktuellen Thema, ich habe ja in Tabelle2 in Spalte C-F Einträge welche zusammengefasst in Tabelle1 in einer Zelle kopiert werden.
Nun bräuchte ich ein Makro welches die Doppelten Einträge in diesen Zellen löscht ohne die anderen nicht betroffenen Zellen zu verändern.
Hier ein Beispiel:
Userbild
mfg Blue Bird
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige