ActiveSheet.Paste Erreur

vbbil

XLDnaute Nouveau
Bonjour à tous,

Ne trouvant pas de solution à mon problème, j’espère trouver de l’aide sur le forum.

J'utilise une macro sous Excel 2000+SP3, qui semble relativement simple (ci-dessous), et qui copie un ensemble de ligne d'une feuille vers une autre selon un critère sur une colonne de la première feuille.

Le grand mystère, c'est que cette macro fonctionne une fois sur deux ou trois !!! J'ai toujours le même message d'erreur à la ligne "ActiveSheet.Paste" :
Erreur d'exécution '1004' : La méthode Paste de la classe Worksheet a échoué.

Merci pour votre aide.


Sub Closed_Tlsfals()
ActiveWorkbook.Unprotect Password:="vb"
Dim k, l As Integer
l = 19
For k = 16 To 496
Sheets("TLS FALS WAVE 1").Select
ActiveSheet.Unprotect Password:="vb"
If Cells(k, 9).Value = "Closed" Then
Range(Cells(k, 2), Cells(l, 31)).Select
Selection.Copy
Sheets("Closed").Select
ActiveSheet.Unprotect Password:="vb"
ActiveSheet.Range("B65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
ActiveCell = " "
ActiveCell.Offset(1, 0).Select
ActiveCell = " "
ActiveCell.Offset(1, 0).Select
ActiveCell = " "
Sheets("TLS FALS WAVE 1").Select
Selection.Delete Shift:=xlUp
k = k - 4
l = l - 4
End If
k = k + 3
l = l + 4
Next k

Sheets("TLS FALS WAVE 1").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="vb"
Sheets("Closed").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="vb"
ActiveWorkbook.Protect Structure:=True, Windows:=False, Password:="vb"

End Sub
 
G

Guest

Guest
Re : ActiveSheet.Paste Erreur

Bonjour VbBil,

Essaie avec une boucle comme celle-ci:

Code:
    ActiveWorkbook.Unprotect Password:="vb"
    Dim k, l As Integer
    [COLOR=red]Dim Dest As Range[/COLOR]
    l = 19
    For k = 16 To 496
        Sheets("TLS FALS WAVE 1").Select
        ActiveSheet.Unprotect Password:="vb"
        [COLOR=red]Sheets("Closed").Unprotect Password:="vb"[/COLOR]
        If Cells(k, 9).Value = "Closed" Then
            [COLOR=red]Dest = Sheets("Closed").Range("B65536").End(xlUp).Offset(1, 0)[/COLOR]
[COLOR=red]           With Range(Cells(k, 2), Cells(l, 31))[/COLOR]
[COLOR=red]               .Copy Destination:=Dest[/COLOR]
[COLOR=red]               .Delete Shift:=xlUp[/COLOR]
[COLOR=red]           End With[/COLOR]
[COLOR=red]           Dest.Offset(1).Resize(3) = " "[/COLOR]
            k = k - 4
            l = l - 4
        End If
        k = k + 3
        l = l + 4
    Next k

A+
 

vbbil

XLDnaute Nouveau
Re : ActiveSheet.Paste Erreur

Bonjour Hasco, et merci pour ta réponse.

Je viens d'essayer ta macro malheureusement j'ai l'erreur suivante:
Erreur d'exscution 91 : variable objet ou variable de bloc With non définie sur la ligne :
Dest = Sheets("Closed").Range("B65536").End(xlUp).Offset(1, 0)

Je ne trouve pas pourquoi. Je bidouille avec les macro mais pas plus que ça. Alors si tu as une idée de la cause de ce problème, merci de ton retour.

V.
 
G

Guest

Guest
Re : ActiveSheet.Paste Erreur

Re,

N'ayant pas ton classeur je n'avais pas pu tester et me rendre compte que j'avais oublié un mot.
remplace la ligne par :

Code:
Set Dest = Sheets("Closed").Range("B65536").End(xlUp).Offset( 1, 0)

Le Set avait disparu.

A+
 

Statistiques des forums

Discussions
311 725
Messages
2 081 944
Membres
101 849
dernier inscrit
florentMIG