[RESUELTO] Separar los apellidos compuestos

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...

[RESUELTO] Separar los apellidos compuestos

Notapor richardcns » Dom Sep 13, 2015 12:42 am

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   Expandir vistaContraer vista
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
richardcns
 
Mensajes: 11
Registrado: Dom Sep 13, 2015 12:32 am

Re: Separar los apellidos compuestos

Notapor xiseme » Dom Sep 13, 2015 10:00 am

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.
xiseme
 
Mensajes: 1888
Registrado: Lun Nov 24, 2008 1:13 pm

Re: Separar los apellidos compuestos

Notapor mauricio » Lun Sep 14, 2015 1:32 am

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
mauricio
 
Mensajes: 5929
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Separar los apellidos compuestos

Notapor SLV-es » Lun Sep 14, 2015 3:33 pm

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
SLV-es
 
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España

Re: Separar los apellidos compuestos

Notapor fornelasa » Lun Sep 14, 2015 6:57 pm

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) 153 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
fornelasa
 
Mensajes: 3234
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: Separar los apellidos compuestos

Notapor PepeOooSevilla » Jue Sep 17, 2015 8:56 am

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   Expandir vistaContraer vista
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) 154 veces
LibreOffice 6.2.7 (64 bits, Still, Empresarial o Estable) en Windows 10. Java 9.0.4 (64 bits)
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Avatar de Usuario
PepeOooSevilla
 
Mensajes: 1121
Registrado: Sab Abr 04, 2009 6:10 pm
Ubicación: Sevilla (España)

Re: Separar los apellidos compuestos

Notapor richardcns » Vie Sep 18, 2015 4:43 pm

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   Expandir vistaContraer vista
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
richardcns
 
Mensajes: 11
Registrado: Dom Sep 13, 2015 12:32 am

Re: Separar los apellidos compuestos

Notapor mauricio » Vie Sep 18, 2015 6:33 pm

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
Avatar de Usuario
mauricio
 
Mensajes: 5929
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Separar los apellidos compuestos

Notapor richardcns » Vie Sep 18, 2015 8:27 pm

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
richardcns
 
Mensajes: 11
Registrado: Dom Sep 13, 2015 12:32 am


Volver a Macros y API UNO

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados