Saltar al contenido

Separar letras de celda


kanll

Recommended Posts

Buenas tardes, aquí con un trabajo que no he conseguido realizar.

Tengo una fila con datos, de los cuales tengo que separar las letras en la columnas contiguas.

De este problema tengo que realizar lo siguiente:

Hoja 01

1) Tengo que separar solo las consonantes y unir las tres primeras consonantes de las letras separadas. Ejemplo:

CAMISA=CMS

Pero si existe otro valor igual le asigne una secuencia numérica.

(CAMISETA=CMS)), pero como se repite debería pasar a (CMS001) y sucesivamente.

Hoja 02

2) Separar letras y unir las tres primeras. Ejemplo:

CAMISA=CAM

Pero si existe otro valor igual le asigne una secuencia numérica. (CAMARA=CAM), pero como se repite debería pasar a (CAM001) y sucesivamente.

Hoja 03

3) Existen Valores con tres o mas palabras, debe quedar así:

CAMISA POLO 38=CAMP38

Ojala me haya explicado bien, por su valiosa ayuda y tiempo, Muchas Gracias.

Adjunto Archivo.

Separar Letras.xls

Enlace a comentario
Compartir con otras webs

Wow... muy buen reto!

Mi solucion no requirio de programar simplemente usar funciones y listo! Hago uso de la funcion "ExtraerPatron" la cual me permite hacer uso de expresiones regualares en Excel sin necesidad de tener que programar, el unico requisito para tener diponible la funcion y ver como funciona mi solucion es descargarse el complemento que puse en el area de aportes, instalarlo y listo, cualquier problema de este tipo puede ser facilmente resuelto sin necesidad de programar!

aqui el link del complemento:

https://www.ayudaexcel.com/foro/threads/mx-utilities-el-complemento-de-excel-que-hace-el-trabajo-mas-facil.36961/

Saludos!

P.D.

Por cierto me he dado cuenta que puedo mejorar mi funcion de ExtraerPatron, en este caso me llevo mas pasos ya que debo poner un separador (en este caso "|") para que me devuelva todas las coincidencias. No se por que microsoft no permite usar expresiones regulares en la interfaz de usuario? en fin,,, no necesito esperar a que MS decida implementar dicha funcionalidad.

Separar Letras.xls

Enlace a comentario
Compartir con otras webs

Buena la Solución de @digitalboy, pero en el trabajo me obligan a trabajar con VBA, entonces la solución que me brinda [uSER=46507]@Macro Antonio[/uSER] se adapta a lo que realizo, pero como se lo puedo realizar para que no tenga que ser fija la fila, es decir; puedo encontrarme en otra fila ya la operación ya no me la realiza.

Gracias.

Separar Letras01.xls

Enlace a comentario
Compartir con otras webs

Buena la Solución de @digitalboy, pero en el trabajo me obligan a trabajar con VBA, entonces la solución que me brinda [uSER=46507]@Macro Antonio[/uSER] se adapta a lo que realizo

Es una pena... :( aun asi fue divertido e interesante poder probar la funcionalidad de mi complemento en este problema. Si logro disponer de algo de tiempo lo que resta del fin de semana y aun no cierran el tema... quizas pueda brinda la solucion empleando VBA!

Aun que la verdad creo que ya la solucion del colega MacroAntonio resolvera sin duda tu problema!

Saludos!

Enlace a comentario
Compartir con otras webs

En mi intento lo estaba realizando, pero me demoraba ("Con decir que aun no terminaba con la tarea"), ahora veo que no se nada en comparación de los MAESTROS en VBA, la verdad estoy muy agradecido de formar parte de este foro aunque sea solo para hacer consultas.

Algún día, espero llegar a ser la mitad de los MAESTROS.

Muchas Gracias, por la ayuda.

Tema Solucionado.

Enlace a comentario
Compartir con otras webs

Hola! aqui esta mi aportacion haciendo uso de la clase clsString... la verdad debo reconocer que me sorprendio la simplicidad con la que [uSER=46507]@Macro Antonio[/uSER] resolvió el problema (ya estuve estudiando el codigo, primero extrae los caracteres y luego hace el conteo,,, ja quien lo hubiera pensado). Me gusta esa simplicidad, he aprendido mas de lo pensaba de este tema!

Saludos!

Separar Letras.xls

Enlace a comentario
Compartir con otras webs

Muy buenas amigos @digitalboy y [uSER=46507]@Macro Antonio[/uSER], la solución es muy útil a las necesidades que tengo, pero al ejecutar el código note;

1) Que no enumera desde el principio, es decir;

CAMISA=CAM

CAMISETA=CAM-001

Cuando debería se así;

CAMISA=CAM-001

CAMISETA=CAM-002

2) También me genera un nuevo libro cuando debería crear la secuencia al lado de donde se selecciona los datos y respetando los espacios vacíos. ya que el orden debe ser igual.

Muy agradecido por la ayuda, pero si es posible ayudar con esas observaciones....

Mientras, Voy a intentar generar una combinación de las dos respuestas.

