Bonjour, bonsoir
Voilà, je reviens à nouveau vers vous suite à un problème dans mon VBA
Comme les deux ou trois dernières fois je me suis fait huer pour ma clarté peu présente (honte sur moi, houuuu !), je vais tenter d'être le plus clair possible.
J'ai une feuille générée automatiquement. Cette feuille contient des notes. On peut y ajouter à la main des notes dans une cellule spécialement prévue à cet effet.
Comme la feuille est générée automatiquement selon 4 périodes, j'ai besoin d'enregistrer ces commentaires afin de pouvoir les ressortir si on doit générer à nouveau une période précédente.
Exemple :
Période 1: Période 2:
Abra Cadabra
Et si je régénère la période 1, qu'il me remette "Abra"
Pour cela, j'ai utilisé l'évènement Worksheet_Change(ByVal Target As Range) afin d'éviter de devoir appuyer sur un bouton.
J'ai donc fait ça :
Voilà, ici, on teste donc si c'est la cellule importante qui a été changée, si non : rien ne se passe, si oui, elle est enregistrée dans la cellule de la période correspondante.
Cependant, j'ai deux problèmes :
- Lorsque je supprime des données dans une cellule tierce, il exécute quand même le code ...
- Lorsque je supprime des données dans la cellule ciblée, j'ai "Erreur d’exécution 13 : Incompatibilité de types"
Mais sinon, en ajout de valeurs, le code fonctionne parfaitement comme je le voulais.
Merci à vous d'avance,
Adrien
Voilà, je reviens à nouveau vers vous suite à un problème dans mon VBA
Comme les deux ou trois dernières fois je me suis fait huer pour ma clarté peu présente (honte sur moi, houuuu !), je vais tenter d'être le plus clair possible.
J'ai une feuille générée automatiquement. Cette feuille contient des notes. On peut y ajouter à la main des notes dans une cellule spécialement prévue à cet effet.
Comme la feuille est générée automatiquement selon 4 périodes, j'ai besoin d'enregistrer ces commentaires afin de pouvoir les ressortir si on doit générer à nouveau une période précédente.
Exemple :
Période 1: Période 2:
Abra Cadabra
Et si je régénère la période 1, qu'il me remette "Abra"
Pour cela, j'ai utilisé l'évènement Worksheet_Change(ByVal Target As Range) afin d'éviter de devoir appuyer sur un bouton.
J'ai donc fait ça :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = ActiveSheet.Range("B42") Then
ActiveSheet.Range("B42").Copy
If Sheets("Accueil").OptionButton1.Value = True Then
Sheets("DATA").Select
ActiveSheet.Range("B45").Select
Selection.PasteSpecial Paste:=xlPasteValues
Else
If Sheets("Accueil").OptionButton2.Value = True Then
Sheets("DATA").Select
ActiveSheet.Range("C45").Select
Selection.PasteSpecial Paste:=xlPasteValues
Else
If Sheets("Accueil").OptionButton3.Value = True Then
Sheets("DATA").Select
ActiveSheet.Range("D45").Select
Selection.PasteSpecial Paste:=xlPasteValues
Else
If Sheets("Accueil").OptionButton4.Value = True Then
Sheets("DATA").Select
ActiveSheet.Range("E45").Select
Selection.PasteSpecial Paste:=xlPasteValues
Else
MsgBox ("Veuillez sélectionner une période à partir de l'accueil.")
End If
End If
End If
End If
Else
End If
End Sub
Voilà, ici, on teste donc si c'est la cellule importante qui a été changée, si non : rien ne se passe, si oui, elle est enregistrée dans la cellule de la période correspondante.
Cependant, j'ai deux problèmes :
- Lorsque je supprime des données dans une cellule tierce, il exécute quand même le code ...
- Lorsque je supprime des données dans la cellule ciblée, j'ai "Erreur d’exécution 13 : Incompatibilité de types"
Mais sinon, en ajout de valeurs, le code fonctionne parfaitement comme je le voulais.
Merci à vous d'avance,
Adrien
Dernière édition: