Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Effacer les cellules fusionnees sous condition d'autre cellule

  • Initiateur de la discussion Initiateur de la discussion Ilino
  • Date de début Date de début

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 !

Ilino

XLDnaute Barbatruc
Bonsoir Forum
je cherche un code VBA
quand j'efface le contenu de la cellule fusionnée G12(G-K12) les autres cellule fusionnées L12 ( L-O12) et P12 ( P-Q) R12 (R-T12) s'effacent automatiquement; je vous informe que la feuille est protegé .. mais les cellules de mon souci ne sont pas verouillées
GRAZIE
 
Re : Effacer les cellules fusionnees sous condition d'autre cellule

bonjour à tous,

mettre ceci dans le code de la feuille souhaitée

Code:
'quand j'efface le contenu de la cellule fusionnée G12
'celle-ci effacent automatiquement
'G12 (G-K12)
'L12 (L-O12)
'P12 (P-Q12)
'R12 (R-T12)

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "G12:K12" Then
   If [G12] = "" Then [L12] = "": [P12] = "": [R12] = ""
End If
End Sub
 
Re : Effacer les cellules fusionnees sous condition d'autre cellule

Bonjour ROLAND
GRAZIE ça fonctionne tres bien , et dans le cas ou j"ai un tableau
qui commence de G12 jusqu'au G33
je fai la mme chose pour les cellule de la colonne G
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "G12:K12" Then
   If [G12] = "" Then [L12] = "": [P12] = "": [R12] = ""
End If
If Target.Address(0, 0) = "G12:K12" Then
   If [G12] = "" Then [L12] = "": [P12] = "": [R12] = ""
End If
If Target.Address(0, 0) = "G12:K12" Then
   If [G13] = "" Then [L13] = "": [P13] = "": [R13] = ""
End If
If Target.Address(0, 0) = "G12:K12" Then
   If [G14] = "" Then [L14] = "": [P14] = "": [R14] = ""
End If 
...... etc
If Target.Address(0, 0) = "G12:K12" Then
   If [G33] = "" Then [L33] = "": [P33] = "": [R33] = ""
End If
End Sub
EST CE QUE CE N'EST PAS TRES LOURD POUR L'APPLICATION
A+
 
Re : Effacer les cellules fusionnees sous condition d'autre cellule

Bonjour à tous,

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Target, [G12:G33])
If r Is Nothing Then Exit Sub
For Each r In r
  If r = "" Then Union(r(1, 6), r(1, 10), r(1, 12)).ClearContents
Next
End Sub
A+
 
Re : Effacer les cellules fusionnees sous condition d'autre cellule

Boujour JOB
GRAZIE for la réponse, mais ça n a pas fonctionné (selon le Poste#1) , j'ai un message d'erreur 1004
Impossible de modifier une cellule fusionnée ????
 
Re : Effacer les cellules fusionnees sous condition d'autre cellule

Re,

Pardon j'oubliais que les cellules étaient fusionnées, alors plus simplement :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Target, [G12:G33])
If r Is Nothing Then Exit Sub
For Each r In r
  If r = "" Then r(1, 6).Resize(, 9).ClearContents 'L à T
Next
End Sub
A+
 
Re : Effacer les cellules fusionnees sous condition d'autre cellule

Re,

Pardon j'oubliais que les cellules étaient fusionnées, alors plus simplement :

Code:
  If r = "" Then r(1, 6).Resize(, 9).ClearContents 'L à T
Next
End Sub
A+
Re JOB
MERCI POUR LA REPONSE RAPIDE
MAIS EST CE QUE TU PEUX M'EXPLIQUER CE CODE ( 6 et 9 )???
A+
 
Re : Effacer les cellules fusionnees sous condition d'autre cellule

Re Ilino,

Note en passant que c'est .ClearContents qui n'est pas accepté par les cellules fusionnées.

Avec = "" il n'y a pas de problème :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Target, [G12:G33])
If r Is Nothing Then Exit Sub
For Each r In r
  If r = "" Then Union(r(1, 6), r(1, 10), r(1, 12)) = ""
Next
End Sub
Mais de toute façon la solution de mon post #8 est plus simple.

A+
 
Re : Effacer les cellules fusionnees sous condition d'autre cellule

MAIS EST CE QUE TU PEUX M'EXPLIQUER CE CODE ( 6 et 9 )???

Tu m'étonneras toujour Ilino, après 1269 posts !

r(1, 6) => 6ème cellule à droite en commençant à r - qu'on peut écrire r(1, 1)

x.Resize(, 9) définit une plage de largeur 9 et de même hauteur que x.

A+
 
Re : Effacer les cellules fusionnees sous condition d'autre cellule

Re Job
merci et je confirme que la solution post#8 est tres simple; mais je vous ai poser cette question pour completer ton code ( on effacant les cellues adjacente de G12 comme ( b12 fusionnée (B-F12)
??
a+
 
Re : Effacer les cellules fusionnees sous condition d'autre cellule

Re,

Si en plus tu veux effacer la colonne B, tu peux utiliser :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
Set r = Intersect(Target, [G12:G33])
If r Is Nothing Then Exit Sub
For Each r In r
  If r = "" Then Union(r(1, -4), r(1, 6).Resize(, 9)) = ""
Next
End Sub
A+
 
Re : Effacer les cellules fusionnees sous condition d'autre cellule

Re Job
Code:
 If r = "" Then r(1, 6).Resize(, 9).ClearContents and   r(1, -2).Resize(, 5).ClearContents 'L à T et de B à F
IS IT RIGHT ,,,,,??? 😱
 
Re : Effacer les cellules fusionnees sous condition d'autre cellule

Re sorry Job
un grand merci MAITRE
Bon week end
A+
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…