VBA_ Macro qui bloque ERREUR 1004

Bonjour,

je suis débutante dans la programmation, et j'ai un problème lors de l'execution de ma macro principale qui insere des lignes et copie et colle le tableau, elle bloque au niveau d'un autre code qui a pour but de forcer le collage avec valeur dans mes feuilles (pour les autres utilisateurs), qui bloque au niveau de .Undo dans le code ci-dessous:

image
Private Sub Worksheet_Change(ByVal Target As Range)

With Application
        .EnableEvents = False
        x = Target.Value
        .Undo
        Target.Value = x
        .EnableEvents = True
    End With

End Sub

ma macro principale est comme suit:

Sub Copier_Tableaux()

 Application.ScreenUpdating = False

Worksheets("HD").Unprotect

Sheets("HD").Range("A8:AE42").Copy
Sheets("HD").Rows("8:8").Resize(36).Insert Shift:=xlDown
Sheets("HD").Range("A8:AE42").PasteSpecial xlPasteAll

For Each cell In Sheets("HD").Range("A8:AE42")
    If Not cell.Locked Then
    cell.ClearContents
End If
        Next cell

With Sheets("HD")
    Range("A8").Value = "Suivi budgétaire " & Year(Date) & "-" & Format(Date, "mm") & "N"
    Range("A9").Value = Year(Date) & "-" & Format(Date, "mm") & "N"
End With

Application.CutCopyMode = False

ActiveSheet.Range("A43:AE76").Select
For Each cell In Selection
If Not cell.Locked Then
cell.Locked = True
End If
    Next cell

Worksheets("HD").Protect Password:="", UserInterfaceOnly:=True

ActiveSheet.Protect AllowFiltering:=True, AllowFormattingColumns:=True
Sheets("HD").Range("A1").Select

Avez vous une idée pourquoi elle bloque Svp?

Merci d'avance,

Bonjour Nassi123 et

Une petite présentation ICI serait la bienvenue

Si vous ne l'avez pas encore fait, je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER] ainsi que ses fonctionnalités
qui vous aideront dans vos demandes et réponses sur ce forum.

Merci de votre participation

Concernant votre demande, comme vous faite un Undo, pour moi il n'y a rend d'autre à faire

Private Sub Worksheet_Change(ByVal Target As Range)
  With Application
    .EnableEvents = False
    .Undo
    .EnableEvents = True
  End With
End Sub

En revanche il faut aussi bloquer les évènements lors du code principal

Application.EnableEvents  = False ' a mettre au début
Application.EnableEvents  = True ' a mettre à la fin

Cordialement

Bonjour BrunoM45,

Merci de votre réponse

En fait, ce n'est qu'une partie de ma macro principale, j'avais déja inscrit Application.EnableEvents = True à la fin, qui fonctionnait parfaitement sans le petit code pour "coller les valeurs", mais si je remets petit code, il bloque et j'ai le message d'erreur

Mise à jour:

J'ai trouvé une solution pour contourner le message d'erreur en mettant le code ci desous juste avant ou ça bloque, ça a bien marché mais finalement je vais pas utiliser le petit code "coller les valeur" car il supprime toutes mes formules collés dans le tableau inséré.

Merci

On Error Resume Next

Re,

L'utilisation de "On Error Resume Next" est à proscrire sauf dans des cas très spécifiques

Maintenant vous faites comme vous voulez

Rechercher des sujets similaires à "vba macro qui bloque erreur 1004"