Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1048to1052
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
Inhaltsverzeichnis

Zelle

Zelle
10.02.2009 20:19:00
Ralf
Hallo Forum
Habe da mal eine Frage betreff Zelle . Schreibe mit Hilfe dieses Makro
Daten in eine Zelle , wenn zwei Daten anliegen unterteile ich die Zelle.
Nun meine Frage , kann mann die zwei Daten unterschiedlich einfärben
zB. in blau und rot

Sub TerminEingeben()
Dim termf(100) As Date
Dim feiert(100) As String
On Error Resume Next
Worksheets("Tabelle21").Activate
z = 3
Do While Cells(z, 18)  ""
termf(z) = Left(Cells(z, 18), 6) + _
Right(Cells(1, 1), 2)
feiert(z) = Cells(z, 19)
z = z + 1
Loop
For e = 3 To z
For T = 3 To Cells(Rows.Count, 1).End(xlUp).Row
m = 1
If feiert(e) = "Tag der dt. Einheit" _
And Cells(1, 1)  "" Then
Cells(T, m + 1).RowHeight = 25
Cells(T, m + 1) = Cells(T, m + 1) _
& Chr(10) & feiert(e)
End If
Next T
Next e
End Sub


Gruss
Ralf

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bevor ich mir diesen Code ansehe,
10.02.2009 21:07:18
Daniel
solltest du
1. die Variablen vollständig dimensionieren
2. das "On Error Resume Next" aus dem Code entfernen
warum und wieso kannst du hier nachlesen:
http://www.online-excel.de/excel/singsel_vba.php?f=4
http://www.online-excel.de/excel/singsel_vba.php?f=147
zu deiner Frage, ja man kann Daten innerhalb einer Zelle unterschiedlich färben, wenn diese Daten aus Text bestehen. Ist der Zellinhalt eine Formel, gehts nicht, dann haben alle Zeichen der Zelle die gleiche farbe.
wie das geht, kannst du mit dem Makrorecorder rausfinden, z.B. so kann man die ersten 4 Zeichen einer Zelle färben:
ActiveCell.Characters(Start:=1, Length:=4).Font.ColorIndex = 5
und den Rest dann
ActiveCell.Characters(Start:=6, Length:=4).Font.ColorIndex = 3
Gruß, Daniel
Anzeige
AW: bevor ich mir diesen Code ansehe,
10.02.2009 21:44:00
Ralf
Hallo Daniel , Hallo Forum
Erstmal Danke für deinen Hinweis ! Habe es mit den Makrorekorder schon gemacht und
habe gehofft das es kürzer geht . Das "On Error Resume Next" die Fehler ignoriert
wusste ich nicht , aber man lernt nicht aus . Nun werde ich die Variabeln mal deklarieren.
Gruss
Ralf
AW: bevor ich mir diesen Code ansehe,
10.02.2009 22:10:00
Ralf
Hallo Forum , Hallo Daniel
Habe das Makro geändert . Habe aber nun das Problem das nicht alle Textreihen in der aktiven Zelle
gleich lang sind.Gibt es die möglichkeit die länge zu überprüfen um dann Start und Länge den
Zelleninhalt anzupassen . Hier das Makro

Sub Termine_eintragen1()
Dim termf(100) As Date
Dim feiert(100) As String
Dim zg As Long, m As Long, z As Long, T As Long
Dim e As Long
z = 3
Do While Cells(z, 18)  ""
termf(z) = Left(Cells(z, 18), 6) + _
Right(Cells(1, 1), 2)
feiert(z) = Cells(z, 19)
z = z + 1
Loop
For e = 3 To z
For T = 3 To Cells(Rows.Count, 1).End(xlUp).Row
m = 1
If feiert(e) = "Tag der dt. Einheit" _
And Cells(1, 1)  "" Then
Cells(T, m + 1).RowHeight = 25
Cells(T, m + 1) = Cells(T, m + 1) _
& Chr(10) & feiert(e)
Cells(T, m + 1).Select
With ActiveCell.Characters(Start:=1, Length:=37).Font
.Name = "Arial"
.FontStyle = "Standard"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 5
End With
With ActiveCell.Characters(Start:=38, Length:=55).Font
.Name = "Arial"
.FontStyle = "Standart"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 3
End With
End If
Next T
Next e
End Sub


Gruss
Ralf

Anzeige
AW: bevor ich mir diesen Code ansehe,
10.02.2009 22:21:00
Daniel
Hi
kommt darauf an, wo du die Trennung hin haben willst.
vermutlich beim Zeilenumbruch.
die Position des Zeilenwechsels kannst du mit folgender Funktion finden:
instr(Cells(T, m + 1), Chr(10))
und die absolute Länge der Zelle mit dieser:
Len(Cells(T, m + 1))
damit solltest du dir dann den Rest zusammenbasteln können.
btw, das ist Schrott:

Cells(T, m + 1).Select
With ActiveCell.Characters(Start:=1, Length:=37).Font


wenn, dann schreibt man das so:


with Cells(T, m + 1).Characters(Start:=1, Length:=37).Font


du brauchst auch nicht zwingend die ganze Liternai der möglichen Eigenschaften aufführen, nur weil der Recorder das aufzeichnet, es reicht die Eigenschaft,die du ändern willst.
Gruß, Daniel

Anzeige
AW: bevor ich mir diesen Code ansehe,
11.02.2009 17:14:00
Ralf
Hallo Forum , Hallo Chris
Funktioniert super .Danke
Gruss
Ralf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige