Visual Basic para Aplicaciones - error en debug

Life is soft - evento anual de software empresarial
 
Vista:

error en debug

Publicado por djosafat (1 intervención) el 26/12/2005 19:03:18
Que tal a todos me encuentro en la necesidad de apreneder macros y profundizar mas en MS Excel y creando mis primeros codigos me encuentro con un error q no encuentro como solucionar y es el siguiente:

Private Sub CmdGuardar_Click()
Range("B4").Select
ActiveCell.Copy
Sheets("Informacion").Select
Rows ("2:2") <----Aqui me da el error
Selection.Insert Shift:=xlDown
Range("A2").Select
ActiveCell.Paste
End Sub

se supone q estoy en mi primer hoja y quiero copiar lo q esta en las seldas B4, D4, D7 que se encuentran en la hoja1 "Entrada" y despues insertarlos en la hoja2 "Informacion" en la 2° fila recorriendo los demas datos hacia abajo pero no me funciona, despues dije algo hice mal asi q grabe una macro
Sub Guardar()
'
' Guardar Macro
' Macro grabada el 12/26/2005 por Daniel Olvera
'
' Acceso directo: CTRL+n
'
Sheets("Informacion").Select
Rows("2:2").Select
Selection.Insert Shift:=xlDown
Sheets("Entrada").Select
Range("B4").Select
Selection.Copy
Sheets("Informacion").Select
Range("A2").Select
ActiveSheet.Paste
Range("B2").Select
Sheets("Entrada").Select
Range("D4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Informacion").Select
ActiveSheet.Paste
Range("C2").Select
Sheets("Entrada").Select
Range("F4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Informacion").Select
Range("E2").Select
ActiveSheet.Paste
Sheets("Entrada").Select
Range("H4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Informacion").Select
Range("F2").Select
ActiveSheet.Paste
Sheets("Entrada").Select
Range("D7").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Informacion").Select
Range("C2").Select
ActiveSheet.Paste
End Sub

y si le doy Ctrl+n en la hoja1 no hace nada, pero si lo hago en la hoja2 Ctrl-n si pasa todos los datos, alguien me puede orientar un poco ando muy seco y frio en esto de VB y excel

PD: ya estoy leyendo algunos manualitos q encontre en Internet pero no e encontrado uno q explique los objetos y de una lista de sus metodos asi q si alguien me puede pasar alguno q sea de lujo pues se los agradeceré. saluds a todos y suerte
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:error en debug

Publicado por Petter.pe (77 intervenciones) el 27/12/2005 01:24:31
Hola, el problema puede ser qué hoja está seleccionada al momento de ejecutar la instrucción. En tu ejemplo haces referencia a los objetos de la hoja seleccionada. Puedes referirte a una hoja directamente sin necesidad de seleccionarla. y también puedes referirte a sus objetos indicando su jerarquía. Por ejemplo puedes utilizar la función copy indicando directamente el destino:

Sheets("Entrada").Range("B4").Copy (Sheets("Informacion").Range("a2"))
Sheets("Entrada").Range("d4").Copy (Sheets("Informacion").Range("a3"))
Sheets("Entrada").Range("d7").Copy (Sheets("Informacion").Range("a4"))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:error en debug

Publicado por Petter.pe (77 intervenciones) el 29/12/2005 02:42:02
Hola, de la misma manera puedes insertar una fila sin necesidad de tener la hoja seleccionada. Por Ejemplo:

Sheets("Informacion").Range("a2").EntireRow.Insert

y luego puedes copiar los datos que necesitas en la fila insertada:

Sheets("Entrada").Range("B4").Copy (Sheets("Informacion").Range("a2"))
Sheets("Entrada").Range("d4").Copy (Sheets("Informacion").Range("B2"))
Sheets("Entrada").Range("d7").Copy (Sheets("Informacion").Range("C2"))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:error en debug

Publicado por Carlos (55 intervenciones) el 27/12/2005 17:45:05
Proba con este codigo:

Private Sub CmdGuardar_Click()
'primero insertar una linea en A2
Worksheets("Informacion").Range("A2").Select
Selection.EntireRow.Insert
'despues, decirle al programa que escriba en cada celda destino lo que lea en cada celda origen
Range("A2").Value = Worksheets("Entrada").Range("B4").Value
Range("B2").Value = Worksheets("Entrada").Range("D4").Value
Range("C2").Value = Worksheets("Entrada").Range("D7").Value
End Sub

Buena suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar