Macro en Excel para digitar continuamente notas, sin comas ni tecla Enter.

Tengo que digitar muchas notas en una planilla de Excel. La idea es digitar continuamente y una macro se active al escribir dos dígitos, separará estos dos dígitos por una coma y saltara a la siguiente línea. Es decir, si estoy en la celda B10 y comienzo a digitar 53654251, entonces en B10 me quedará 5,3, en B11 6,5, en B12 4,2 y en B13 5,1.

1

1 respuesta

Respuesta

¿Esto es lo que buscas?

Inserta la macro en el modulo marcado por las líneas rojas de la foto, cada que tecles un numero con cantidades pares esta la macro lo separara y te posicionara en el siguiente renglón vacío.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set datos = Range("b2").CurrentRegion

With datos
celda = ActiveCell.Offset(-1, 0)
If celda = Empty Or Len(celda) = 3 Then End
largo = Len(celda)
For i = 1 To largo / 2
derecha = Right(Left(celda, 2 * i), 2)
For j = 1 To 2
der = Right(Left(derecha, j), 1)
If j = 1 Then conca = der
If j = 2 Then conca = conca & "," & der
Next j
If i = 1 Then ActiveCell.Value = conca
If i > 1 Then ActiveCell.Offset(i - 1, 0).Value = conca
Next i
ActiveCell.End(xlDown).Offset(1, 0).Select
End With

End Sub

Hola, gracias por tu pronta respuesta. La idea es escribir continuamente pero el sistema cada dos dígitos haga el trabajo de separar por coma y saltar a la línea siguiente.

En la foto: Dígito (Pedro) 55 y el sistema lo separa por coma y pasa a la siguiente línea (Juan), escribo 43, lo separa por su coma y pasa a la siguiente línea (Diego).

Tu macro es muy buena pero si escribo 50 notas en una celda para después separarlas no se podrá porque tomará el número como exponente. La idea es escribir y el sistema (macro) lo vaya reescribiento con su separación por coma automáticamente hacia abajo.

Ojala me puedas ayudar. Desde ya muchas gracias.

¿De cuántos dígitos estamos hablando?, ¿Cifras de 2 dígitos? ¿O cifras superiores a 2 dígitos?, tu petición original implicaba registros de 6 cifras para separar en pares y ahora son números de 2 cifras. Dejame ver que se puede hacer se complica un poco la macro al mezclar letras y números eso no estaba contemplado en la programación que te mande.

Nuevamente gracias por tu atención.

Las notas deben ser entre 1,0 y 7,0, valores con un decimal. Entonces la idea es que me posiciono en la primera celda de la columna de notas que voy a registrar y luego solo escribo las notas sin decimales ni presionar la tecla Enter, es decir, en vez de escribir 5,3 voy a escribir 53 y el sistema debe "detectar" que escribí dos dígitos por lo tanto toma ese valor y le inserta la correspondiente "," (osea toma el valor y lo divide por 10) para luego saltar a la siguiente celda para continuar escribiendo.

Ojala me comprendas la idea para que me puedas ayudar.

Bien ya que quedo claro lo que necesitas esta es mi respuesta, primero te presento la pantalla de resultados, solo tecleas el numero y conforme cambie de renglón pondrá el renglón anterior como lo requieres. La macro esta abajo de esta pantalla, resulto ser más sencilla que la anterior, solo cópiala y colocala en donde te indique que colocaras la anterior.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 3 Then
With ActiveCell.Offset(-1, 0)
largo = Len(.Value)
If largo = 0 Then End
If largo = 2 Then .Value = Left(.Value, 1) & "," & Right(.Value, 1)
End With
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas