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

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 [11]
101  Programación / Programación Visual Basic / Re: VBA - Error 9 (Subindice) y otra duda. 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.
102  Informática / Software / Re: VBA Excel, Loop de acuerdo a fecha en: 4 Diciembre 2011, 08:49 am
El problema que tenías es con el manejo de fechas, lo que haces al intentar today() -1, es restarle uno a la fecha actual pero son variables diferentes, recuerda que las fechas en VB se manejan mediante Variant, por lo que si quieres trabajar sin funciones como dateadd o datediff lo que tienes que hacer es obtener la fecha en serial, si no mal recuerdo la funcion es dateserial(yyyy,m,d) con lo que puedes obtener el serial exacto de alguna fecha y a partir de ahí trabajar con sumas, restas o lo que quieras, al finalizar solo tendrías que regresar ese número a formato variant con algo como:
Código:
fecha=format("dd/mm/yyyy")
te recomiendo que si trabajas con este tipo de números los declares como long, a fin de evitar conflictos si sobrepasan el limite de integer en la versión de VB. ;D

Lo probaré con tiempo. ;)
103  Programación / Programación Visual Basic / Re: VBA - Error 9 (Subindice) y otra duda. 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
104  Programación / Programación Visual Basic / Re: VBA - Error 9 (Subindice) y otra duda. 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:
105  Programación / Programación Visual Basic / 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.
106  Informática / Software / Re: VBA Excel, Loop de acuerdo a fecha en: 3 Septiembre 2011, 05:28 am
Perfecto, funciona... gracias.

Código:
Do Until ActiveCell = DateAdd("d", -1, Date)
Selection.EntireRow.Delete
Loop
107  Informática / Software / VBA Excel, Loop de acuerdo a fecha en: 1 Septiembre 2011, 09:46 am
En cierto punto de una macro hay un Loop que elimina todos los renglones con fecha distinta a la fecha deseada, esta fecha siempre va a ser de un dia anterior al actual:

Código:
Do Until ActiveCell = "31/08/2011"
Selection.EntireRow.Delete
Loop

Hoy es 01 de Septiembre, por lo tanto la macro elimina todos los dias de agosto menos 31, lo que quiero evitar es tener que cambiar la fecha en la macro cada vez que la ejecuto, intente cambiando la fecha por:

Código:
Do Until ActiveCell = "Today()-1"

Pero no funciona, sin embargo, escribiendo la fecha en formato "dd/mm/yyyy" funciona correctamente. ¿Cuál es la forma correcta para indicar que reste un dia?

Saludos
Páginas: 1 2 3 4 5 6 7 8 9 10 [11]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines