Autor
|
Tema: macro en excel (Leído 6,495 veces)
|
tony82
Desconectado
Mensajes: 31
|
Buenas tardes, primero que todo muchas gracias a la persona que me pueda colaborar, estoy realizando un macro, y necesito que cuando ingrese un dato en una celda, esta me la rellene de ceros, dejando como maximo 10 digitos. ejemplo
el numero que se ingresa es 4567, y que la macro lo convierta en 0000004567.
lo intente por la opcion en formato - celdas- en la pestana numero selecciono personalizada y le agrego los ceros, pero lo que pasa es que el numero no siempre es de cuatro digitos puede ser de un digito, pero se debe rellenar a la izquierda con cero. tambien intente con una funcion de excel, pero lo que pasa es que la informacion es cambiante y se copia de otra hoja y se pega en la hoja uno, entoces no podria con formula la cual se borraria al pegar la informacion. Muchas gracias
Tony
|
|
|
En línea
|
|
|
|
LeandroA
|
hola, mejor usa el formato que si se puede. anda a formato de Celdas y seleciona Personalizada y luego en el cuadro de texto donde dice "Tipo" pones 0000000000
Saludos
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Eso ocurre porque el formato de números no permite poner ceros a la izquiera, al fin y al cabo no sirven para nada Formato > Texto , en formato texto si funciona, no se necesitan macros Saludos
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
tony82
Desconectado
Mensajes: 31
|
hola, mejor usa el formato que si se puede. anda a formato de Celdas y seleciona Personalizada y luego en el cuadro de texto donde dice "Tipo" pones 0000000000
Saludos
Si funciona pero si no fuera tan cambiantes los campos, aproximadamente cada 3 minutos se esta cambiando la informacion del texto, con una macro que ya incorpore, ademas se incerta informacion anadiendo celdas nuevas, y al estar asi este formato se pierde se corre a la fila o columna siguiente. por tal razon es necesario una macro que cuente cuantos caracteres hay, y que inserte los caracteres faltantes con ceros.
|
|
|
En línea
|
|
|
|
tony82
Desconectado
Mensajes: 31
|
Eso ocurre porque el formato de números no permite poner ceros a la izquiera, al fin y al cabo no sirven para nada Formato > Texto , en formato texto si funciona, no se necesitan macros Saludos En este caso si me sirven los ceros ya que estos son los que me identifican una series de informacion como un codigo de barras. la opcion de texto en columnas si me sirve pero la cantidad de columnas es grande, y lo que necesito es que cuando se ejecute el archivo no se deba hacer nada manual mente sino con una macro, te agradezco tu respuesta gracias
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Te doy la base, funciona siempre y cuando al dar ENTER la selección se mueva hacía abajo Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Dim Texto as String Cells(ActiveCell.Row - 1, ActiveCell.Column).NumberFormat = "@" Texto = Cells(ActiveCell.Row - 1, ActiveCell.Column).Value If Texto <> "" Then For i = 1 To (10 - Len(Texto)) Texto = "0" & Texto Next Cells(ActiveCell.Row - 1, ActiveCell.Column).Value = Texto End If End Sub
Modificala según tu conveniencia, esa macro se agregaría en todo el libro, lo digo por si necesitas que sea en una sola página También recuerda que hay que tener cuidado con las Macros, ya que al ejecutar una pierdes la posibilidad de deshacer Saludos
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
tony82
Desconectado
Mensajes: 31
|
Te doy la base, funciona siempre y cuando al dar ENTER la selección se mueva hacía abajo Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Dim Texto as String Cells(ActiveCell.Row - 1, ActiveCell.Column).NumberFormat = "@" Texto = Cells(ActiveCell.Row - 1, ActiveCell.Column).Value If Texto <> "" Then For i = 1 To (10 - Len(Texto)) Texto = "0" & Texto Next Cells(ActiveCell.Row - 1, ActiveCell.Column).Value = Texto End If End Sub
Modificala según tu conveniencia, esa macro se agregaría en todo el libro, lo digo por si necesitas que sea en una sola página También recuerda que hay que tener cuidado con las Macros, ya que al ejecutar una pierdes la posibilidad de deshacer Saludos Novlucker Gracias eso es exactamente lo que necesitaba gracias Saludos
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Muy bien entonces, sino como opción puedes crear un botón para validar los datos, entonces no te fijas si se da enter o se presiona otro botón, recorres toda la planilla y ya, no lleva nada Saludos
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Ayuda] Ejemplo de conexion y consulta a BD ORACLE desde VB o Macro de Excel
Programación Visual Basic
|
Graphixx
|
2
|
5,488
|
14 Marzo 2013, 22:04 pm
por Graphixx
|
|
|
hacer una macro en java que haga esto(No excel)
Java
|
roberwii
|
2
|
2,289
|
20 Diciembre 2013, 04:19 am
por Leyer
|
|
|
canas verdes por excel, al crear una macro que realice una búsqueda matricial
Programación General
|
PalitroqueZ
|
2
|
2,383
|
9 Septiembre 2016, 14:41 pm
por PalitroqueZ
|
|
|
Macro en excel para enviar informacion
Hacking
|
MrAdolf
|
1
|
2,543
|
26 Febrero 2017, 00:46 am
por engel lex
|
|
|
Ayuda con Macro VB + Excel para hacer comparativas
Scripting
|
Kithai
|
0
|
1,949
|
26 Enero 2018, 11:03 am
por Kithai
|
|