Autor Tema: Detectar formato desde vb6 en una planilla de Excel  (Leído 4353 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Detectar formato desde vb6 en una planilla de Excel
« en: Septiembre 12, 2011, 10:00:43 am »
Hola tengo una planilla xls con muchisimos datos ordenados en una sóla columna y los quiero trasladar a una base de datos pero el asunto es que en la misma columna estan el Nombre y la direccion del cliente de esta manera:


Mario Anibal Rosas   Alvear 478


El nombre esta en negrita y en un tamaño mayor pero dentro de la misma celda por lo que debiera tener una funcion que detecte el formato en negrita y lo separe a otra columna!!!

Es posible hacerlo desde VB6 o debiera hacerlo dentro de excel con alguna MACRO??

gracias 1000

Bazooka
« última modificación: Septiembre 12, 2011, 12:39:45 pm por Bazooka »
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Detectar formato desde vb6 en una planilla de Excel
« Respuesta #1 en: Septiembre 13, 2011, 02:48:44 am »
buena pregunta, yo trabaje bastante con VBA desde visual basic, pero no he encontrado nada parecido.

no tenes posibilidad de que ese XLS se exporte bien ?

pero podes probar esto:

How to Search Bold Text (Range) using Excel VBA

saludos.
« última modificación: Septiembre 13, 2011, 02:52:20 am por seba123neo »

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Re:Detectar formato desde vb6 en una planilla de Excel
« Respuesta #2 en: Septiembre 13, 2011, 08:21:58 am »
no tenes posibilidad de que ese XLS se exporte bien ?

saludos.

Hola Seba no entiendo que me queres decir con que se exporte bien..
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Re:Detectar formato desde vb6 en una planilla de Excel
« Respuesta #3 en: Septiembre 13, 2011, 09:00:42 am »
Seba soy muy malo para el ingles pero ese ejemplo que me pasaste aparentemente sólo busca por celdas el formato o sea si la celda es negrita o no!, no cheque todo el texto DENTRO verdad?
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Lolabyte

  • Bytes
  • *
  • Mensajes: 35
  • Reputación: +15/-0
    • Ver Perfil
Re:Detectar formato desde vb6 en una planilla de Excel
« Respuesta #4 en: Septiembre 15, 2011, 08:07:06 pm »
En este post resuelven un problema parecido al tuyo, en una celda hay texto en aleman y texto en ingles, la unica forma de diferenciar es que el texto en aleman esta bold

die Fuβgängerzone,-n –pedestrian zone
erleben-to experience
kräftig - strong

la solucion era hacer una funcion de usuario

Código: [Seleccionar]
Function BoldEnds(r As Range) As Long
    ' returns the character position of the first non-bold character
    ' in the first cell of r
 
    Dim iUB As Long
    Dim iLB As Long
    Dim iMid As Long
 
    With r(1)
        If .HasFormula Or VarType(.Value) <> vbString Then
            BoldEnds = -1
 
        ElseIf IsNull(.Font.Bold) Then  ' some bold, some not
            iUB = Len(.Value)
            iLB = 0
 
            Do While iUB - iLB > 1
                iMid = (iLB + iUB) \ 2
                If .Characters(iMid, 1).Font.Bold Then
                    iLB = iMid
                Else
                    iUB = iMid
                End If
            Loop
 
            BoldEnds = iUB
        ElseIf .Font.Bold Then
            BoldEnds = Len(.Value) + 1
        Else
            BoldEnds = 1
        End If
    End With
End Function

      ------------A------------     -------B--------       ----C-----
  1             Input                          Bold               Not Bold
  2   der Anwalt,-¨e –solicitor der Anwalt,-¨e       –solicitor
  3   der Fahrstuhl,-¨e –lift     der Fahrstuhl,-¨ e  –lift   
  4   fliehen-to escape            fliehen                  -to escape

La formula en B2 es
=LEFT(A2, BoldEnds(A2)-1)

y la formula en C2 es
=TRIM(MID(A2, BoldEnds(A2), LEN(A2)))

Ojala te sirva  :)

http://www.excelforum.com/excel-general/754022-split-cell-bold-text-and-non-bold-text.html

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Re:Detectar formato desde vb6 en una planilla de Excel
« Respuesta #5 en: Septiembre 21, 2011, 06:36:32 pm »
MUCHAS GRACIAS!!! Lola ahora lo baj y pruebo!!
« última modificación: Septiembre 21, 2011, 06:53:41 pm por xkiz ™ »
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.