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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  VBA - Error 9 (Subindice) y otra duda.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: VBA - Error 9 (Subindice) y otra duda.  (Leído 5,653 veces)
edr89

Desconectado Desconectado

Mensajes: 105


Ver Perfil
VBA - Error 9 (Subindice) y otra duda.
« en: 26 Septiembre 2011, 01:44 am »

Hola,

estoy ejecutando una macro de excel que extrae información de un libro y lo copia a otro, el archivo con datos se llama protocolo y todo se copia al informe de protocolo.

Tengo 2 protocolos, ejecuto la macro para el primero, ya que extrae la información cierro el primer protocolo y abro el segundo, al ejecutar la macro me da el Error 9 Subindice fuera de intervalo. Siempre tengo que cerrar y abrir ambos documentos, protocolo e informe y esto es lo que quiero evitar ya que a veces tengo 6 o 7 protocolos y pierdo algo de tiempo cerrando y abriendo todo de nuevo.

La información la copio de un libro a otro haciendo referencia entre libros con:
Código:
Windows().Activate
Range().Select
Selection.Copy
Windows().Activate
Range().Select
ActiveSheet.Paste

Hay datos que pueden no tienen una celda fija, lo unico que se me ocurrio fue activar una celda del informe y hacer un vlookup:
Código:
Windows("Informe de Protocolo.xlsm").Activate
    Range("R47").Select
    ActiveCell.FormulaR1C1 = _
        "=VLOOKUP(""Nota"",'[protocolo.xls]Registro Ingreso'!R60:R85,2,FALSE)"

¿Hay alguna forma mas eficiente de extraer la información?
¿Cómo puedo evitar el error 9?

Saludos.


En línea

edr89

Desconectado Desconectado

Mensajes: 105


Ver Perfil
Re: VBA - Error 9 (Subindice) y otra duda.
« Respuesta #1 en: 24 Noviembre 2011, 09:01 am »

Respecto a la extración de información me resultó más útil este código:
Código:
Windows("protocolo.xls").Activate
    Cells.Find(What:="dx", After:=ActiveCell, LookIn:= _
        xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
        xlNext, MatchCase:=False, SearchFormat:=False).Activate
    ActiveCell.Offset(0, 1).Select
Selection.Copy
 Windows("Informe.xlsm").Activate
    Range("C47").Select
    ActiveSheet.Paste

Si la celda hace referencia a una formula entonces pego por valores y no con "Active Sheet.Paste".
Código:
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Queda pendiente el error de subindice :huh:


En línea

edr89

Desconectado Desconectado

Mensajes: 105


Ver Perfil
Re: VBA - Error 9 (Subindice) y otra duda.
« Respuesta #2 en: 1 Diciembre 2011, 08:22 am »

Para evitar error 9 hice un proceso mas completo, primero abro el archivo y despues ejecuto la extracción

Para abrir archivo:
Código:
Dim ExtArchivo As String, Titulo As String
Dim FilterIndex As Integer
Dim Protocolo As Variant
' File filters
ExtArchivo = "All Files (*.*),*.*"
FilterIndex = 3
Titulo = "Por favor seleccione un protocolo:"
ChDrive ("C")
ChDir ("C:")
With Application
    Protocolo = .GetOpenFilename(ExtArchivo, FilterIndex, Titulo)
    ChDrive (Left(.DefaultFilePath, 1))
    ChDir (.DefaultFilePath)
End With
' Exit on Cancel
If Protocolo = False Then
    Exit Sub
End If
Workbooks.Open Protocolo

Application.ScreenUpdating = False
En línea

edr89

Desconectado Desconectado

Mensajes: 105


Ver Perfil
Re: VBA - Error 9 (Subindice) y otra duda.
« Respuesta #3 en: 11 Diciembre 2011, 23:50 pm »

Para poder extraer la información de libros con diferentes nombres, primero lo abro y despues agrego estas lineas:

Código:
Dim LibroaCopiar As String
LibroaCopiar = ActiveWorkbook.Name

Así ya no tengo que renombrar el archivo a protocolo.xls, el código identifica al archivo abierto como LibroaCopiar, sin importar el nombre o caracteres que tenga.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
otra duda
Programación Visual Basic
bautistasbr 1 1,253 Último mensaje 8 Octubre 2005, 00:39 am
por Slasher-K
Error SQLite en otra PC
.NET (C#, VB.NET, ASP)
Skeletron 6 5,281 Último mensaje 24 Septiembre 2009, 04:29 am
por Skeletron
Problema El subindice esta fuera de intervalo
Programación Visual Basic
ninto33 5 8,147 Último mensaje 8 Febrero 2010, 08:19 am
por BlackZeroX
Error conectando a BBDD Derby JAVADB al copiar a otra máquina
Bases de Datos
BlaineMonkey 1 3,727 Último mensaje 11 Mayo 2010, 15:04 pm
por ^Tifa^
elemento de matriz es subindice de otra
Programación C/C++
Lieutenant McFarley 1 1,760 Último mensaje 1 Abril 2022, 21:08 pm
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines