Microsoft excel
Hola buenos días, mi pregunta es la siguiente:
Estoy haciendo un presupuesto que se cree automáticamente al pulsar unos checkbox que se encuentran en otra hoja de productos. Es decir, lo que he hecho ha sido crear un código en el que identifique la primera línea vacía en el presupuesto y colocar ahí el texto que yo quiero acerca de los productos. (Esto se hace al pulsar un commandbutton). El código es algo así:
Function ultimaFila() As Integer
Dim uf As Long
Dim ws As Worksheet
Set ws = Worksheets("Productos")
'Buscamos la ultima fila
uf = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row
ultimaFila = uf
End Function
Private Sub CommandButton1_Click()
'Aqui empieza el macro donde se dice que tiene que pasar los datos de la hoja de productos a la hoja de presupuesto.
Dim hasta As Integer
Dim fila As Integer
fila = 17
Windows.Application.ScreenUpdating = False
'Borro los datos que hubieran antes
Sheets("Presupuesto").Range("c18", "Al23").ClearContents
'Selecciono la hoja1 que es de donde voy a obtener los datos
Sheets("Productos").Select
'Empiezo por la fila 4
For i = 4 To ultimaFila() - 1
Range("A" & i).Select
If ActiveCell.Value = True Then
fila = fila + 1
'Copio los datos a la hoja del presupuesto si esta el check activo
Sheets("Presupuesto").Range("C" & fila).Value = Sheets("Productos").Range("C" & i).Value
Sheets("Presupuesto").Range("h" & fila).Value = Sheets("Productos").Range("D" & i).Value
Sheets("Presupuesto").Range("y" & fila).Value = Sheets("Productos").Range("e" & i).Value
Sheets("Presupuesto").Range("ab" & fila).Value = Sheets("Productos").Range("f" & i).Value
Sheets("Presupuesto").Range("ah" & fila).Value = Sheets("Productos").Range("g" & i).Value
End If
Next
Windows.Application.ScreenUpdating = True
End Sub
Esto funciona perfectamente y cuando pulso un check me copia todos los datos del producto en las celdas del presupuesto que yo quiero (código del producto, descripción, precio, unidades...) El problema viene porque cada producto viene acompañado de una imagen, y me gustaría que esa imagen se copiase también en la hoja del presupuesto, siguiendo el mismo código que lo anterior, es decir, que busque la última fila completa para colocarla en la siguiente. Con todo esto intento que en una misma línea del presupuesto me aparezca toda la información del producto (incluida la imagen) que he pulsado en la hoja del producto.
Espero haber sido suficientemente claro y ruego pregunten si no me he expresado bien.
Gracias por su tiempo y su atención,
Kilian Cuneo
Estoy haciendo un presupuesto que se cree automáticamente al pulsar unos checkbox que se encuentran en otra hoja de productos. Es decir, lo que he hecho ha sido crear un código en el que identifique la primera línea vacía en el presupuesto y colocar ahí el texto que yo quiero acerca de los productos. (Esto se hace al pulsar un commandbutton). El código es algo así:
Function ultimaFila() As Integer
Dim uf As Long
Dim ws As Worksheet
Set ws = Worksheets("Productos")
'Buscamos la ultima fila
uf = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row
ultimaFila = uf
End Function
Private Sub CommandButton1_Click()
'Aqui empieza el macro donde se dice que tiene que pasar los datos de la hoja de productos a la hoja de presupuesto.
Dim hasta As Integer
Dim fila As Integer
fila = 17
Windows.Application.ScreenUpdating = False
'Borro los datos que hubieran antes
Sheets("Presupuesto").Range("c18", "Al23").ClearContents
'Selecciono la hoja1 que es de donde voy a obtener los datos
Sheets("Productos").Select
'Empiezo por la fila 4
For i = 4 To ultimaFila() - 1
Range("A" & i).Select
If ActiveCell.Value = True Then
fila = fila + 1
'Copio los datos a la hoja del presupuesto si esta el check activo
Sheets("Presupuesto").Range("C" & fila).Value = Sheets("Productos").Range("C" & i).Value
Sheets("Presupuesto").Range("h" & fila).Value = Sheets("Productos").Range("D" & i).Value
Sheets("Presupuesto").Range("y" & fila).Value = Sheets("Productos").Range("e" & i).Value
Sheets("Presupuesto").Range("ab" & fila).Value = Sheets("Productos").Range("f" & i).Value
Sheets("Presupuesto").Range("ah" & fila).Value = Sheets("Productos").Range("g" & i).Value
End If
Next
Windows.Application.ScreenUpdating = True
End Sub
Esto funciona perfectamente y cuando pulso un check me copia todos los datos del producto en las celdas del presupuesto que yo quiero (código del producto, descripción, precio, unidades...) El problema viene porque cada producto viene acompañado de una imagen, y me gustaría que esa imagen se copiase también en la hoja del presupuesto, siguiendo el mismo código que lo anterior, es decir, que busque la última fila completa para colocarla en la siguiente. Con todo esto intento que en una misma línea del presupuesto me aparezca toda la información del producto (incluida la imagen) que he pulsado en la hoja del producto.
Espero haber sido suficientemente claro y ruego pregunten si no me he expresado bien.
Gracias por su tiempo y su atención,
Kilian Cuneo
1 Respuesta
Respuesta de Eduard Caballero
1