Copiar valor de una celda a otra hoja, si la celda es mayor a 0

Tengo una hoja con nombre "registro" y quiero que copie el valor de la celda "B10" si esta es mayor que 0 (cero) a la hoja con nombre "consec doc" en la celda "B60000".

1 Respuesta

Respuesta
1

H o l a:

Te anexo la macro para realizar la copia.

Sub CopiarCelda()
'Por.Dante Amor
    Set h1 = Sheets("registro")
    Set h2 = Sheets("consec doc")
    If h1.[B10] > 0 Then
        h2.[B60000] = h1.[B10]
        MsgBox "Celda copiada"
    End If
End Sub

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: CopiarCelda
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.


te agradezco, ahora si me disculpas, quisiera saber si puedo usar esta macro para que a partir de que el valor de la ceda b10 sea mayor a cero copie otras celdas de la hoja "registro" a la hoja "consec doc", por ejemplo si la celda B10 es mayor que cero entonces copie tambien la celda "F5" de la hoja registro a la celda "C60000" de la hoja "consec do" ya así según las celdas que yo necesite copiar de una hoja a la otra.

nuevamente gracias

Claro que puedes ocupar la macro, te pongo otro ejemplo para que lo sigas y pongas más celdas:

Sub CopiarCelda()
'Por.Dante Amor
    Set h1 = Sheets("registro")
    Set h2 = Sheets("consec doc")
    If h1.[B10] > 0 Then
        h2.[B60000] = h1.[B10]
        h2.[C60000] = h1.[F5]
        MsgBox "Celda copiada"
    End If
End Sub

bien te agradezco con esta macro me has ayudado mucho, excelente.

Hola

mira intente hacer esta macro para que copiara unas celdas, todo funciona bien excepto que cuando adiciono en la macro la condicion de que si la celda "B11" es mayor que cero copie y pegue pero cuando activo la macro aunque no tenga datos pega información.

la macro que tengo es esta.

Sub GUARDARDUI()

Dim Estilo, Mensaje, Título, Respuesta
Mensaje = "DESEA GUARDAR EL DUI"
Título = "Macro"
Estilo = vbYesNo + vbCritical + vbDefaultButton1
Respuesta = MsgBox(Mensaje, Estilo, Título)
If Respuesta = vbYes Then
'AQUÍ VA LA MACRO
Range("A1").Value = "Hola"
End If

Set h1 = Sheets("REGISTRO")
Set h2 = Sheets("CONSEC DOC")
If h1.[B10] > 0 Then
h2.[B60000] = h1.[B10]
h2.[C60000] = h1.[F5]
h2.[D60000] = h1.[F6]
h2.[E60000] = h1.[H6]
h2.[F60000] = h1.[D5]
h2.[G60000] = h1.[D6]
h2.[H60000] = h1.[D3]
h2.[I60000] = h1.[C10]
h2.[J60000] = h1.[D10]
h2.[K60000] = h1.[E10]
h2.[L60000] = h1.[F10]
h2.[M60000] = h1.[G10]
h2.[N60000] = h1.[H10]
h2.[O60000] = h1.[C23]
h2.[P60000] = h1.[C33]
h2.[Q60000] = h1.[D33]
End If
If h1.[B11] > 0 Then
h2.[B59999] = h1.[B11]
h2.[C59999] = h1.[F5]
h2.[D59999] = h1.[F6]
h2.[E59999] = h1.[H6]
h2.[F59999] = h1.[D5]
h2.[G59999] = h1.[D6]
h2.[H59999] = h1.[D3]
h2.[I59999] = h1.[C11]
h2.[J59999] = h1.[D11]
h2.[K59999] = h1.[E11]
h2.[L59999] = h1.[F11]
h2.[M59999] = h1.[G11]
h2.[N59999] = h1.[H11]
h2.[O59999] = h1.[C23]
h2.[P59999] = h1.[C33]
h2.[Q59999] = h1.[D33]
End If
If h1.[B12] > 0 Then
h2.[B59998] = h1.[B12]
h2.[C59998] = h1.[F5]
h2.[D59998] = h1.[F6]
h2.[E59998] = h1.[H6]
h2.[F59998] = h1.[D5]
h2.[G59998] = h1.[D6]
h2.[H59998] = h1.[D3]
h2.[I59998] = h1.[C12]
h2.[J59998] = h1.[D12]
h2.[K59998] = h1.[E12]
h2.[L59998] = h1.[F12]
h2.[M59998] = h1.[G12]
h2.[N59998] = h1.[H12]
h2.[O59998] = h1.[C23]
h2.[P59998] = h1.[C33]
h2.[Q59998] = h1.[D33]
End If
Range("B2:Q60000").Select
Range("B60000").Activate
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("CONSEC DOC").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("CONSEC DOC").Sort.SortFields.Add Key:=Range( _
"B2:B60000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("CONSEC DOC").Sort
.SetRange Range("B2:Q60000")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

End Sub

quedo agradecido y disculpa las molestias

No es ninguna molestia.

Te explico lo que entiendo.

Si B10 es mayor que 0 te pega datos

Lo mismo para B11 y B12.

Entonces si en B11 no es mayor que 0, pero B10 si es mayor que 0, la macro te copia los datos y luego los ordena.

Si quieres que revise tu macro, podrías crear una nueva pregunta.

si, te agradezco que me ayudes a mirarla, sucede que es una macro que he intentado hacer para guardar el registro de documentos de inventario, pero por ejemplo tu macro me sirve con registro de un solo item, pero el documento tiene maximo 11 items para registrar, entonces como puedes ver en la ultima macro que te envíe la idea es que peque ciertas celdas si son mayores que cero copien como lo relaciono en la macro a partir de  "B10", "B11"...... Pero sino, que no pegue la celdas que relaciono a "B11","B12","B13" etc.... espero que me entiendas lo que deseo hacer

nuevamente muchas gracias

Crea una nueva pregunta en el tema de microsoft excel y me explicas con detalle lo que quieres hacer con tu macro, escribe en el desarrollo de la pregunta: para Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas