Autor Tema: Centrar un Texto desde Visual a Excel  (Leído 2681 veces)

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

Ever Cerna

  • Megabyte
  • ***
  • Mensajes: 113
  • Reputación: +1/-1
  • anarkia99-Soft.
    • Ver Perfil
Centrar un Texto desde Visual a Excel
« en: Marzo 05, 2016, 07:21:57 am »
Buenos dias, muchachos

Eh intentado pasar unos datos desde un MSHFlexGrid, a Excel y hasta alli todo ok, el detalle es que intentado ponerle algunos formatos como poner el nombre del titulo, poner en negritam, etc eh estado probando con la MACRO, el detalle es que todo me funciona excepto poner en centrado el titulo no me funciona el codigo que me arroja el macro, al intentar copiar me dice que la variable no esta definida.

En esa parte me arroja el error, es el mismo codigo copie y pega de la MACRO generada del excel.
Código: [Seleccionar]
[b].HorizontalAlignment = xlGeneral[/b]
Código: [Seleccionar]
[b].VerticalAlignment = xlCenter[/b]
Y el codigo me que me funciona hasta el momento es esto, pero no logro centrarlo, haber si nme da una manito

Código: [Seleccionar]
Private Sub CmdExpExcel_Click()

    Dim i As Long, J As Long
    Dim objExcel As Object
    Dim objWorkbook As Object
   
    On Error Resume Next ' por si se cierra Excel antes de cargar los datos
   
    Set objExcel = CreateObject("Excel.Application")
    objExcel.Visible = True
    Set objWorkbook = objExcel.Workbooks.Add
       
    'Titulo..
    objExcel.Range("A1:H1").Select
   
    objExcel.Selection.Merge
    objExcel.ActiveCell.FormulaR1C1 = "COMERCIAL ""KLO"""
    objExcel.Range("A1:H1").Select
    objExcel.Selection.Font.Bold = True
   
    With objExcel.Selection.Font
        .Name = "Calibri"
        .Size = 36
    End With
     
    Set objWorkbook = Nothing
    Set objExcel = Nothing

End Sub

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Centrar un Texto desde Visual a Excel
« Respuesta #1 en: Marzo 07, 2016, 09:32:40 pm »
Hola, no lo probe, pero por lo visto tu error es que utilizas constantes que son de excel y vos no usas referencias utilizas CreateObject por lo tanto esas constantes no están integradas a visual basic, mirando en el examinador de objectos de Excel(VBA) vi cuales son sus valores, asi que tenes que declarar esas constantes en tu proyecto.
Código: [Seleccionar]
Private Const xlCenter = &HFFFFEFF4
Private Const xlGeneral = 1

o bien le pasas el valor directamente

Código: [Seleccionar]
.HorizontalAlignment = 1
.VerticalAlignment =  &HFFFFEFF4

espero me ayas entendido. saludos.

Ever Cerna

  • Megabyte
  • ***
  • Mensajes: 113
  • Reputación: +1/-1
  • anarkia99-Soft.
    • Ver Perfil
Re:Centrar un Texto desde Visual a Excel
« Respuesta #2 en: Marzo 08, 2016, 01:13:33 pm »
Buen dia Lea, gracias por responder, se me habia olvidado pasarle la Referencia de "Microsoft Excel ......", asiendo eso efectivamente funciona todo ok.

Aprovechando este, mismo Post, haber si me das otra manito amigo Lea, hasta ahora todo esta perfecto pasa todo mis datos del MSHFlexGrid, al Excel pero lo que estava intendtando, hacer es agregarle unos Items o enumerarlos a los productos que pasan al excel osea algo parecido a esto:

1 - ARROZ 1KL
2 - AZUCAR
3 - ACEITE
: - .....
: - ....
: - ....

Captura:

Ver Imagen: http://s2.subirimagenes.com/imagen/previo/thump_9535691captura.png

De igual manera adjunto la imagen de mas o menos como seria. Como vez los numero que van de 1 al 11 de color rojo, van juntos con la lista segun la cantidad de productos, lo eh estado intentando obviamente con un FOR pero no logro que me funcione.

Por ahora tengo este codigo que pasa todo los datos al excel, adicionalmente a eso queria agregarle los Items o numero correlativos segun la cantidad de productos.

Código: [Seleccionar]
Private Sub CmdExpExcel_Click()

    Dim i As Long, J As Long, m As Long
    Dim objExcel As Object
    Dim objWorkbook As Object
   
    On Error Resume Next ' por si se cierra Excel antes de cargar los datos
   
    Set objExcel = CreateObject("Excel.Application")
    objExcel.Visible = True
    Set objWorkbook = objExcel.Workbooks.Add

    For i = 0 To Grid.Rows - 1
   
        Grid.Row = i
       
        For J = 0 To Grid.Cols - 1
                   
            Grid.Col = J
            objWorkbook.ActiveSheet.Cells(i + 13, J + 1).Value = Grid.Text
       
        Next
       
    Next

End Sub

Haber si me orientas de que forma puedo solucionar ese detalle.

Gracias de antemano.
« última modificación: Marzo 08, 2016, 01:29:09 pm por Ever Cerna »

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Centrar un Texto desde Visual a Excel
« Respuesta #3 en: Marzo 08, 2016, 07:33:31 pm »
hola si es que entiendo bien de lo que quieres hacer, hay una columna de la imagen que no coincide con el codigo, pero buengo suponiendo que la pusiste manualmente.

creo que es esto lo que queres hacer

Código: [Seleccionar]
Private Sub CmdExpExcel_Click()

    Dim i As Long, J As Long, m As Long
    Dim objExcel As Object
    Dim objWorkbook As Object
   
    On Error Resume Next ' por si se cierra Excel antes de cargar los datos
   
    Set objExcel = CreateObject("Excel.Application")
    objExcel.Visible = True
    Set objWorkbook = objExcel.Workbooks.Add

    For i = 0 To Grid.Rows - 1
   
        Grid.Row = i
       
        For J = 0 To Grid.Cols - 1
                   
            Grid.Col = J
            objWorkbook.ActiveSheet.Cells(i + 13, J + 2).Value = Grid.Text  '<--- columna 2 en adelante
       
        Next
        objWorkbook.ActiveSheet.Cells(i + 13, 1).Value =i+1 '<--- columna 1
    Next

End Sub


Ever Cerna

  • Megabyte
  • ***
  • Mensajes: 113
  • Reputación: +1/-1
  • anarkia99-Soft.
    • Ver Perfil
Re:Centrar un Texto desde Visual a Excel
« Respuesta #4 en: Marzo 09, 2016, 12:11:11 am »
Gracias Lea, por tu apoyo el codigo si funciona, si logra pasar ase lo que queria pero un detalle, si vez la imagen que puse esos numero que estan de rojo, empieza desde el primer Articulo, hacia abajo, el codigo ase lo que se le pide el detalle es que agarra desde la cabezara obviamente por que se le esta indicando que arranque desde la FILA 13, cambie esa parte le puse para que arranque de la fila 14 pero no funciona no muestra nada, alguna idea del por que no funciona??

Alli le cambie de FILA 13 A 14, pero no me imprime, deberia de imprimir con toda normalidad pero no funciona.

objWorkbook.ActiveSheet.Cells(i + 14, 1).Value =i+1 '<--- columna 1

Gracias, de antemano y por tu tiempo.

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Centrar un Texto desde Visual a Excel
« Respuesta #5 en: Marzo 10, 2016, 08:59:46 pm »
Hola si tenes razon tenia que empezar desde la fila 14, de todas formas deberia funcionar, no se que decirte, lo mejor seria que subas la planilla para poder probar el código.

Saludos.