none
Cambiar color de hoja de excel (Option Strict On disallows late binding)

    Pregunta

  • Hola lista,

     

    Tengo el siguiente inconveniente, quiero cambiar el color a un reporte que generó mediante una plantilla en excel pero cuando activo Option Strinc On me indica el siguiente error:

    'Option Strict On disallows late binding

    El código es el siguiente:

    With CType(XL.Sheets(XL.Sheets.Count - 1), Excel.Worksheet)
              .Name = "Versión - " & x.Text
              .Cells(15, 2) = x.SubItems(1).Text
              If x.SubItems(1).Text = "Si" Then
                .Tab.Color = 10616832 
                .Tab.TintAndShade = 0 
              End If
    End With

    en la linea de .Tab.Color me indica el error mencionado y no he encontrado manera de cambiarlo.

    Saludos

    Juan Carlos

     

     

    • Cambiado Enrique M. MontejoMVP miércoles, 14 de septiembre de 2011 16:57 Microsoft Excel (De:Lenguaje VB.NET)
    miércoles, 07 de julio de 2010 15:16

Todas las respuestas


  • creo que deberias hacer algo como esto:

    Dim sheet As Excel.Worksheet = DirectCast(XL.Sheets(XL.Sheets.Count - 1), Excel.Worksheet)

    With sheet
        .Name = "Versión - " & x.Text
        .Cells(15, 2) = x.SubItems(1).Text
        If x.SubItems(1).Text = "Si" Then
            .Tab.Color = 10616832
            .Tab.TintAndShade = 0
        End If
    End With

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 07 de julio de 2010 15:42
  • Hola Leandro,

    Hice el cambio que me indicas y me continua indicando el mismo error, adjunto el código.

    Dim xx As Excel.Worksheet = DirectCast(XL.Sheets(XL.Sheets.Count - 1), Excel.Worksheet)
    With xx
      .Name = "Versión - " & x.Text
      .Cells(15, 2) = x.SubItems(1).Text
      If x.SubItems(1).Text = "Si" Then
        .Tab.Color = 10616832 
        .Tab.TintAndShade = 0 
      End If
    End With

    Espero me puedas brindar otra alternativa.

    Saludos

    Juan Carlos

     

    miércoles, 07 de julio de 2010 16:49
  • hola

    lo que tienes que revisar son los tipos de datos, si estos estan correctos al momento de asignarlos

    cuando da este mensaje que linea marca con el error ?

    lo que podrias hacer es comentar estas lineas de codigo y compilar a ver si lo ahce correctamente

    si lo hace ve descomentando de a poco y compila asi hasta ver en que linea falla

    de esta forma sabras que linea de codigo esta incorrecta

     

    por ejemplo en la linea

     .Cells(15, 2) = x.SubItems(1).Text

    no deberias poner el .Value ?

     .Cells(15, 2).Value = x.SubItems(1).Text

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 07 de julio de 2010 17:11
  • Leandro,

    Donde me marca error es en estas dos lineas, con el código que puse originalmente y con el código que despues modifique de acuerdo a lo que me indicaste.

      .Tab.Color = 10616832 
    .Tab.TintAndShade = 0

    Saludos

    Juan Carlos

    miércoles, 07 de julio de 2010 17:49
  • hola

    no has probado en varios los datos de estas propiedades ? me parece que el color que le pasas no es valido

    para ver que valores puedes tomar, graba una macro en Excel y luego revisa el codigo que genera, si estara en VBA, pero los codigo y estructura te sera util para comprender que valroes usa en estas propiedades

    http://bytes.com/topic/c-sharp/answers/522192-tab-color

    en el link explica que el color esta formado por RGB, al final da una explciacion de como conformar el color, por ahi ayude

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 08 de julio de 2010 3:39