Bonjour,
Après recherche sur le moteur de recherche de ce site et sur google, je n'ai toujours pas de solutions.
J'ai une procédure événementielle sur le changement d'une cellule (worksheet_change).
La cellule sensé la déclencher est la cellule A1, qui contient une liste déroulante servant de critère.
Je l'ai déclaré de cette façon :
Cette cellule est dans la feuille active.
La suite doit recopier des données qui se trouvent sur une autre feuille dans la feuille active.
Jusqu'à présent, il n'y a aucun problème.
Sauf que je voudrais, qu'avant de recopier les données dans la feuille active, excel efface les données qui ont été précédemment recopier dans la feuille active.
Je lui demande donc d'effacer ces données de cette façon :
Et cette ligne de code fait tout planter. D'après ce que j'ai pu trouver sur le Net, cela exécute worksheet_change et fait tout planter. Je n'ai malheureusement pas trouvé de solution.
J'ai fait plein de test sans rien solutionner.
Voila le code qui fonctionne :
Si je rajoute :
ça fait planter tout. D'après ce que j'ai pu comprendre sur le Net, c'est incompatible avec Worksheet_Change, mais je n'ai pas trouvé de solution.
Si quelqu'un a une réponse, merci d'avance.
Après recherche sur le moteur de recherche de ce site et sur google, je n'ai toujours pas de solutions.
J'ai une procédure événementielle sur le changement d'une cellule (worksheet_change).
La cellule sensé la déclencher est la cellule A1, qui contient une liste déroulante servant de critère.
Je l'ai déclaré de cette façon :
Code:
If Target.address = "$A$1" Then
La suite doit recopier des données qui se trouvent sur une autre feuille dans la feuille active.
Jusqu'à présent, il n'y a aucun problème.
Sauf que je voudrais, qu'avant de recopier les données dans la feuille active, excel efface les données qui ont été précédemment recopier dans la feuille active.
Je lui demande donc d'effacer ces données de cette façon :
Code:
Range("A4:D500").ClearContents
J'ai fait plein de test sans rien solutionner.
Voila le code qui fonctionne :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim x As Integer
x = Sheets("Base").Range("A500").End(xlUp).Row
For i = 2 To x
With Sheets("Base")
If Target.Address = "$A$1" And .Range("G" & i) = Range("A1") Then
Range("A500").End(xlUp).Offset(1, 0) = .Range("A" & i)
Range("A500").End(xlUp).Offset(0, 1) = .Range("B" & i)
Range("A500").End(xlUp).Offset(0, 2) = .Range("C" & i)
Range("A500").End(xlUp).Offset(0, 3) = .Range("E" & i)
Sheets("Feuil1").Select
End If
End With
Next i
End Sub
Code:
Range("A4:D500").ClearContents
Si quelqu'un a une réponse, merci d'avance.