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:
Private Sub Worksheet_Change(ByVal Target As Range)
With Application
.EnableEvents = False
x = Target.Value
.Undo
Target.Value = x
.EnableEvents = True
End With
End Subma 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").SelectAvez 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 SubEn 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 finCordialement
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 NextRe,
L'utilisation de "On Error Resume Next" est à proscrire sauf dans des cas très spécifiques
Maintenant vous faites comme vous voulez