Jump to content

Colocar coma automaticamente


curanilahue

Recommended Posts

Debo elaborar informes de notas. Los profesores deben ingresar sus calificaciones, lamentablemente, muchas veces colocan un punto para separar decimales y simplemente nada, (5.4 o 54).

Mi deseo es que automaticamente al escribir 54, aparezca la coma separando el decimal.

Agradecido desde ya

Link to comment
Share on other sites

Yo lo haría por el cuento de la vieja, seleccionaría toda la tabla y reemplazaría todos los "." por "," y después todas las notas que superen el 10 (si es la nota máxima) las dividiría por 10.

Es un poco rudimentario pero efectivo.

Link to comment
Share on other sites

Efectivamente, puede ser una solución....pero que pasaría cuando en vez de colocar el punto lo hagan escribien solo en numeros redondos 67 54 69 54 entonces la solución debe ser una sola para ambos casos. Se me ocurre.

Disculpa de ser exigente. Y Gracias por el dato anterior.

Link to comment
Share on other sites

Hola.

La solución de NEINEI es efectiva. Si no tiene puntos, no los cambiará y al lado de donde ponen las calificaciones los maestros, abres otra columna en la que ponga esta fórmula:

(suponiendo que los maestros pongan las calificaciones en la columna D, a partir de la fila 3, en E3 pones la fórmula siguiente)

B]=SI(D3>10;D3/10;D3)[/b]

La copias y la arrastras hacia abajo. Te cambiará el 67 por 6,7 el 54 por 5,4 .....

Espero te sirva.

Link to comment
Share on other sites

Hola curani, prueba esta formula, a mi me ha servido dando ok,

=SI(LARGO(B9)=2;CONCATENAR(IZQUIERDA(B9;1);",";DERECHA(B9;1));SI(EXTRAE(B9;2;1)=".";REEMPLAZAR(B9;2;1;",");B9))

ponla en la celda de al lado de donde tengas el valor, para empezar por ejemplo en C9 y ya luego arrastra a donde quieras, ya comentas.

Un saludo, Germán.

Link to comment
Share on other sites

buenas puedes probar con el siguiente codigo de macro

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target.Count = 1 Then
Dim punto
If Len(Target.Value) = 1 Then
Target.Value = Target.Value
Else
punto = WorksheetFunction.Search(".", Target.Value, 1)
If Len(Target.Value) >= 2 And Target.Value > 10 Then
punto = 14
Else
punto = 15
End If
punto = (WorksheetFunction.Search(",", Target.Value, 1)) + 10
Select Case punto
Case 2
Target.Value = (WorksheetFunction.ReplaceB(Target.Value, 2, 1, ",")) * 1
Case 3
Target.Value = (WorksheetFunction.ReplaceB(Target.Value, 3, 1, ",")) * 1
Case 12
Target.Value = Target.Value
Case 13
Target.Value = Target.Value
Case 14
Target.Value = (Target.Value) / 10
Case 15
Target.Value = Target.Value
End Select
End If
End If
End Sub

esto lo debes de colocar en el modulo de la hoja donde se colocaran las notas, tal como esta esta puesto para que toda a notación que se realice en la columna B se reajuste si es que usas otra columna lo unico que debes de cambiar es lo siguiente

Target.Column = 2

por

Target.Column= y aqui colocas el numero de la columna dode se colocan los datos

bueno ya comentaras

un saludo

Link to comment
Share on other sites

Estoy probando las respuestas, a quienes agradezco, aunque estoy buscando el archivo sobre el cual trabajo en las notas y que en gran parte es producto de la colaboración de mujcha gente de aqui. Asi es que apenas esté en mi mano lo resubo con mayores explicaciones.

Link to comment
Share on other sites

Justo estaba buscando una solución similar para una hoja que estoy elaborando. Ahora veo que la macro sirve sólo para una sola columna. Perdón por mi ignorancia ¿cómo es posible dejarla para todo un rango de celdas, por ejemplo de 90 columnas? Yo también lo agradecería.

Link to comment
Share on other sites

En realidad eso es lo que me interesa a mi también, claro que el problema en particular lo solucioné, momentaneamente, colocando las notas en números enteros ( 67, 68, 56, 44, 60) y en la columna que va el promedio dividirlas por 10

ejemplo: =SI(ESERROR(PROMEDIO(E7:N7)/10);""; PROMEDIO(E7:N7)/10)

el unico problema es que hay que tener cuidado en darle formato de celda y dejar la celda como "general" . Reitero, también es para una sola columna.

Link to comment
Share on other sites

buenas para que la macro funcion en las columnas que se deseen se debe de variar la linea donde se le indica en que column se ejecuta esto es en

If Target.Column = 2 And Target.Count = 1 Then

debiendo de colocar el numero de la columna donde se ejecuta si por ejemplo es desde la Columna A hasta la Z seria

If Tatget Column<27 And Target.Count = 1 Then

puesto que la columna AA es la 27 se le indica que se debe de activar en todas que sean menores de 27, si por el contrario se desa que sea por ejemplo desde la F a la M seria

If Target.Column>5 And Target.Column<14 And Target.Count=1 Then

Por lo que se ejecutaria siempre que sea la columna mayor de 5 ; osea empezaria en F y menor de 14 fializaria en M

un saludo

Link to comment
Share on other sites

Sabes, gracias por ese dato, pero ya lo había intentado y no me resulta, ya que cuando trato de insertar los valores me resuelve como si fuera un número cualquiera.

Me corrijo, sí resulta y bien; pero cuando se borra el contenido, con el menú contextual, se borra. ¿Habrá solución?

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Privacy Policy