Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
844to848
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
844to848
844to848
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Format-Code erstellen ... mehrfach verwenden

Format-Code erstellen ... mehrfach verwenden
10.02.2007 17:24:49
proxima05
Hallo,
der nachstehende Code ist in einer Click-Routine für einen Befehlsbutton eingebaut (neben anderem Code). Jetzt würde ich diesen Code ohne ihn mehrfach irgendwo eintragen zu müssen, gerne in einer anderen Routine verwenden. Kann mir jemand sagen, wie das gehen kann (ich habe mal mit "Call" versucht, aber dazu muss dieser Abschnitt doch im Ursprungs-Code einen Namen zugeordnet werden, damit dieser dann über "Call" abgerufen werden kann)
====================================
...
'===============================================================================================================
'Die folgenden Code-Zeilen fügen eine Beschriftung unter den Summenzellen ein
'ausgehend von der letzten Zelle mit Inhalt (in dem Fall die Formelzelle) und
'dann nach links gehend.
Sheets("Tabelle1").Range("F34").End(xlUp).Select
ActiveCell.Offset(rowoffset:=1, columnoffset:=0).Activate
ActiveCell.FormulaR1C1 = "Name1"
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Font.Bold = True
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.Orientation = 0
End With
Sheets("Tabelle1").Range("F34").End(xlUp).Select
ActiveCell.Offset(rowoffset:=0, columnoffset:=-1).Activate
ActiveCell.FormulaR1C1 = "Name2"
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With Selection.Interior
.Pattern = xlSolid
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.Orientation = 0
End With
Sheets("Tabelle1").Range("F34").End(xlUp).Select
ActiveCell.Offset(rowoffset:=0, columnoffset:=-2).Activate
ActiveCell.FormulaR1C1 = """Name3"""
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Font.Italic = True
Selection.Font.Bold = True
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.Orientation = 0
End With
End If
Sheets("Cash Flow").Range("F34").End(xlUp).Select
ActiveCell.Offset(rowoffset:=0, columnoffset:=0).Activate
End Sub
====================================
Wäre toll, wenn da jemand eine Idee hätte.
Danke & Gruß
Ralph

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Format-Code erstellen ... mehrfach verwenden
10.02.2007 17:59:57
stormy_weathers
Hallo,
wenn ich Dich richtig verstehe, möchtest Du den Code aufrufen wenn Du auf Button1 klickst, oder auf Button2 oder ...
Dazu verschiebst Du den Code einfach in ein Modul und benennst die Sub.

Sub Name_der_Sub()
Dein Code
End Sub

Aufrufen kannst Du den Code dann einfach über "Modulx.Name_der_Sub".
Ich hoffe ich konnte helfen.
Gruß
stormy
AW: Format-Code erstellen ... mehrfach verwenden
10.02.2007 20:09:09
fcs
Hallo Ralph,
damit du den Code von verschiedenen Sub als Subroutine aufrufen kannst muss du ihn in eine eigene Sub auslagern. Damit die Subroutine entsprechend flexibel ist solltest du auch verschiedene Parameter mit übergeben die bei jedem Aufruf anders sein können.
Nachfolgend hab ich deinen Code mal beispielhaft umgebaut und auch sämtliche Select/Activate-Anweisungen entfernt, die nicht notwendig sind. Satt der Zahlen und Text-Strings kannst natürlich auch geignete Variablen als Übergabeparameter für die Subroutine angeben.
Gruss
Franz

Code für den Button mit Aufruf der Subroutine
Sub Commandbutton1_Click()
'code Teil1
Call SummenZeilenTextFormatieren("Tabelle1", 6, 34, "Name1", "Name2", "Name3")
'Code Teil 2
End Sub
Code der Subroutine mit Übergabe-Parametern. Diesen Code in ein Modul enfügen
Sub SummenZeilenTextFormatieren(Tabelle As String, Spalte, Zeile As Long, Name1 As String, Name2 As String, Name3 As String)
'Tabelle = Name der Tabelle in der Zeile unter Summen formatiert werden soll
'Spalte = Nummer der Spalte in der die letzte Zeile ermittelt werden soll
'Zeile = Nummer der Zeile oberhalb der die Summenzeile gesucht werden soll
'Name1 bis Name3 = Texte, die in die Zellen eingetragen werdn sollen
Dim wks As Worksheet, Zelle As Range
Set wks = ActiveWorkbook.Worksheets(Tabelle)
Set Zelle = wks.Cells(Zeile, Spalte).End(xlUp)
With Zelle.Offset(rowoffset:=1, columnoffset:=0)
.FormulaR1C1 = Name1
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
.Font.Bold = True
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With .Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.Orientation = 0
End With
Set Zelle = wks.Cells(Zeile, Spalte).End(xlUp)
With Zelle.Offset(rowoffset:=0, columnoffset:=-1)
.FormulaR1C1 = Name2
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
With .Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With .Interior
.Pattern = xlSolid
End With
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.Orientation = 0
End With
Set Zelle = wks.Cells(Zeile, Spalte).End(xlUp)
With Zelle.Offset(rowoffset:=0, columnoffset:=-2)
.FormulaR1C1 = """" & Name3 & """" 'evtl. reicht hier auch Name3
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
.Font.Italic = True
.Font.Bold = True
With .Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.Orientation = 0
End With
End Sub

Anzeige
AW: Format-Code erstellen ... mehrfach verwenden
11.02.2007 10:49:47
proxima05
Hallo Franz,
genauso habe ich es mir vorgestellt ... Dein Code funktioniert so! .... wieder etwas gelernt.
Besten Dank für die Unterstützung. Schönen Sonntag.
Gruß
Ralph

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige