Hola, respecto a lo que publiqué en ese foro que comentas decir que con 12000 celdas es para que se entienda, que no tengo 3 o 4 cables como para estar copiando y pegando formulas ya que como se puede entender da lugar a colarte y pegar una en la celda que no es sobre todo cuando llevas ya un buen rato con ello.
Respecto a utilizar una hoja auxiliar es tal y como lo planteé. De hecho el código de Leopoldo Blancas me funcionó perfecto, quedando ese desafío resuelto. Donde estaba el problema?Que cuando ejecutaba la macro me pegaba en las celdas en blanco la fórmula en inglés, que es como tengo el excel en un ordenador de trabajo, y no reconoce las funciones en este otro ordenador también de trabajo y que está en español (que por politicas de empresa no tengo permitido cambiar, capado) Por tanto aunque el código estaba genial no puedo utilizar la hoja excel en el ordenador de teletrabajo. Es por eso por lo que en este foro he planteado el problema desde otro punto de vista, quitando las fórmulas de la hoja auxiliar, ya que por eso método no me valió. Dejo captura de lo que me pasaba (que no es el caso en este tema), aunque pusiera ESFORMULA como comentas no me iba a valer, porque las funciones que contienen están en ingles,, Puedo buscar la traducción?Si, pero me va a dejar de valer para uno de los ordenadores igual. Es por eso que no conviene mezclar lo de un foro con este porque lo he planteado de otra forma aquí. Un saludo!
Por
MANTONIOPM, · publicado
Hola amigo, tengo una macro que me inserta una cantidad de imágenes en mi archivo excel, pero quiero hacer dos pequeñas modificaciones:
1) que la cantidad de fotos (CantFotos) que inserto este vinculado en una celda de mi excel, y no que la tenga que modificar desde la macro
2)que me comprima cada imagen que inserto a 150pp
esta es la macro:
Sub InsertarImagenes()
Dim PosX, PosY, X, J As Integer
Dim CantFotos As Integer
Dim Ruta As String
'le asigno valores a las variables, mismas que dependerán
'de cada proyecto:
'ruta de acceso a las imágenes
Ruta = "\"
'cantidad de imágenes a cargar:
CantFotos = 42
'margen izquierdo y superior que separará a cada imagen:
PosX = 10
PosY = 6310
J = 1
'si existe alguna autoforma la elimino:
If ActiveSheet.DrawingObjects.Count > 0 Then
ActiveSheet.DrawingObjects.Select
Selection.Delete
End If
'y cargo las 40 que se encuentran en el directorio:
For X = 1 To CantFotos
'este If es para asignar nuevos valores a las
'variables y hacer que aparezcan 5 imágenes x fila:
If J = 4 Then
PosX = 10
PosY = PosY + 245
J = 1
End If
'inserto una autoforma y como margen izq. y superior le paso las
ActiveSheet.Shapes.AddShape(msoShapeRectangle, PosX, PosY, 150, 200). _
Select
'aquí le indico que cargue la imagen, usando la variable Ruta y
'concatenando el número (x) con la extensión (.jpg)
On Error Resume Next
Selection.ShapeRange.Fill.UserPicture _
Ruta & X & ".jpg"
If Err.Number <> 0 Then
MsgBox "No se encontró una de las imágenes, por favor " _
& " revise el directorio", vbCritical, "Error"
Err.Clear
Exit Sub
End If
'incremento el margen izquierdo y a J
PosX = PosX + 160
J = J + 1
Next X
Range("c250").Select
End Sub
saludos amigos. y muy agradecido desde ya por su ayuda