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

Listbox Textfarbe

Frage Entwicklung VB for Applications

Mitglied: Cadsys-Chemnitz

Cadsys-Chemnitz (Level 1) - Jetzt verbinden

11.02.2010 um 12:42 Uhr, 13010 Aufrufe, 5 Kommentare

Folgendes Problem wie im Codebeispiel unten ersichtlich lese ich aus einem Excelfile eine Kundenliste aus und übertrage diese in eine Listbox.


01.
 
02.
Dim Pfad As Excel.Application 
03.
Dim Kundenzahl As Integer 
04.
Dim a As Integer 
05.
Dim x As Integer 
06.
 
07.
Pfad = CreateObject("Excel.Application") 
08.
Pfad.Workbooks.Open("v:\Data\Center000.xls") 
09.
 
10.
Kundenzahl = Pfad.ActiveWorkbook.ActiveSheet.Range("d3").Value 
11.
 
12.
ListBox1.BeginUpdate() 
13.
 
14.
For x = 1 To Kundenzahl 
15.
        ListBox1.Items.Add(Pfad.ActiveWorkbook.ActiveSheet.Range("c" & 9 + x).Value) 
16.
Next x 
17.
 
18.
ListBox1.EndUpdate() 
19.
 
20.
ListBox1.SetSelected(0, True) 
21.
 
22.
Pfad.Application.DisplayAlerts = False 
23.
Pfad.ActiveWorkbook.Saved = False 
24.
Pfad.ActiveWorkbook.Close() 
25.
Pfad.Application.DisplayAlerts = True 
26.
 

Das soweit auch gar kein Problem. Nun muss ich aber die Kunden in Rot oder Blau einfärben je nachdem ob die Kunden einen Wartungsvertrag haben oder nicht.

Das ganze könnte so aussehen:


01.
 
02.
Dim Pfad As Excel.Application 
03.
        Dim Kundenzahl As Integer 
04.
        Dim a As Integer 
05.
        Dim x As Integer 
06.
 
07.
        Pfad = CreateObject("Excel.Application") 
08.
        Pfad.Workbooks.Open("v:\Data\Center000.ini") 
09.
 
10.
        Kundenzahl = Pfad.ActiveWorkbook.ActiveSheet.Range("d3").Value 
11.
 
12.
        ListBox1.BeginUpdate() 
13.
 
14.
        For x = 1 To Kundenzahl 
15.
            a = Pfad.ActiveWorkbook.ActiveSheet.Range("e" & 9 + x).Value 
16.
            ListBox1.Items.Add(Pfad.ActiveWorkbook.ActiveSheet.Range("c" & 9 + x).Value)  
17.
            ListBox1.SetSelected(x - 1, True)     'Es heist x-1 weil der Index des ersten Listboxeintrages 0 ist 
18.
            if a = 1 then Listbox1.SelectedItem = ForeColor.Red 
19.
        Next x 
20.
        ListBox1.EndUpdate() 
21.
 
22.
        ListBox1.SetSelected(0, True) 
23.
         
24.
        Pfad.Application.DisplayAlerts = False 
25.
        Pfad.ActiveWorkbook.Saved = False 
26.
        Pfad.ActiveWorkbook.Close() 
27.
        Pfad.Application.DisplayAlerts = True 
28.
 

Soweit so gut nur funktioniert es nicht, es kommt zwar keinerlei Fehlermeldungen. Also das Programm läuft so aber die Textfarbe wird nicht geändert.

Wenn ich

01.
 
02.
ListBox1.Forecolor = Color.Red eingebe 
03.
 
färbt er mir immer den gesamten Text der Listbox ein.




Weis einer von Euch rat wo ich da den ansetzen kann???
Mitglied: SlainteMhath
11.02.2010 um 13:52 Uhr
Moin,

mach doch mal aus
if a = 1 then Listbox1.SelectedItem = ForeColor.Red
ein
if a = 1 then Listbox1.SelectedItem.ForeColor = Color.Red
vielleich hilft das .)

lg,
Slainte
Bitte warten ..
Mitglied: Cadsys-Chemnitz
11.02.2010 um 14:19 Uhr
mach doch mal aus
if a = 1 then Listbox1.SelectedItem = ForeColor.Red
ein
if a = 1 then Listbox1.SelectedItem.ForeColor = Color.Red
vielleich hilft das .)
lg,
Slainte


Dann kommt nur folgende Meldung:

Die Objektvariable oder die With-Blockvariable wurde nicht festgelegt.
Bitte warten ..
Mitglied: SlainteMhath
11.02.2010 um 14:34 Uhr
(Begrüßungen sind wohl aus der mode, ja?)

Ach, ist das dsa standard Listbox Control von VB6? Dann geht das m.W. nicht. Ggfs gibts solche Controls noch zu kaufen. => google.

(ohne grüße)
Bitte warten ..
Mitglied: 76109
11.02.2010 um 14:54 Uhr
Hallo Cadsys-Chemnitz!

Also, sowas wie " Color.Red" ist mir unbekannt.

Mit dem kleinen Beispiel kannst Du z.B. die Farbtabelle des Aktiven Workbooks auslesen.

Die Funktion gibt ein Array mit 40 Farben aus der Sheet Füll/Textfarben-Tabelle + 16 zusätzlichen Farben (siehe Optionen Farbe) zurück . Allerdings stimmt die Reihenfolge nicht mit der Tabelle überein, so ist z.B. ROT die Nr. 3 bzw. Farb-Index 3. Zurückgegeben wird ein 24-Bit Farbwert.

01.
Sub Test() 
02.
    Dim Farbe As Long, i As Integer 
03.
     
04.
    For i = 1 To 56 
05.
        Farbe = ActiveWorkbook.Colors(i)	 
06.
    Next 
07.
 
08.
    Farbe = ActiveWorkbook.Colors(3)        'Rückgabe Long-Farbwert Rot 
09.
 
10.
  '.ForeColor = ActiveWorkbook.Colors(3)  
11.
End Sub
Ob allerdings in einer ListBox ein einzelnes Item mit einer eigenen Farbe belegt werden kann, weiß ich nicht?

Gruß Dieter
Bitte warten ..
Mitglied: Cadsys-Chemnitz
12.02.2010 um 08:09 Uhr
Ok nach bisschen Recherge bei Tante Google ...

es geht tatsächlich nicht in einer Listbox, die Farbe eines einzelnen Elements anzupassen. Nur die allgemeine Farbe des gesamten Textes. Es gibt zwar eine Bastellösung, aber die ist älter und scheint mit aktuellen VB2008 nicht mehr zu funktionieren.

Ich werde das ganze jetzt etwas anders angehen und es mit einem Listview probieren da hab ich mehr möglichkeiten (Spalten,Farbe,Icons ... usw).

Ich danke Euch aber für Eure Hilfe besonders das Beispiel von Didi hat mich in einem anderen Zusammenhang auf ne Idee gebracht.
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Tools
gelöst Powershell - Auswahl aus Listbox soll Aktion ausführen (4)

Frage von Schmierlappen zum Thema Windows Tools ...

VB for Applications
gelöst Excel VBA: Listbox per AddItem befüllen (5)

Frage von hesper zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...