Muchas Gracias y disculpen las molestias.

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 97 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Hola que tal amigos programadores por favor me podrían ayudar con una macro que me genere un archivo CSV delimitado por comas, la estructura del archivo CSV no deberá llevar encabezado, los datos del archivo CSV serán obtenidos de la hoja “Datos”. En la columna A: deberá tener la clave clues que se toma de la columna B de la hoja Datos En la Columna B: el Código (son 230 codigos que van del rango G1:IB1 de la hoja datos) En la Columna C: el valor almacenado a su correspondiente al código y clues En la Columna D: el número del mes que se obtendrá de la de la columna E de la hoja Datos En la Columna E: el año que se tomará de la columna F de la hoja de Datos   Son 230 códigos por lo que la macro generará 230 filas por cada clave clues que tenga la hoja Datos En el archivo anexo una hoja llamada CSV para que vean la estructura que tendrá, el archivo CSV estará delimitado por comas   Les agradecería mucho que me ayuden por favor, Dios los bendiga Exportar datos a csv.xlsx
    • Hola buenas tardes.   Debido al trabajo debo estar comparando en un periodo unos archivos dentro de una carpeta o subcarpeta. en base a la fecha de creacion o modificacion.  pero tengo que estar viendo carpeta por carpeta y aveces son varios. Con una macro intente  listar los archivos de cualquier carpeta y subcarpeta, esto activandolo segun la celdaactiva. El problema es que tiene algunos errores. 1. si la carpeta cuenta con subcarpetas me los manda a muchas filas abajo. Mi idea es hoja(Así debe quedar) Que con una macro pueda seleccionar la carpeta desde el buscador y me de la lista de archivos a partir de la fila 6. siendo columna A= fecha de modificación, columna B =Fecha de creación y columna C=Nombre del archivo con hiperlink. Con otro o con la misma macro poder seleccionar otra carpeta y sus subcarpetas, según sea el caso. y me liste a partir de la columna F de la fila 6 Siendo La columna F=Nombre del archivo, columna H=fecha de creación, columna I=ultima modificación   Para así poder acceder y comparar mis archivos, directamente desde excel.   Muchas gracias Mariano       Listar archivos de 2 carpetas para comparar.xlsm
    • Hola buenas, Os presento mis dudas. Tengo un libro  (llamémosle LibroDestino) con dos módulos, uno de definición de variables "ModDef" y otro de inicializacion de esas mismas variables "ModCfg". Necesito que al copiarme una hoja de otro libro(llamémosle LibroOrigen), mediante un procedimiento, sobrescribir el modulo de inicialización de variables del LibroDestino con el  contenido del módulo que hay en el LibroOrigen. Destacar que los dos módulos de cada libro tienen el mismo nombre "ModCfg". Y tienen una única variable llamada "Mensaje". En el LibroDestino tiene el valor "Hola" y en el LibroOrigen el valor "Adiós" Este procedimiento lo realiza perfectamente,  es decir se sobrescribe, pero si en el mismo procedimiento quiero utilizar el nuevo valor de esa variable, me conserva el valor de la variable anterior. Para hacer las comprobaciones he ejecutado un MsgBox al empezar y al acabar el procedimiento, pero en los dos casos me devuelve el valor original del LibroDestino el valor "Hola", cuando mi idea es que al sobrescribir el modulo con el nuevo valor de la variable, el último MsgBox me devuelva el valor "Adios". Mi objetivo es poder tener la inicialización de esas variables en un libro que no sea el de trabajo (LibroDestino), ya que según la hoja que importe puedo requerir que las variables tengan un valor u otro. ¿Por que no me coge en el procedimiento el nuevo valor de la variable? ¿Cómo podría conseguirlo? He tenido que activar en VBA  la referencia Microsoft visual basic for applications extensibility 5.3 desde  Herramientas -> Referencias. Creo que es la única manera de poder trabajar con los módulos desde VBA, aunque si se pudiera de otra manera creo que sería mas óptimo. Mil gracias de antemano, un saludo!         Libro1_Prueba.xlsm Libro2_Prueba.xlsm
    • Agradecido Antoni! Tus sugerencias me ayudaron mucho! Como pudiese hacerte llegar el archivo?
    • Prueba este código. Sin el archivo no te puedo ajustar más. Private Sub btnCargaBancos_Click() 'El tipo de dato debe especificase para cada variable Dim TasaCompra As Double, TasaVenta As Double, InvBanesco As Double, InvVzla As Double Dim MontoBanesco As Double, MontoVzla As Double, TasaDiaBan As Double, TasaDiaVzla As Double Dim TasaActual As Double 'Hay que comprobar que los textbox tienen contenido numérico 'Los datos numéricos solo pueden contener números y el separador decimal, cualquier otro caracter dará error al convertir If Not IsNumeric(txtInverBanesco) Or _ Not IsNumeric(txtInverVzla) Or _ Not IsNumeric(txtTasaCompra) Or _ Not IsNumeric(txtTasaVenta) Then MsgBox "Los datos deben ser numéricos", vbCritical Exit Sub End If InvBanesco = CDbl(txtInverBanesco) InvVzla = CDbl(txtInverVzla) TasaCompra = CDbl(txtTasaCompra) TasaVenta = CDbl(txtTasaVenta) 'Los datos de los divisores no pueden ser 0 (Indeterminación matemática) If TasaCompra = 0 Or _ InvBanesco = 0 Or _ InvVzla = 0 Then MsgBox "Los datos no admiten valor cero", vbCritical Exit Sub End If MontoBanesco = (InvBanesco / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100)) MontoVzla = (InvVzla / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100)) TasaDiaBan = (MontoBanesco / InvBanesco) * (1 - 0.055) TasaDiaVzla = (MontoVzla / InvVzla) * (1 - 0.055) If TasaDiaBan < TasaDiaVzla Then TasaActual = TasaDiaBan Else TasaActual = TasaDiaVzla End If 'En VBA, los datos numéricos no admiten ser formateados, formatear directamente en las celdas, 'MontoBanesco = FormatNumber(MontoBanesco, 2, True, vbFalse) 'MontoVzla = FormatNumber(MontoVzla, 2, True, vbFalse) 'TasaActual = FormatNumber(TasaActual, 5, True, False) txtBcoBanesco = MontoBanesco txtBcoVenezuela = MontoVzla txtTasaDiaria = TasaActual End Sub  
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.