• Domingo 22 de Diciembre de 2024, 16:57

Autor Tema:  Hola Alguien Me Puede Ayudar Con Este Error???  (Leído 1022 veces)

luiski

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Hola Alguien Me Puede Ayudar Con Este Error???
« en: Martes 10 de Octubre de 2006, 17:13 »
0
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 ke hacer porke no entiendo de ke puede ser)
Espero ke alguien me ayude , por favor.

img174.imageshack.us/img174/9104/errorol2.jpg

un saludo

luiski

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Re: Hola Alguien Me Puede Ayudar Con Este Error???
« Respuesta #1 en: Martes 10 de Octubre de 2006, 18:02 »
0
Hola el programa lo ke 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: Text
  1.  
  2. consulta4 = "select * from lista where lista.[Réf Cde client]='IMP' and lista.[Exportado]=0;"
  3.     Data5.RecordSource = consulta4
  4.     Data5.Refresh
  5.    
  6.     If Data5.Recordset.RecordCount <> 0 Then
  7.        
  8.     'Crear fichero IMPx.xls
  9.     Application.DisplayAlerts = False
  10.    
  11.     nombre = crear_ruta(2)
  12.     nombre = nombre & "imp" & nficheroimp & ".xls"
  13.    
  14.     If Dir(nombre) = "" Then
  15.    
  16.         Application.Workbooks.Open App.Path & "\mdb\plantilla.xls"
  17.         Application.Visible = False
  18.  
  19.         nombre = crear_ruta(2)
  20.         nombre = nombre & "imp" & nficheroimp & ".xls"
  21.         Application.ActiveWorkbook.SaveAs nombre
  22.         Application.Quit
  23.        
  24.     Else
  25.         'nada
  26.     End If
  27.    
  28.         Application.Workbooks.Open nombre
  29.         Application.Visible = False
  30.        
  31.         nhojas = Application.Worksheets.Count
  32.         Application.ActiveWorkbook.Close
  33.         Application.Quit
  34.        
  35.     Do While Not Data5.Recordset.EOF
  36.         For cont = 0 To 6
  37.             campos(cont) = Data5.Recordset.Fields(cont)
  38.         Next
  39.        
  40.         'Buscar cliente y pegar datos
  41.        
  42.         For ihojas = 2 To nhojas 'empieza en 2 para saltarse la primera que es la plantilla
  43.                        
  44.             Application.Workbooks.Open nombre
  45.             Application.Visible = False
  46.            
  47.             Application.Worksheets(ihojas).Activate
  48.             nomhojas = Application.ActiveSheet.Name
  49.             rangoB = "B"
  50.            
  51.             compara = Application.Worksheets(nomhojas).Cells(fila, rangoB).Value
  52.             'compara = compara & "    "
  53.            
  54.             archivo = Split(compara, " ")
  55.             archivo2 = Split(campos(1), " ")
  56.            
  57.             If archivo(0) = archivo2(0) Then
  58.             'If compara = campos(1) Then
  59.                 rangoG = "G"
  60.                
  61.                 If Application.Worksheets(nomhojas).Cells(fila, rangoG).Value = "" Then
  62.  
  63.                     'Pegar datos
  64.                     rangoA = "A"
  65.                     Application.Worksheets(nomhojas).Cells(fila, rangoA).Value = campos(0)
  66.                     Text1.Text = campos(0)
  67.                     rangoB = "B"
  68.                     Application.Worksheets(nomhojas).Cells(fila, rangoB).Value = campos(1)
  69.                     Text2.Text = campos(1)
  70.                     rangoC = "C"
  71.                     Application.Worksheets(nomhojas).Cells(fila, rangoC).Value = campos(6)
  72.                     Text7.Text = campos(6)
  73.                     rangoD = "D"
  74.                     Application.Worksheets(nomhojas).Cells(fila, rangoD).Value = campos(2)
  75.                     Text3.Text = campos(2)
  76.                     rangoE = "E"
  77.                     Application.Worksheets(nomhojas).Cells(fila, rangoE).Value = campos(3)
  78.                     Text4.Text = campos(3)
  79.                     rangoF = "F"
  80.                     Application.Worksheets(nomhojas).Cells(fila, rangoF).Value = "1"
  81.                     Text5.Text = "1"
  82.                     rangoG = "G"
  83.                     Application.Worksheets(nomhojas).Cells(fila, rangoG).Value = campos(5)
  84.                     Text6.Text = campos(5)
  85.                     Text8.Text = "IMP"
  86.                    
  87.                     Data5.Recordset.Edit
  88.                     Data5.Recordset.Fields(7) = 1
  89.                    
  90.                     Application.ActiveWorkbook.Save
  91.                     Application.ActiveWorkbook.Close
  92.                     Application.Quit
  93.                    
  94.                 ElseIf Application.Worksheets(nomhojas).Cells(fila, rangoG).Value <> "" Then
  95.                
  96.                     If Application.Worksheets(nomhojas).Cells(fila, rangoG).Value = campos(6) Then 'antes (6)
  97.                         'Nada
  98.                     ElseIf Application.Worksheets(nomhojas).Cells(fila, rangoG).Value <> campos(6) Then
  99.                    
  100.                         fila = fila + 1
  101.                         rangoG = "G" & fila & ""
  102.                         Application.Range(rangoG).EntireRow.Insert
  103.                         'Pegar datos
  104.                         rangoA = "A"
  105.                         Application.Worksheets(nomhojas).Cells(fila, rangoA).Value = campos(0)
  106.                         Text1.Text = campos(0)
  107.                         rangoB = "B"
  108.                         Application.Worksheets(nomhojas).Cells(fila, rangoB).Value = campos(1)
  109.                         Text2.Text = campos(1)
  110.                         rangoC = "C"
  111.                         Application.Worksheets(nomhojas).Cells(fila, rangoC).Value = campos(6)
  112.                         Text7.Text = campos(6)
  113.                         rangoD = "D"
  114.                         Application.Worksheets(nomhojas).Cells(fila, rangoD).Value = campos(2)
  115.                         Text3.Text = campos(2)
  116.                         rangoE = "E"
  117.                         Application.Worksheets(nomhojas).Cells(fila, rangoE).Value = campos(3)
  118.                         Text4.Text = campos(3)
  119.                         rangoF = "F"
  120.                         Application.Worksheets(nomhojas).Cells(fila, rangoF).Value = "1"
  121.                         Text5.Text = "1"
  122.                         rangoG = "G"
  123.                         Application.Worksheets(nomhojas).Cells(fila, rangoG).Value = campos(5)
  124.                         Text6.Text = campos(5)
  125.                         Text8.Text = "IMP"
  126.                        
  127.                         Data5.Recordset.Edit
  128.                         Data5.Recordset.Fields(7) = 1
  129.                         Data5.Recordset.Update
  130.                        
  131.                         Application.ActiveWorkbook.Save
  132.                         Application.ActiveWorkbook.Close
  133.                         Application.Quit
  134.                        
  135.                     End If
  136.                    
  137.                 End If
  138.                
  139.             End If
  140.            
  141.         Next 'recorrer hojas del libro
  142.        
  143.         Data5.Recordset.MoveNext
  144.     Loop
  145.     'Guardar el fichero nuevo
  146.     'Application.ActiveWorkbook.Save
  147.     'Application.Quit
  148.    
  149.     Data5.Refresh
  150.    
  151.     Else
  152.         nficheroimp = nficheroimp + 1
  153.     End If
  154.  
  155.  

Me da error en la instruccion:

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

pero del ElseIf

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

no el primero ke hace...

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