Código defectuoso

05/02/2007 - 18:19 por Albino | Informe spam
Olá.
Isto está a dar comigo em doido. Grrrrrrrrrrrrrrrrr
Construi uma macro num ficheiro onde utilizei o comando
"ActiveSheet.Unprotect" que resultou excelente.
Posteriormente quis aplica-lo noutra macro e cada vez que executo a mesma
dá-me
< "Run-time error '1004" Não foi possivel executar o método PasteSpecial da
classe range >
Penos que isso acontece porque a folha não foi desprotegida apesar de o
cídifo estar antes.
Que se passará??? Que haverá de errado no código???
A Ideia é copiar dados da folha1 e cola-los na folha3 desprotegendo-a e no
final protegendo-a novamente.
Ajuda...

Eilo:
______________________________________
Sub ImprFicha_GuardaConsulta()
'
' Macro4 Macro
' Macro gravada em 19-01-2007 por Albino
'
'ActiveWindow.SelectedSheets.PrintOut Copies:=1
Application.ScreenUpdating = False
Range("H2:K3").Select
Selection.Copy
Sheets("Folha3").Select
Range("A1").Select

ActiveSheet.Unprotect '[Será que está no lugar certo e bem
escrito??]

Selection.End(xlDown).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Sheets("Folha1").Select
Range("D2:D7,B8").Select
Selection.ClearContents
Sheets("Folha3").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True, _
AllowFiltering:=True
Application.ScreenUpdating = True

End Sub

Preguntas similare

Leer las respuestas

#1 Ivan
06/02/2007 - 00:12 | Informe spam
hola Albino,

lamento no conocer tu idioma, pero prueba esto ->>

Sub ImprFicha_GuardaConsulta()
Application.ScreenUpdating = False
With Sheets("Folha3")
.Unprotect
Sheets("Folha1").Range("H2:K3").Copy
.Range("a1").End(xlDown).PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFiltering:=True
.Activate
End With
Sheets("Folha1").Range("D2:D7, B8").ClearContents
End Sub

un saludo
Ivan

"Albino" escribió en el mensaje
news:
Olá.
Isto está a dar comigo em doido. Grrrrrrrrrrrrrrrrr
Construi uma macro num ficheiro onde utilizei o comando
"ActiveSheet.Unprotect" que resultou excelente.
Posteriormente quis aplica-lo noutra macro e cada vez que executo a mesma
dá-me
< "Run-time error '1004" Não foi possivel executar o método PasteSpecial
da
classe range >
Penos que isso acontece porque a folha não foi desprotegida apesar de o
cídifo estar antes.
Que se passará??? Que haverá de errado no código???
A Ideia é copiar dados da folha1 e cola-los na folha3 desprotegendo-a e no
final protegendo-a novamente.
Ajuda...

Eilo:
______________________________________
Sub ImprFicha_GuardaConsulta()
'
' Macro4 Macro
' Macro gravada em 19-01-2007 por Albino
'
'ActiveWindow.SelectedSheets.PrintOut Copies:=1
Application.ScreenUpdating = False
Range("H2:K3").Select
Selection.Copy
Sheets("Folha3").Select
Range("A1").Select

ActiveSheet.Unprotect '[Será que está no lugar certo e bem
escrito??]

Selection.End(xlDown).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Sheets("Folha1").Select
Range("D2:D7,B8").Select
Selection.ClearContents
Sheets("Folha3").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True, _
AllowFiltering:=True
Application.ScreenUpdating = True

End Sub


Respuesta Responder a este mensaje
#2 Albino
06/02/2007 - 01:33 | Informe spam
Olá Ivan.
Muchas gracias por ayudar-me, perdon mi espanhol.
Tu código funciona bien, pero porque el mio no marchava? Antes yo tenia una
macro que marchaba bien, pero despues que lhe introduci el comando de
"ActiveSheet.Unprotect" copiado e pegado de una otra, ya no funciono más.
Bueno ahora funciona. Gracias
Tengo una otra duda como lo hago para que al executar el código (el de
arriba, mejor abajo), lo mismo no se execute a menos que la celda B8 esté
preechida. Deverá aparecer un aviso para que se escriba algo en la referida
celda e solo despues é que la macro se debe executar.
Muchas gracias e perdon mas uma vez por mi espanhol.
Um saludo


"Ivan" escreveu na mensagem
news:
hola Albino,

lamento no conocer tu idioma, pero prueba esto ->>

Sub ImprFicha_GuardaConsulta()
Application.ScreenUpdating = False
With Sheets("Folha3")
.Unprotect
Sheets("Folha1").Range("H2:K3").Copy
.Range("a1").End(xlDown).PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFiltering:=True
.Activate
End With
Sheets("Folha1").Range("D2:D7, B8").ClearContents
End Sub

un saludo
Ivan

"Albino" escribió en el mensaje
news:
Olá.
Isto está a dar comigo em doido. Grrrrrrrrrrrrrrrrr
Construi uma macro num ficheiro onde utilizei o comando
"ActiveSheet.Unprotect" que resultou excelente.
Posteriormente quis aplica-lo noutra macro e cada vez que executo a mesma
dá-me
< "Run-time error '1004" Não foi possivel executar o método PasteSpecial
da
classe range >
Penos que isso acontece porque a folha não foi desprotegida apesar de o
cídifo estar antes.
Que se passará??? Que haverá de errado no código???
A Ideia é copiar dados da folha1 e cola-los na folha3 desprotegendo-a e
no
final protegendo-a novamente.
Ajuda...

Eilo:
______________________________________
Sub ImprFicha_GuardaConsulta()
'
' Macro4 Macro
' Macro gravada em 19-01-2007 por Albino
'
'ActiveWindow.SelectedSheets.PrintOut Copies:=1
Application.ScreenUpdating = False
Range("H2:K3").Select
Selection.Copy
Sheets("Folha3").Select
Range("A1").Select

ActiveSheet.Unprotect '[Será que está no lugar certo e bem
escrito??]

Selection.End(xlDown).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Sheets("Folha1").Select
Range("D2:D7,B8").Select
Selection.ClearContents
Sheets("Folha3").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True, _
AllowFiltering:=True
Application.ScreenUpdating = True

End Sub






Respuesta Responder a este mensaje
#3 Ivan
06/02/2007 - 01:59 | Informe spam
hola Albino

disculpame pero te lo tengo que decir en español

Tu código funciona bien, pero porque el mio no marchava?



creo que Unprotect debia ir antes de Copy para no 'romper' / desactivar el
CutCopyMode

), lo mismo no se execute a menos que la celda B8 esté preechida. Deverá
aparecer un aviso para que se escriba algo en la referida



pon al principio->

If Sheets("Folha1")="" then
MsgBox "Tienes que escribir algo en la celda D8": Exit Sub
End If

Quedaria mas o menos asi ->>

Sub ImprFicha_GuardaConsulta()
If Sheets("Folha1").Range("D8") = "" Then
MsgBox "Tienes que escribir algo en la celda D8"
Exit Sub
End If
Application.ScreenUpdating = False
With Sheets("Folha3")
.Unprotect
Sheets("Folha1").Range("H2:K3").Copy
.Range("a1").End(xlDown).PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFiltering:=True
.Activate
End With
Sheets("Folha1").Range("D2:D7, B8").ClearContents
End Sub

un saludo y hasta pronto
Ivan


"Albino" escribió en el mensaje
news:
Olá Ivan.
Muchas gracias por ayudar-me, perdon mi espanhol.
Tu código funciona bien, pero porque el mio no marchava? Antes yo tenia
una macro que marchaba bien, pero despues que lhe introduci el comando de
"ActiveSheet.Unprotect" copiado e pegado de una otra, ya no funciono más.
Bueno ahora funciona. Gracias
Tengo una otra duda como lo hago para que al executar el código (el de
arriba, mejor abajo), lo mismo no se execute a menos que la celda B8 esté
preechida. Deverá aparecer un aviso para que se escriba algo en la
referida celda e solo despues é que la macro se debe executar.
Muchas gracias e perdon mas uma vez por mi espanhol.
Um saludo


"Ivan" escreveu na mensagem
news:
hola Albino,

lamento no conocer tu idioma, pero prueba esto ->>

Sub ImprFicha_GuardaConsulta()
Application.ScreenUpdating = False
With Sheets("Folha3")
.Unprotect
Sheets("Folha1").Range("H2:K3").Copy
.Range("a1").End(xlDown).PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True, AllowFiltering:=True
.Activate
End With
Sheets("Folha1").Range("D2:D7, B8").ClearContents
End Sub

un saludo
Ivan

"Albino" escribió en el mensaje
news:
Olá.
Isto está a dar comigo em doido. Grrrrrrrrrrrrrrrrr
Construi uma macro num ficheiro onde utilizei o comando
"ActiveSheet.Unprotect" que resultou excelente.
Posteriormente quis aplica-lo noutra macro e cada vez que executo a
mesma
dá-me
< "Run-time error '1004" Não foi possivel executar o método
PasteSpecial da
classe range >
Penos que isso acontece porque a folha não foi desprotegida apesar de o
cídifo estar antes.
Que se passará??? Que haverá de errado no código???
A Ideia é copiar dados da folha1 e cola-los na folha3 desprotegendo-a e
no
final protegendo-a novamente.
Ajuda...

Eilo:
______________________________________
Sub ImprFicha_GuardaConsulta()
'
' Macro4 Macro
' Macro gravada em 19-01-2007 por Albino
'
'ActiveWindow.SelectedSheets.PrintOut Copies:=1
Application.ScreenUpdating = False
Range("H2:K3").Select
Selection.Copy
Sheets("Folha3").Select
Range("A1").Select

ActiveSheet.Unprotect '[Será que está no lugar certo e bem
escrito??]

Selection.End(xlDown).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Sheets("Folha1").Select
Range("D2:D7,B8").Select
Selection.ClearContents
Sheets("Folha3").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True, _
AllowFiltering:=True
Application.ScreenUpdating = True

End Sub










Respuesta Responder a este mensaje
#4 Ivan
06/02/2007 - 02:08 | Informe spam
perdon,

donde pone ->> 'D8' pon ->>> 'B8'

sorry

ivan
Respuesta Responder a este mensaje
#5 Albino
06/02/2007 - 22:47 | Informe spam
Olá Ivan.
Está perfecto mejor no poderia
Te entiendo bien.
Muchas gracias..

"Ivan" escreveu na mensagem
news:Ob1F%
perdon,

donde pone ->> 'D8' pon ->>> 'B8'

sorry

ivan

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida