cambio color (por partes) en string
Publicado por orkkro (7 intervenciones) el 19/05/2017 14:21:52
Saludos a todos y gracias por vuestra dedicación
Soy autodidacta a distancia y estando en Honduras destinado por trabajo aprendí "un poquito" gracias a los cursos y foros que subís.... mi agradecimiento es infinito.
Mi pregunta es:
He tomado prestado de Nekkito un trozo de codigo de un programa Calendario y necesito hacer unos canbios:
Se trata d la representación en la celdadell mes, de dos textos que en origen iban en lineas separadas y cerrados con una línea "------------------------" ,
contenidoDia = contenidoDia & .Fields(0).Value & " --> " al que le añado "-->"
que por ejemplo es "JOSE RAMON" & --> &
y esto se encadena con :
contenidoDia = contenidoDia & .Fields(1).Value que por ejemplo es "HACER TAREA TAL" eliminando el salto de linea intermedio
con lo cual mi texto queda " JOSE RAMON --> HACER TAREA TAL"
Mi pregunta es muy básica, no conozco mucho código y he probado varias cosas pero no acuerto.
Necesito que la primera parte "JOSE RAMON" O incluso "JOSE RAMON -->" se represente en Rojo o Bold, y el resto "Hacer tarea Tal" se queda en negro Bold=False
queda en pantalla " JOSE RAMON -->" en rojo y "Hacer tarea Tal" en negro, en la misma linea.
os dejo el trozo del módulo:
Atentamente;
Jose Caros
Soy autodidacta a distancia y estando en Honduras destinado por trabajo aprendí "un poquito" gracias a los cursos y foros que subís.... mi agradecimiento es infinito.
Mi pregunta es:
He tomado prestado de Nekkito un trozo de codigo de un programa Calendario y necesito hacer unos canbios:
Se trata d la representación en la celdadell mes, de dos textos que en origen iban en lineas separadas y cerrados con una línea "------------------------" ,
contenidoDia = contenidoDia & .Fields(0).Value & " --> " al que le añado "-->"
que por ejemplo es "JOSE RAMON" & --> &
y esto se encadena con :
contenidoDia = contenidoDia & .Fields(1).Value que por ejemplo es "HACER TAREA TAL" eliminando el salto de linea intermedio
con lo cual mi texto queda " JOSE RAMON --> HACER TAREA TAL"
Mi pregunta es muy básica, no conozco mucho código y he probado varias cosas pero no acuerto.
Necesito que la primera parte "JOSE RAMON" O incluso "JOSE RAMON -->" se represente en Rojo o Bold, y el resto "Hacer tarea Tal" se queda en negro Bold=False
queda en pantalla " JOSE RAMON -->" en rojo y "Hacer tarea Tal" en negro, en la misma linea.
os dejo el trozo del módulo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
Public Sub rellenoDatosCalendario(pdc As Date, udc As Date)
'Compruebo la diferencia entre las fechas "Último dia calendario" (udc) y "Primer día calendario" (pdc)
'para saber si he ocultado la sexta semana o no. En función del resultado redimensiono mi matriz
If udc - pdc + 1 <= 35 Then
ReDim infoDia(1 To 35)
Else
ReDim infoDia(1 To 42)
End If
'Cojo el valor más alto de la matriz que se haya creado
maxMatriz = UBound(infoDia)
'Inicializo el índice de mi matriz infoDia
i = 1
'Inicializo el contenido de los datos que contendrá la variable contenidoDia
contenidoDia = ""
contenidoDia = ""
'Inicio un recorrido de las fechas desde el primer día del calendario (pdc) hasta
'el último día del calendario (udc)
For iDate = pdc To udc
'Creo una SQL sobre la tabla TCitas, filtrada por iDate
miSql = "SELECT TCitas.NomPac, TCitas.MotivoCita" _
& " FROM TCitas" _
& " WHERE TCitas.FechCita=#" & Format(iDate, "mm/dd/yy") & "#"
'Creo un recordset sobre la SQL
Set rst = CurrentDb.OpenRecordset(miSql)
'Si no hay registros relleno el elemento i de la matriz infoDia con una cadena vacía
If rst.RecordCount = 0 Then
infoDia(i) = ""
Else
'Si hay registros los recorro y voy creando los valores que se incluirán
'en mi matriz infoDia
With rst
.MoveFirst
Do Until .EOF
contenidoDia = contenidoDia & .Fields(0).Value & " --> "
'Añado caràcter que me hará de salto de línea en Replace
'contenidoDia = contenidoDia & "\"
contenidoDia = contenidoDia & .Fields(1).Value
'Añado caràcter que me hará de salto de línea en Replace
'contenidoDia = contenidoDia & "\"
'Añado una línea separadora
'contenidoDia = contenidoDia & "-----------------------------"
'Añado caràcter que me hará de salto de línea en Replace
contenidoDia = contenidoDia & "\"
'Me muevo al siguiente registro[b][b]Reemplace este texto
.MoveNext
Loop
End With
'Asigno el valor al elemento i de mi matriz
infoDia(i) = contenidoDia
End If
'Aumento una unidad el índice
i = i + 1
'Reinicializo contenidoDia
contenidoDia = ""
Next iDate
'Finalmente, relleno los textbox de FCalendario con los contenidos de la matriz
For i = 1 To maxMatriz
For Each ctl In Forms!FCalendario
If ctl.Name = "txt" & i Then
ctl.Value = infoDia(i)
'Aquí reemplazo la contrabarra con un salto de línea
ctl.Value = Replace(ctl.Value, "\", vbCrLf)
End If
Next ctl
Next i
'Elimino la matriz
Erase infoDia
'Llamo al procedimiento marcaFestivos()
Call marcaFestivos(pdc, udc)
End Sub
Atentamente;
Jose Caros
Valora esta pregunta


0