Top-Themen

Aktuelle Themen (A bis Z)

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, 16191 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 ..
Ähnliche Inhalte
Microsoft
Excel-Datei mit VBA speichern
gelöst Frage von 116408Microsoft6 Kommentare

Guten Tag Ich habe eine Excel-Datei, in der in D4 der Kundenname und in D11 das Projekt benennt wird. ...

Basic
Excel VBA enthält
Frage von AngelsBasic

Guten Tag Ich bin ganz neu in diesem Forum und hätte eine Frage. Wie kann ich bei diesem bestehenden ...

Microsoft Office
Excel VBA Wert hochzählen
gelöst Frage von Florian86Microsoft Office1 Kommentar

Hallo, ich habe im VBA Code folgendes stehen Range("E10") = Range("E10") + 1 Jetzt ist der Wert bei schon ...

Microsoft Office
Unterordner durchsuchen Excel VBA
Frage von schwalbepilotMicrosoft Office1 Kommentar

Hi, ich habe mir ein Makro gebastelt, mit dem ich Daten aus mehreren Word Tabellen auslesen kann. Das Makro ...

Neue Wissensbeiträge
Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 7 StundenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 7 StundenSicherheit7 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 8 StundenSicherheit6 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Sicherheit

Meltdown und Spectre: Die machen uns alle was vor

Information von Frank vor 8 StundenSicherheit12 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Heiß diskutierte Inhalte
Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von 92943Windows 1031 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Batch & Shell
Anmeldevorgang für Informatikraum (Schule) unter Windows
gelöst Frage von IngenieursBatch & Shell29 Kommentare

Hey zusammen, ich werde in naher Zukunft den Informatik Raum meiner jetzigen Schule von dem aktuellen Betreiber übernehmen (Vertrag ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
Frage von Windows10GegnerNetzwerkgrundlagen20 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...