problemas con matriz de excel

30/09/2012 - 15:54 por callow | Informe spam
Tengo valores numericos en una hoja del libro A de excel que nececito pasar al libro B.
En B creo una macro con el siguiente codigo:


Sub Actualizar()

'Define los path para la apertura del xls que tomara los valores.
varPath = ThisWorkbook.Path
varPathComplete = "" & varPath & "\01-Modelo_ Carga.xls"

'abre el archivo que tomara los valores.
Workbooks.Open Filename:=varPathComplete

Sheets("Calculos").Select 'se abre lo hoja del libro que contiene las filas con los valores



Dim rng As Range 'variable que setea el rango
Dim i As Integer, counter As Integer, m As Integer 'define los contadores
Dim mimatriz() As Integer 'define la matriz

i = 1 'cuenta las filas del rango.
m = 1 ' cuenta los elementos de la matriz.

'Setea el rango a evaluar.
Set rng = Range("I3:I31")
ReDim Preserve mimatriz(rng.Rows.Count)
'initialize i to 1

'Loop for a count of 1 to the number of rows
'in the range that you want to evaluate.
For counter = 1 To rng.Rows.Count

Debug.Print rng.Cells(CInt(i))
If rng.Cells(Int(i)) > 1 Then

mimatriz(m) = rng.Cells(i)
m = m + 1


End If
i = i + 1
Next



'cierra el archivo del que se tomaron los valores.
i = 1
m = 1
counter = 1
Set rng = Nothing
ActiveWindow.Close SaveChanges:=False
'*************************************************************************************** ya cargo los valores en la matriz y se deben distribuir por las celdas del documento abierto.
'***************************************************************************************
'For i = 0 To rng.Rows.Count'modelo de iteraci{on post seteo
'Debug.Print mimatriz(i)
'Next


Sheets(1).Select 'Activa la hoja en la que se imprimiran los valores

'Setea el rango a imprimir.
Set rng = Range("I8:I24")



'Loopeapor el numero de filas
'in the range that you want to evaluate.
For counter = 1 To rng.Rows.Count



If i = 2 Or i = 7 Or i = 11 Then
Else

varAddress = rng.Cells(i).Address
Debug.Print varAddress
Range(varAddress).Select
Range(varAddress) = mimatriz(m)
Debug.Print mimatriz(m)
m = m + 1

End If




i = i + 1
Next
'**********************************************************************************************************************


End Sub

El procedimiento toma del rango de celdas en A los valores correctos en el orden correcto y los ubica en B en el mismo orden en las celdas indicadas en la programación.
El error ocurre cuando el valor tomado de B es 0 o 1.
En tal caso lo ubica en ultimo lugar.No lo hace ni con 2 ni con 10.

ejemplo:

si la matriz incorpora estos valores de A en este orden
1
5
0
2

coloca en B
1
5
2
0



desde ya muchisimas gracias por tu atención.

Preguntas similare

Leer las respuestas

Search Busqueda sugerida