Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VBA Excel - Rahmen hinzufügen

Frage Entwicklung VB for Applications

Mitglied: unkwownuser

unkwownuser (Level 1) - Jetzt verbinden

04.09.2009, aktualisiert 12:16 Uhr, 15414 Aufrufe, 10 Kommentare

Hallo liebes Adminstrator.de Forum,

ich habe ein kleines Problemchen mit meinem VBA Script.
Ich möchte gerne noch einen Rahmen in die bestehende Sub einfügen. Jedoch klappt es nicht so richtig.


Hier mal der aktuelle Code:
01.
Sub assignStyle(xE, fromColumnNumber, toColumnNumber) 
02.
 
03.
	xE.Range(fromColumnNumber, toColumnNumber) = value 
04.
	xE.Range(fromColumnNumber, toColumnNumber).Font.Name = "Tahoma" 
05.
	xE.Range(fromColumnNumber, toColumnNumber).Font.Size = 12 
06.
	xE.Range(fromColumnNumber, toColumnNumber).Font.Italic = True 
07.
	xE.Range(fromColumnNumber, toColumnNumber).Font.Bold = True 
08.
	xEl.Range(fromColumnNumber, toColumnNumber).Font.Underline = True 
09.
		 
10.
	With xE.Range("A1") 
11.
		.Borders(xlDiagonalDown).LineStyle = xlNone 
12.
		.Borders(xlDiagonalUp).LineStyle = xlNone  
13.
			With .Borders 
14.
				.LineStyle = xlContinuous 
15.
				.Weight = xlThin 
16.
				.ColorIndex = xlAutomatic  
17.
			End With 
18.
	End With 
19.
End Sub

Gruß,
unkwownuser
Mitglied: 76109
04.09.2009 um 12:05 Uhr
Hallo unkwownuser!

Versuchs mal mit:
01.
    With .Borders(xlEdgeLeft) 
02.
        .LineStyle = xlContinuous 
03.
        .Weight = xlThin 
04.
        .ColorIndex = xlAutomatic 
05.
    End With 
06.
    With .Borders(xlEdgeTop) 
07.
        .LineStyle = xlContinuous 
08.
        .Weight = xlThin 
09.
        .ColorIndex = xlAutomatic 
10.
    End With 
11.
    With .Borders(xlEdgeBottom) 
12.
        .LineStyle = xlContinuous 
13.
        .Weight = xlThin 
14.
        .ColorIndex = xlAutomatic 
15.
    End With 
16.
    With .Borders(xlEdgeRight) 
17.
        .LineStyle = xlContinuous 
18.
        .Weight = xlThin 
19.
        .ColorIndex = xlAutomatic 
20.
    End With
Gruß Dieter
Bitte warten ..
Mitglied: unkwownuser
04.09.2009 um 12:15 Uhr
Hallo didi1954,

erstmal Danke für deinen Vorschlag, jedoch spuckt er mir immer noch Fehler aus.
Das Problem ist halt, dass es unter einer bestehenden Sub ausgeführt werden soll.
Jedoch führt das irgendwie zum Fehler.


Gruß,
unkwownuser
Bitte warten ..
Mitglied: 76109
04.09.2009 um 12:28 Uhr
Hallo unkwownuser!

Der Rahmen sollte funktionieren und der Fehler ist wohl das hier:
xE.Range(fromColumnNumber, toColumnNumber) = value
Was ist value? sehe ich nirgends

Gruß Dieter
Bitte warten ..
Mitglied: unkwownuser
04.09.2009 um 12:33 Uhr
Hallo didi1954,

in einer eigenen Sub funktioniert es, aber sobald ich es in eine vorhande Sub reinschreibe, crasht es.

Hier nochmal der aktuelle Code:
01.
	Sub assignStyle(xE, fromColumnNumber, toColumnNumber) 
02.
		xE.Range(fromColumnNumber, toColumnNumber).Font.Name = "Tahoma" 
03.
		xE.Range(fromColumnNumber, toColumnNumber).Font.Size = 12 
04.
		xE.Range(fromColumnNumber, toColumnNumber).Font.Italic = True 
05.
		xE.Range(fromColumnNumber, toColumnNumber).Font.Bold = True 
06.
		xE.Range(fromColumnNumber, toColumnNumber).Font.Underline = True 
07.
 
08.
		With xE.Range("A1:F10") 
09.
			With .Borders(xlEdgeLeft) 
10.
				.LineStyle = xlContinuous 
11.
				.Weight = xlThin 
12.
				.ColorIndex = xlAutomatic 
13.
			End With 
14.
			With .Borders(xlEdgeTop) 
15.
				.LineStyle = xlContinuous 
16.
				.Weight = xlThin 
17.
				.ColorIndex = xlAutomatic 
18.
			End With 
19.
			With .Borders(xlEdgeBottom) 
20.
				.LineStyle = xlContinuous 
21.
				.Weight = xlThin 
22.
				.ColorIndex = xlAutomatic 
23.
			End With 
24.
			With .Borders(xlEdgeRight) 
25.
				.LineStyle = xlContinuous 
26.
				.Weight = xlThin 
27.
				.ColorIndex = xlAutomatic 
28.
			End With 
29.
		End With 
30.
		 
31.
	End Sub

Gruß,
unkwownuser
Bitte warten ..
Mitglied: 76109
04.09.2009 um 12:55 Uhr
Hallo unkwownuser!

Unklar ist, was Du für Parameter an die Sub übergibst (Call assignStyle(?, ?, ?,...)

Sollte sein:
Call assignStyle( Sheet, Integer, Integer ...)

Die Sub assignStyle(xE, fromColumnNumber, toColumnNumber,...) sollte lauten:
Sub assignStyle(ByRef xE , ByVal fromCol... As Integer, ByVal toCol... As Integer,...)
oder:
Sub assignStyle( ByVal xE As Worksheet , ByVal fromCol... As Integer, ByVal toCol... As Integer,...)

Range ( fromColumn, toColumn) ist ja total falsche Syntax. Hatte ich garnicht drauf geachtet

Wohl eher:
xE.Range(xE.Cells(fromRow, fromColumn), xE.Cells(toRow, toColumn))
D.h. bei den Parametern fehlen noch die Zeilen?

Gruß Dieter
Bitte warten ..
Mitglied: unkwownuser
04.09.2009 um 14:06 Uhr
Hallo didi1954,

die Antwort kommt ein bisschen spät, war gerade zu Tisch.
Jetzt hast du mich ein wenig überfordert mit so vielen Parametern
Was ich noch vergessen hatte zu sagen, es handelt sich hierbei um eine exteren *.vbs-Datei.
Eventuell hat das auch damit was zu tuen.


Gruß,
unkwownuser
Bitte warten ..
Mitglied: bastla
04.09.2009 um 15:13 Uhr
Hallo unknownuser und didi1954!

Nur als Anmerkung: VBS kennt natürlich keine Excel-Konstanten, daher entweder diese am Beginn des Scripts festlegen, etwa:
Const xlEdgeLeft = 7
oder (q & d) den Wert (7) direkt verwenden.

Zu finden sind die entsprechenden Werte durch Ausgabe in VBA, also etwa
MsgBox xlEdgeLeft & "_" & xlEdgeTop & "_" & xlEdgeRight & "_" & xlEdgeBottom
Grüße
bastla
Bitte warten ..
Mitglied: 76109
04.09.2009 um 15:35 Uhr
Hallo unkwownuser und bastla!

In Deinem Beitrag steht VBA-Excel und VBA-Script. Das es ein VB-Script (*.vbs) ist, ist so nicht zu erkennen. Aber egal, die Argumente, die Du an die Routine übergibst sind mir immer noch unbekannt? Und wie bastla schreibt, sind in VBS die Border-Konstanten unbekannt.

Wenn Deine Argumente nur aus vonSpalte und bisSpalte besteht, fehlen die Zeilenangaben? Oder sind es z.B. vonRange("A1") und bisRange("XY"). Habe leider keine Zauberkugel

Gruß Dieter
Bitte warten ..
Mitglied: 76109
04.09.2009 um 19:14 Uhr
Hallo unkwownuser!

In VBS würde z.B. das (etwas optimiert) funktionieren:
01.
Const xlContinuous = 1 
02.
Const xlThin = 2 
03.
Const xlAutomatic = &HFFFFEFF7 
04.
 
05.
Const xlEdgeLeft = 7 
06.
Const xlEdgeTop = 8 
07.
Const xlEdgeBottom = 9 
08.
Const xlEdgeRight = 10 
09.
 
10.
Set objExcel = CreateObject("Excel.Application") 
11.
 
12.
objExcel.Workbooks.Add:  objExcel.Visible = True 
13.
 
14.
Call AssignStyle(objExcel.ActiveWorkbook.ActiveSheet, "B2", "F10") 
15.
 
16.
Sub AssignStyle(ByRef Wks, ByRef FromRange, ByRef ToRange) 
17.
    With Wks.Range(Wks.Range(FromRange), Wks.Range(ToRange)).Font 
18.
        .Name = "Tahoma" 
19.
        .Size = 12 
20.
        .Italic = True 
21.
        .Bold = True 
22.
        .Underline = True 
23.
    End With 
24.
     
25.
    For i = xlEdgeLeft To xlEdgeRight 
26.
        With Wks.Range(Wks.Range(FromRange), Wks.Range(ToRange)).Borders(i) 
27.
            .LineStyle = xlContinuous 
28.
            .Weight = xlThin 
29.
            .ColorIndex = xlAutomatic 
30.
        End With 
31.
    Next 
32.
End Sub
Gruß Dieter
Bitte warten ..
Mitglied: unkwownuser
08.09.2009 um 10:07 Uhr
Hallo didi1954,

das sieht super aus und entspricht genau meinen Vorstellungen.
Jetzt habe ich noch eine Frage dazu.
Kann man z.B. in einer Sub "defineStyle" den Style festlegen und dann in einer neuen Sub "assignStyle" den Style zuweisen?
Also sprich, man legt in der ersten Sub einen Style für die ganze Arbeitsmappe an und in der zweiten Sub wählt man die gewünschten Felder an.


Gruß,
unkwownuser
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
gelöst Verschieben von Zellinformation in andere Spalte (per VBA) excel 2010 (5)

Frage von thomas1972 zum Thema Microsoft Office ...

VB for Applications
Bilder vom LDAP in VBA - Excel (3)

Frage von Roadrunner777 zum Thema VB for Applications ...

VB for Applications
gelöst VBA Excel Recordset - Abfrage auf SQL-Server (4)

Frage von Aximand zum Thema VB for Applications ...

VB for Applications
Excel VBA Sortierung von Daten (5)

Frage von easy4breezy zum Thema VB for Applications ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...