[RESUELTO] Separar los apellidos compuestos

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
richardcns
Mensajes: 11
Registrado: Dom Sep 13, 2015 12:32 am

[RESUELTO] Separar los apellidos compuestos

Mensaje por richardcns »

buenas noches porfavor necesito su ayuda, lo que pasa es que quiero separar los apellidos compuestos, existe una macro que permite hacer esto pero elproblema es que la macro solo se ejecua en excel mas no en la hoja de calc, es por esoque quisier me la raduzcan al lenguaje de openoffice calc para que se ejecute correctamente.
Esta es la macro de excel;

Código: Seleccionar todo

Function SEPARARAPELLIDOS(rng As Range) As String
 
Dim nombreArr() As String
Dim nuevaCadena As String
Dim i As Integer
 
'Dvidir el nombre por palabras en un arreglo
nombreArr = Split(Trim(rng.Value))
 
'Analizar cada palabra dentro del arreglo
For i = 0 To UBound(nombreArr)
    Select Case LCase(nombreArr(i))
         
        'Palabras que forman parte de un apellido compuesto
        'Agregar nuevas palabras separadas por una coma
        Case "de", "del", "la", "las", "los", "san"
            'Insertar espacio en blanco
            nuevaCadena = nuevaCadena & nombreArr(i) & " "
        Case Else
            'Insertar caracter delimitador
            nuevaCadena = nuevaCadena & nombreArr(i) & "@"
     
    End Select
Next
 
'Remover el último caracter delimitador de la cadena
If Right(nuevaCadena, 1) = "@" Then
    nuevaCadena = Left(nuevaCadena, Len(nuevaCadena) - 1)
End If
 
SEPARARAPELLIDOS = nuevaCadena
 
End Function


esta macro la saque de la siguiente pagina: 
//exceltotal.com/como-separar-nombres-y-apellidos-en-excel/
por su colaboracion mil gracias.
Última edición por xiseme el Sab Sep 19, 2015 10:45 am, editado 1 vez en total.
Razón: Marcar como solucionado. Aunque él no lo marca, richardcns dice que ya lo está
openoffice 4.1en windows 8
xiseme
Mensajes: 1918
Registrado: Lun Nov 24, 2008 1:13 pm

Re: Separar los apellidos compuestos

Mensaje por xiseme »

Bienvenid@
No hay "una macro" que haga eso, habrá cientos (no digo miles por no parecer exagerado) De hecho si buscas en el foro por «separar nombre y apellidos» ya encontrarás alguna.

Si tu propósito es hacerlo en Basic para AOO/LibO te será fácil a poco que le des un vistazo al libro de Mauricio o al apartado de macros de la wiki

- Si acaso tu propósito fuera que te hagan el trabajo, petición aquí
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Separar los apellidos compuestos

Mensaje por mauricio »

Este tema ya se ha tratado en estos foros: https://forum.openoffice.org/es/forum/v ... +apellidos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
SLV-es
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España
Contactar:

Re: Separar los apellidos compuestos

Mensaje por SLV-es »

Este tema tb puede servir como orientación: http://blog.open-office.es/calc/generar ... ffice-calc
+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Separar los apellidos compuestos

Mensaje por fornelasa »

richardcns » solo como aclaración, el codigo mostrado no separa los "apellidos compuestos". Lo que hace es "algo" similar a este archivo ejemplo con formulas:
Saludos.
Adjuntos
nomCompuesto (2).ods
NombreCompuesto
(12.87 KiB) Descargado 291 veces
Última edición por fornelasa el Jue Sep 17, 2015 5:23 pm, editado 1 vez en total.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Avatar de Usuario
PepeOooSevilla
Mensajes: 1480
Registrado: Sab Abr 04, 2009 6:10 pm
Ubicación: Sevilla (España)

Re: Separar los apellidos compuestos

Mensaje por PepeOooSevilla »

Hola.
Coincido con nuestro compañero fornelasa. No obstante, aquí tienes el código de la función. Como puedes ver los cambios han sido mínimos.

Código: Seleccionar todo

REM  *****  BASIC  *****
Option Explicit

Function SEPARARAPELLIDOS(CadOriginal As String) As String
    Dim nombreArr() As String
    Dim nuevaCadena As String
    Dim i As Integer

    'Dividir el nombre por palabras en un arreglo
    nombreArr = Split(Trim(CadOriginal))
    'Analizar cada palabra dentro del arreglo
    For i = 0 To UBound(nombreArr)
        Select Case LCase(nombreArr(i))
            'Palabras que forman parte de un apellido compuesto
            'Agregar nuevas palabras separadas por una coma
            Case "de", "del", "la", "las", "los", "san"
                'Insertar espacio en blanco
                nuevaCadena = nuevaCadena & nombreArr(i) & " "
            Case Else
                'Insertar caracter delimitador
                nuevaCadena = nuevaCadena & nombreArr(i) & "@"
        End Select
    Next
    'Remover el último caracter delimitador de la cadena
    If Right(nuevaCadena, 1) = "@" Then
        nuevaCadena = Left(nuevaCadena, Len(nuevaCadena) - 1)
    End If

	SEPARARAPELLIDOS = nuevaCadena
End Function
Adjunto archivo.
Saludos cordiales.
Adjuntos
FORO_CALC_Separar los apellidos compuestos.ods
(13.27 KiB) Descargado 281 veces
LibreOffice 6.4.6. Windows 10. Java 8 rev. 261 (64 bits)
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Si usas OpenOffice/LibreOffice trabaja y guarda en ODT, ODS, ODP, ... Y haz copias de seguridad.
richardcns
Mensajes: 11
Registrado: Dom Sep 13, 2015 12:32 am

Re: Separar los apellidos compuestos

Mensaje por richardcns »

PepeOooSevilla escribió:Hola.
Coincido con nuestro compañero fornelasa. No obstante, aquí tienes el código de la función. Como puedes ver los cambios han sido mínimos.

Código: Seleccionar todo

REM  *****  BASIC  *****
Option Explicit

Function SEPARARAPELLIDOS(CadOriginal As String) As String
    Dim nombreArr() As String
    Dim nuevaCadena As String
    Dim i As Integer

    'Dividir el nombre por palabras en un arreglo
    nombreArr = Split(Trim(CadOriginal))
    'Analizar cada palabra dentro del arreglo
    For i = 0 To UBound(nombreArr)
        Select Case LCase(nombreArr(i))
            'Palabras que forman parte de un apellido compuesto
            'Agregar nuevas palabras separadas por una coma
            Case "de", "del", "la", "las", "los", "san"
                'Insertar espacio en blanco
                nuevaCadena = nuevaCadena & nombreArr(i) & " "
            Case Else
                'Insertar caracter delimitador
                nuevaCadena = nuevaCadena & nombreArr(i) & "@"
        End Select
    Next
    'Remover el último caracter delimitador de la cadena
    If Right(nuevaCadena, 1) = "@" Then
        nuevaCadena = Left(nuevaCadena, Len(nuevaCadena) - 1)
    End If

	SEPARARAPELLIDOS = nuevaCadena
End Function
Adjunto archivo.
Saludos cordiales.
Amigo, pege el codigo que me envió, pero al momento de ejecutar me sale el siguiente mensaje:
"error de ejecucion de BASIC. El argumento no es opcional.
y se subraya donde dice:
nombreArr = Split(trim(cadOriginal))

Ayuda por favor! gracias!
openoffice 4.1en windows 8
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Separar los apellidos compuestos

Mensaje por mauricio »

richardcns escribió:al momento de ejecutar
Cuentamos exactamente que haces, para ejecutar.

Nota que es una función, no una subrutina (macro)...
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
richardcns
Mensajes: 11
Registrado: Dom Sep 13, 2015 12:32 am

Re: Separar los apellidos compuestos

Mensaje por richardcns »

mauricio escribió:
richardcns escribió:al momento de ejecutar
Cuentamos exactamente que haces, para ejecutar.

Nota que es una función, no una subrutina (macro)...

Amigo ya se resolvio, creo que era algo que la pasaba al openoffice pero ya pude ejecutar la macro, y todo fuinciona muy bien Gracias!!! :super:
openoffice 4.1en windows 8
Responder