Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Bonjour,
Je suis en train de faire une petite macro pour un ami.
Sur un tableau dans la première feuille du classeur, il a un résultat en colonne O.
Il s'agit du stock restant qui se calcul avec la quantité totale (colonne G) moins les quantités vendues en colonne J et L.
Il voulait que si la quantité restante (en colonne O) est égale à zéro, la ligne soit recopiée à la fin d'un tableau sur la deuxième feuille, puis que la ligne recopiée soit supprimée dans la première feuille.
J'ai pensé faire la macro avec l'évènement Change, lorsqu'il rentre une quantité vendue en colonne J ou L.
La macro s'exécute bien, mais j'ai une erreur d'exécution 424 (Objet requis).
Les lignes en couleur rouge sont surlignées :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim x As Integer
x = Sheets(2).Range("A5000").End(xlUp).Offset(1, 0).Row
For i = 3 To 5000
[COLOR="Red"] If Target.Address = "$J$" & i And Range("O" & i).Value = 0 Or _
Target.Address = "$L$" & i And Range("O" & i).Value = 0 Then[/COLOR]
Range("A" & i & ":M" & i).Copy
Sheets(2).Activate
Sheets(2).Range("A" & x).Select
ActiveSheet.Paste
Sheets(1).Rows(i).Delete
End If
Next i
End Sub
Je pense que c'est la dernière ligne (Sheets(1).Rows(i).delete) qui pose problème, car lorsque je la supprime, plus d'erreur.
J'ai fait plein d'essais, mais je n'ai pas trouvé de solution.
Je joins le fichier en question.
Merci d'avance et bonne journée.
Le probleme vient de la boucle (qui ne sert a rien).
Une version simplifié:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x As Integer
If (Target.Column = 10 Or Target.Column = 12) And Range("O" & Target.Row).Value = 0 Then
x = Sheets(2).Range("A65536").End(xlUp).Offset(1, 0).Row
Range("A" & Target.Row & ":M" & Target.Row).Copy Sheets(2).Range("A" & x)
Sheets(1).Rows(Target.Row).Delete
End If
End Sub
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD