Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
712to716
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
712to716
712to716
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Formel kürzen

Formel kürzen
01.01.2006 14:54:50
Anja
Hallo Leute,
Ich habe eine Urlaubsliste, wo jeder Monat auf einem Sheet ist. Nun will ich per Makro eine Einzel-Jahres-Auflistung für nur eine Person machen und habe mir das per Macrorecorder aufzeichnen lassen. Leider ist die Formel ziemlich lang (weil ich auch die Formate mit übertragen haben möchte) und ich habe ni so viel ahnung wie ich diese kürzen soll.
Hat einer von euch eine gute Idee?
Noch was zum Inhalt: Es ist ein Userform, wo man Schicht und Namen auswählt und bei "OK" soll die untenstehende Formel greifen und das insgesamt für ca. 45 Personen, deswg. soll die Formel auch so kurz wie möglich werden.
Danke und Gruß Anja

Private Sub OKButton_Click()
If UserForm3.ComboBox2 = "Mustermann, Max" Then
Sheets(2).Select
Range("F13:AJ13").Select
Selection.Copy
Sheets(16).Select
Range("B6").Select
ActiveSheet.Paste
Rahmen
Sheets(3).Select
Range("F13:AG13").Select
Selection.Copy
Sheets(16).Select
Range("B10").Select
ActiveSheet.Paste
Rahmen
Sheets(4).Select
Range("F13:AJ13").Select
Selection.Copy
Sheets(16).Select
Range("B14").Select
ActiveSheet.Paste
Rahmen
Sheets(5).Select
Range("F13:AI13").Select
Selection.Copy
Sheets(16).Select
Range("B18").Select
ActiveSheet.Paste
Rahmen
Sheets(6).Select
Range("F13:AJ13").Select
Selection.Copy
Sheets(16).Select
Range("B22").Select
ActiveSheet.Paste
Rahmen
Sheets(7).Select
Range("F13:AI13").Select
Selection.Copy
Sheets(16).Select
Range("B26").Select
ActiveSheet.Paste
Rahmen
Sheets(8).Select
Range("F13:AJ13").Select
Selection.Copy
Sheets(16).Select
Range("B30").Select
ActiveSheet.Paste
Rahmen
Sheets(9).Select
Range("F13:AJ13").Select
Selection.Copy
Sheets(16).Select
Range("B34").Select
ActiveSheet.Paste
Rahmen
Sheets(10).Select
Range("F13:AI13").Select
Selection.Copy
Sheets(16).Select
Range("B38").Select
ActiveSheet.Paste
Rahmen
Sheets(11).Select
Range("F13:AJ13").Select
Selection.Copy
Sheets(16).Select
Range("B42").Select
ActiveSheet.Paste
Rahmen
Sheets(12).Select
Range("F13:AI13").Select
Selection.Copy
Sheets(16).Select
Range("B46").Select
ActiveSheet.Paste
Rahmen
Sheets(13).Select
Range("F13:AL13").Select
Selection.Copy
Sheets(16).Select
Range("B50").Select
ActiveSheet.Paste
Rahmen
Range("B1").Select
ActiveCell.FormulaR1C1 = "A-Schicht"
Range("B2").Select
ActiveCell.FormulaR1C1 = UserForm3.ComboBox2
Range("A1").Select
End If
Unload UserForm3
End Sub

Das Sub "Rahmen" ist wie folgt:
Sub Rahmen()
Application.CutCopyMode = False
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel kürzen
01.01.2006 16:39:29
Reinhard
Hi Anja,
Sub Rahmen()
Dim n As Byte
Application.CutCopyMode = False
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
For n = 7 To 10
With Selection.Borders(n)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Next n
End Sub

Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen.
AW: Formel kürzen
01.01.2006 16:49:12
Reinhard
Hi Anja,
Option Explicit
Option Base 1
Private Sub OKButton_Click()
Dim wks As Byte, Zelle
Zelle = Array("nix", "B6", "B10", "B14", "B18") ' hier noch ergänzen
If UserForm3.ComboBox2 = "Mustermann, Max" Then
For wks = 2 To 13
Worksheets(wks).Range("F13:AJ13").Copy
Sheets(16).Range(Zelle(wks)).Select
ActiveSheet.Paste
Call Rahmen
Next wks
Range("B1").FormulaR1C1 = "A-Schicht"
Range("B2").FormulaR1C1 = UserForm3.ComboBox2
Range("A1").Select
End If
Unload UserForm3
End Sub

Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen.
Anzeige
AW: Formel kürzen
01.01.2006 17:21:54
Anja
Hallo Reinhard,
vielen Dank erstmal für deine Antwort, hab es auch gleich in meine Tabelle "eingebaut". Leider bleibts an dieser Stelle hängen (wo der Pfeil ist...):
Option Explicit
Option Base 1

Private Sub OKButton_Click()
Dim wks As Byte, Zelle
Zelle = Array("nix", "B6", "B10", "B14", "B18") ' hier noch ergänzen
If UserForm3.ComboBox2 = "Mustermann, Max" Then
For wks = 2 To 13
Worksheets(wks).Range("F13:AJ13").Copy
------->Sheets(16).Range(Zelle(wks)).Select
ActiveSheet.Paste
Call Rahmen
Next wks
Range("B1").FormulaR1C1 = "A-Schicht"
Range("B2").FormulaR1C1 = UserForm3.ComboBox2
Range("A1").Select
End If
Unload UserForm3
End Sub

Hast du noch ne Idee? Hab leider echt noch ni allzuviel Plan, sorry.
Bin über jede Hilfe Dankbar.
Gruß Anja
Anzeige
AW: Formel kürzen
01.01.2006 17:32:13
Reinhard
Hi Anja,
k.A. warum das nicht klappt, probiers mal so:
Option Explicit
Option Base 1
Private Sub OKButton_Click()
Dim wks As Byte, Zelle
Zelle = Array("nix", "B6", "B10", "B14", "B18") ' hier noch ergänzen
If UserForm3.ComboBox2 = "Mustermann, Max" Then
For wks = 2 To 13
Worksheets(wks).Range("F13:AJ13").Copy Sheets(16).Range(Zelle(wks))
Call rahmen
Next wks
With Worksheets(16)
.Range("B1").FormulaR1C1 = "A-Schicht"
.Range("B2").FormulaR1C1 = UserForm3.ComboBox2
.Range("A1").Select
End With
End If
Unload UserForm3
End Sub
Sub rahmen()
End Sub

Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen.
Anzeige
AW: Formel kürzen
01.01.2006 17:40:34
Anja
Leider auch nicht :-(
AW: Formel kürzen
01.01.2006 17:32:47
Anja
Achso ich vergass noch:
In der Zeile
Worksheets(wks).Range("F13:AJ13").Copy
handelt es sich nicht immer um den selben, manchmal gehts nur bis "AI13" oder "AG13"...
Da funzt ja dann die Schleife nicht korrekt oder? Zumindest übertragt er dann mehr zellen als nötig.
gruß Anja
AW: Formel kürzen
01.01.2006 17:55:02
Reinhard
Hi Anja,
bastle mal ne kleine Beispieldatei mit diesen 6 Blättern und deinem gesamten Code und lade die hier hoch. Dass macht es mir, den Helfern bedeutent einfacher die Sache nachzuvollziehen.
manchmal" ? Wer endscheidet wann um wieviele Spalten es sich handelt?
Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen.
Anzeige
AW: Formel kürzen
02.01.2006 15:27:27
Anja
Hallo Reinhard,
so hier mal die Beispieldatei: https://www.herber.de/bbs/user/29632.xls
habe sie 1:1 übernommen, aber nur für eine Bsp. Person. Die Tabelle geht nach unten noch weiter für ca. 45 Personen, deswg. sind die Rahmen auch bei jeder Person etwas unterschiedlich und müssen quasi ohne auf die Seite 16 kopiert werden, da dort schon ein Layout eingerichtet ist. Kannst ja mal schauen ob du durchsiehst ;-). Danke schon mal für deine Mühe... Habe meine 2 ungekürzten Codes mal mit dringelassen...
Gruß Anja

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige