Aide sur code VBA : macro rattachée à une cellule fusionnée

Mariejeanne

XLDnaute Nouveau
Bonjour

J'ai besoin d'aide sur cette macro. Je voudrais qu'à chaque fois qu'on sélectionne une cellule (cette cellule contient un filtre), d'autres cellules soient effacées. je ne veux pas de bouton macro mais vraiment affecter la macro à la cellule.

J'ai commencé à écrire :

Sub Macro()

'Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "cellule donnée - cellule fusionnée" Then
Range("cellule x").Select
Selection.ClearContents
Range("cellule y").Select
Selection.ClearContents

End If

'
End Sub

ça ne marche pas..pouvez vous m'aider ? merci
 

Softmama

XLDnaute Accro
Re : Aide sur code VBA : macro rattachée à une cellule fusionnée

Bonjour l'adresse d'une cellule, c'est de la forme A1, ou B1 ou A2, ou Z10000, enfin c'est une série de lettres suivie d'un nombre. La lettre représente le n° de colonne et le nombre celui de la ligne. en tout cas, cela ne peut être cellule donnée - cellule fusionnée. Ta macro, si tu veux qu'elle réagisse à la modification d'une cellule dont tu connais l'adresse (par exemple la cellule D4), alors essaie ceci :

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$D$4" then Union(Range("cellule x"),Range("cellule y")).ClearContents
End If
End Sub

Par contre, si tu voulais plutôt que la macro se lance, lorsqu'on sélectionne une cellule qui contient cellule donnée - cellule fusionnée, alors essaie ceci :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Value = "cellule donnée - cellule fusionnée" then Union(Range("cellule x"),Range("cellule y")).ClearContents
End If
End Sub

A placer dans le module de ta feuille de calcul.
 

Gorfael

XLDnaute Barbatruc
Re : Aide sur code VBA : macro rattachée à une cellule fusionnée

Salut Mariejeanne et le forum
ça ne marche pas..
Normal, ça n'a pas de jambes :p

Petit rappel : il n'y a ni devin, ni télépathe sur ce site !
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address(0,0) = "A1:C2" Then
        Range("D1").mergearea.ClearContents
         Range("G1").mergearea.ClearContents
End If
End Sub
Si la cellule fusionnée (de A1 à C2) est modifiée, on efface le contenu des cellules fusionnées (D1:F2) et G1:I2 (c'est hideux comme code).

Tu ne peux pas utiliser ce code en mettant le titre en commentaire et en ajoutant un autre titre : Il faut aussi définir ce qu'est Target, et lui donner une valeur.

À mon de faire partie de ceux qui confondent confidentiel et secret, tu as tout intérêt à faire un fichier d'essais (pas un fichier de travail, on ne compte pas apprendre à s'en servir) :
une feuille avec 5 ou 6 lignes, 5 ou 6 colonnes, sans données confidentielles,pour qu'on comprenne le problème.
A+
Edit : bienvenue
 
Dernière édition:

Mariejeanne

XLDnaute Nouveau
Re : Aide sur code VBA : macro rattachée à une cellule fusionnée

Merci Softmama,

merci pour tes explications. En effet, j'ai volontairement mis "cellule fusionnée" mais oui je sais qu'il faut que je renseigne la réf de cellule.
J'ai essayé ton premier code, et j'ai le message : end if sans bloc if ??

En fait, je veux suelement qu'à chaque fois qu'on sélectionne la cellule (cellule activée), les 2 autres cellules s'effacent automatiquement.
 

Mariejeanne

XLDnaute Nouveau
Re : Aide sur code VBA : macro rattachée à une cellule fusionnée

Merci Gorfael,

le code que tu m'as donné fonctionnes mais
je voudrais qu'à chaque fois que je sélectionne la celulle réf en target,

les deux autrres cellules s'effacent en automatique..

Ce n'est pas le cas....
 

Gorfael

XLDnaute Barbatruc
Re : Aide sur code VBA : macro rattachée à une cellule fusionnée

Salut Mariejeanne et le forum
J'ai essayé ton premier code, et j'ai le message : end if sans bloc if ??
Petite erreur de syntaxe : je suppose que le code initial était sur deux lignes => syntaxe 2 de If, obligatoire, Et qu'il l'a modifié avec un Union() et donc ramené à la syntaxe 1 sur le forum (une seule instruction sur une ligne), et oublié d'enlever le End if.
A+
 

Mariejeanne

XLDnaute Nouveau
Re : Aide sur code VBA : macro rattachée à une cellule fusionnée

Help !!

Le code est ok par contre, je n'obtiens pas ce que je souhaite: à savoir la possibilité en juste sélectionnant la cellule d'avoir l'effacement d'autres cellules.
Là je suis obligée d'aller dans le menu macro et de l'activer...
 

Softmama

XLDnaute Accro
Re : Aide sur code VBA : macro rattachée à une cellule fusionnée

re,

Merci à Gorfael de cette précision : il a bien senti ma façon de procéder. J'ai donc omis d'effacer les End if, ils sont inutiles et font planter le code : faut les virer.
Pour ne pas avoir à lancer ta macro manuellement, va dans l'éditeur VBE (alt+F11), sélectionne le module de ta feuille de calcul à gauche. A droite, dans la 1ère liste déroulante, choisis Worksheet et dans la seconde : SelectionChange et place le code là dedans.