Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 aux participants dans ce forum,
j'ai créé une petite macro mais il semble y avoir une erreur quelque part; il m'affiche erreur 91. Voulez-vous m'aider s'il vous plait. Je joins un classeur teste. Merci.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sld As Currency
If Not Intersect(Target, Range("B10:B21")) Is Nothing Then 'si le changement intervient dans la plage B10:B21
If Target = 300 Then 'si la valeur saisie est 300
Target.Offset(0, 6) = ActiveSheet.Range("C5").Value 'on met la valeur de C5 à droite de la cellule modifiée - 6 colonnes à droite
End If
End If
End Sub
Bonjour,
Le ".value" ne donne rien du tout et la solution de la formule est à écarter , la cellule réceptrice est un champ de saisie. La macro que vous m'avez refilée fonctionne bien sauf qu'une autre macro dans un module est en interaction avec cette feuille, quand je l'actionne elle fait réagir cette dernière.
Dans le code, précédemment donné par vgendron, une chose importante a été oubliée
il faut arrêter les évènements, sinon ça risque de tourner en boucle et plantage
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sld As Currency
If Not Intersect(Target, Range("B10:B21")) Is Nothing Then 'si le changement intervient dans la plage B10:B21
If Target = 300 Then 'si la valeur saisie est 300
Application.EnableEvents = False
Target.Offset(0, 6) = ActiveSheet.Range("C5").Value 'on met la valeur de C5 à droite de la cellule modifiée - 6 colonnes à droite
Application.EnableEvents = True
End If
End If
End Sub
Dans le code, précédemment donné par vgendron, une chose importante a été oubliée
il faut arrêter les évènements, sinon ça risque de tourner en boucle et plantage
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sld As Currency
If Not Intersect(Target, Range("B10:B21")) Is Nothing Then 'si le changement intervient dans la plage B10:B21
If Target = 300 Then 'si la valeur saisie est 300
Application.EnableEvents = False
Target.Offset(0, 6) = ActiveSheet.Range("C5").Value 'on met la valeur de C5 à droite de la cellule modifiée - 6 colonnes à droite
Application.EnableEvents = True
End If
End If
End Sub
Bonjour
C'est réglé. J'ai neutralisé dans le module incriminé la commande : Range("C13:C26").ClearContents
s'il y a une possibilité de mettre à zéro cette plage sans recourir à une boucle ce sera parfait . Merci de votre aide.
- 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