elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  hola alguien me puede ayudar con este error???
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: hola alguien me puede ayudar con este error???  (Leído 804 veces)
pandoro

Desconectado Desconectado

Mensajes: 15


Ver Perfil
hola alguien me puede ayudar con este error???
« en: 10 Octubre 2006, 17:15 »

Hola colegas he realizado un programa en visual basic, pero en tiempo de ejecucion me da un error (el de la foto y no se que hacer porke no entiendo de que puede ser)
Espero que alguien me ayude , por favor.




un saludo


En línea

xDie


Desconectado Desconectado

Mensajes: 326


lol


Ver Perfil
Re: hola alguien me puede ayudar con este error???
« Respuesta #1 en: 10 Octubre 2006, 17:17 »

Programa de que?, postea el codigo de fuente o dame mas datos


En línea

Licence to kill!
pandoro

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: hola alguien me puede ayudar con este error???
« Respuesta #2 en: 10 Octubre 2006, 18:01 »

Hola el programa lo que hace es recoger cada linea de un data (recordset) y los va pegando en hojas de excel segun si en la hoja actual en tal celda existe un valor en concreto entonces lo pegas en esa hoja sino pasas a la siguiente hoja y sigues buscando, hasta el final de los registros...

Código:
consulta4 = "select * from lista where lista.[Réf Cde client]='IMP' and lista.[Exportado]=0;"
    Data5.RecordSource = consulta4
    Data5.Refresh
   
    If Data5.Recordset.RecordCount <> 0 Then
       
    'Crear fichero IMPx.xls
    Application.DisplayAlerts = False
   
    nombre = crear_ruta(2)
    nombre = nombre & "imp" & nficheroimp & ".xls"
   
    If Dir(nombre) = "" Then
   
        Application.Workbooks.Open App.Path & "\mdb\plantilla.xls"
        Application.Visible = False

        nombre = crear_ruta(2)
        nombre = nombre & "imp" & nficheroimp & ".xls"
        Application.ActiveWorkbook.SaveAs nombre
        Application.Quit
       
    Else
        'nada
    End If
   
        Application.Workbooks.Open nombre
        Application.Visible = False
       
        nhojas = Application.Worksheets.Count
        Application.ActiveWorkbook.Close
        Application.Quit
       
    Do While Not Data5.Recordset.EOF
        For cont = 0 To 6
            campos(cont) = Data5.Recordset.Fields(cont)
        Next
       
        'Buscar cliente y pegar datos
       
        For ihojas = 2 To nhojas 'empieza en 2 para saltarse la primera que es la plantilla
                       
            Application.Workbooks.Open nombre
            Application.Visible = False
           
            Application.Worksheets(ihojas).Activate
            nomhojas = Application.ActiveSheet.Name
            rangoB = "B"
           
            compara = Application.Worksheets(nomhojas).Cells(fila, rangoB).Value
            'compara = compara & "    "
           
            archivo = Split(compara, " ")
            archivo2 = Split(campos(1), " ")
           
            If archivo(0) = archivo2(0) Then
            'If compara = campos(1) Then
                rangoG = "G"
               
                If Application.Worksheets(nomhojas).Cells(fila, rangoG).Value = "" Then

                    'Pegar datos
                    rangoA = "A"
                    Application.Worksheets(nomhojas).Cells(fila, rangoA).Value = campos(0)
                    Text1.Text = campos(0)
                    rangoB = "B"
                    Application.Worksheets(nomhojas).Cells(fila, rangoB).Value = campos(1)
                    Text2.Text = campos(1)
                    rangoC = "C"
                    Application.Worksheets(nomhojas).Cells(fila, rangoC).Value = campos(6)
                    Text7.Text = campos(6)
                    rangoD = "D"
                    Application.Worksheets(nomhojas).Cells(fila, rangoD).Value = campos(2)
                    Text3.Text = campos(2)
                    rangoE = "E"
                    Application.Worksheets(nomhojas).Cells(fila, rangoE).Value = campos(3)
                    Text4.Text = campos(3)
                    rangoF = "F"
                    Application.Worksheets(nomhojas).Cells(fila, rangoF).Value = "1"
                    Text5.Text = "1"
                    rangoG = "G"
                    Application.Worksheets(nomhojas).Cells(fila, rangoG).Value = campos(5)
                    Text6.Text = campos(5)
                    Text8.Text = "IMP"
                   
                    Data5.Recordset.Edit
                    Data5.Recordset.Fields(7) = 1
                   
                    Application.ActiveWorkbook.Save
                    Application.ActiveWorkbook.Close
                    Application.Quit
                   
                ElseIf Application.Worksheets(nomhojas).Cells(fila, rangoG).Value <> "" Then
               
                    If Application.Worksheets(nomhojas).Cells(fila, rangoG).Value = campos(6) Then 'antes (6)
                        'Nada
                    ElseIf Application.Worksheets(nomhojas).Cells(fila, rangoG).Value <> campos(6) Then
                   
                        fila = fila + 1
                        rangoG = "G" & fila & ""
                        Application.Range(rangoG).EntireRow.Insert
                        'Pegar datos
                        rangoA = "A"
                        Application.Worksheets(nomhojas).Cells(fila, rangoA).Value = campos(0)
                        Text1.Text = campos(0)
                        rangoB = "B"
                        Application.Worksheets(nomhojas).Cells(fila, rangoB).Value = campos(1)
                        Text2.Text = campos(1)
                        rangoC = "C"
                        Application.Worksheets(nomhojas).Cells(fila, rangoC).Value = campos(6)
                        Text7.Text = campos(6)
                        rangoD = "D"
                        Application.Worksheets(nomhojas).Cells(fila, rangoD).Value = campos(2)
                        Text3.Text = campos(2)
                        rangoE = "E"
                        Application.Worksheets(nomhojas).Cells(fila, rangoE).Value = campos(3)
                        Text4.Text = campos(3)
                        rangoF = "F"
                        Application.Worksheets(nomhojas).Cells(fila, rangoF).Value = "1"
                        Text5.Text = "1"
                        rangoG = "G"
                        Application.Worksheets(nomhojas).Cells(fila, rangoG).Value = campos(5)
                        Text6.Text = campos(5)
                        Text8.Text = "IMP"
                       
                        Data5.Recordset.Edit
                        Data5.Recordset.Fields(7) = 1
                        Data5.Recordset.Update
                       
                        Application.ActiveWorkbook.Save
                        Application.ActiveWorkbook.Close
                        Application.Quit
                       
                    End If
                   
                End If
               
            End If
           
        Next 'recorrer hojas del libro
       
        Data5.Recordset.MoveNext
    Loop
    'Guardar el fichero nuevo
    'Application.ActiveWorkbook.Save
    'Application.Quit
   
    Data5.Refresh
   
    Else
        nficheroimp = nficheroimp + 1
    End If

Me da error en la instruccion:

Código:
Application.Worksheets(nomhojas).Cells(fila, rangoE).Value = campos(3)

pero del ElseIf

Código:
ElseIf Application.Worksheets(nomhojas).Cells(fila, rangoG).Value <> "" Then

no el primero que hace...

pero no en la primera pasada sino cuando ya lleva varias hojas miradas y procesadas entonces me da el error.
En línea

CeLaYa


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: hola alguien me puede ayudar con este error???
« Respuesta #3 en: 10 Octubre 2006, 20:02 »

creo que el problema son estas lineas

  Application.Worksheets(ihojas).Activate
  nomhojas = Application.ActiveSheet.Name

por que no intentas

  nomhojas =  Application.Worksheets(ihojas).name

creo que el problema es que le pasas el foco del sistema al excel con Application.Worksheets(ihojas).Activate
En línea

"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.
pandoro

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: hola alguien me puede ayudar con este error???
« Respuesta #4 en: 10 Octubre 2006, 20:24 »

que kieres decir con el foco del sistema???, y otra cosa, solo con la linea que has puesto tu ya se me activaran las hojas quiero decir, con el nombre HOJA23 ya se me activará ???? gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines