La méthode Paste de de la classe Worksheet a échoué
Bonjour,
J'ai un classeur Excel qui fonctionnait parfaitement jusqu'à maintenant, mais aujourd'hui quand l'exécute une routine VBA ci-dessous j'obtiens l'erreur 1004 suivante:
"La méthode Paste de de la classe Worksheet a échoué"
et elle s'arrête sur la ligne "ActiveSheet.Paste".
Puis en touchant la touche F8 dans le déblocage j'arrive à mener la routine à son à son terme.
Je ne comprends pas ce qui se passe, peut être que quelqu'un pourrait m'éclairer.
Merci par avance.
Surkrut
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
i = 5 'colonne où regarder pour la 1ère Boucle (ici E =Exercice pour Lundi)
Dim number As Integer
number = 5 'nombre de jours dans le formulaire
'Départ de la Routine
Do Until number = 0
If number <= 0 Then Exit Do
number = number - 1
If Target.Column = i And Target.Count = 1 Then
Position = ActiveCell.Address 'enregistre la position de départ
'-- Supprime l'image actuelle
For Each s In ActiveSheet.Shapes 'pour chaque image de la feuille
If s.Type <> 8 Then
If s.TopLeftCell.Address = Target.Offset(0, -2).Address Then
s.Delete
End If
End If
Next s
'-- insère l'image correspondante à la valeur dans la colonne à droite de "liste"
If Target <> "" Then
lig = [liste].Find(Target, LookAt:=xlWhole).Row
col = [liste].Column + 1
For Each s In Sheets("BD").Shapes
If s.TopLeftCell.Address = Cells(lig, col).Address Then s.Copy
Next s
Target.Offset(0, -2).Select
ActiveSheet.Paste
Selection.ShapeRange.Left = ActiveCell.Left + 7 'position de l'image dans la celulle
Selection.ShapeRange.Top = ActiveCell.Top + 5
Target.Select
If Target.Value = "n.a." Then Call Vider_les_cellules
End If
End If
'--Incrémente la variable i pour passer à la colonne Exercice du jour suivant (ici 0 pour Mardi, Y pour mercredi, ...).
i = i + 10
Loop
'Target.Select
End Sub
Bonjour et bienvenue,
ceci est redondant
Do Until number = 0
If number <= 0 Then Exit Domais ce n'est pas le sujet
as-tu un fichier excel, même réduit au problème rencontré ?
Bonjour Steelson et merci pour ta réponse.
Je veux bien t'envoyer le fichier, mais celui-ci, même allégé au max "pèse" encore plus de 7 Mo
et ne passe pas en pièce jointe.
As-tu une autre solution pour te le transmettre?
J'ai trouvé une solution sur un site d'aide en anglais.
Il suffit d'insérer la fonction DoEvents avant ActiveSheet.Paste !