Effacer cellule quand une autre change

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 !

apnart

XLDnaute Occasionnel
Bonjour,

Je viens de "transpirer durement" sur des listes déroulantes en cascade, mais j'y ai enfin réussi grâce aux infos trouvées ici... YES ! (bien que je n'ai pas tout compris dans les syntaxes...)

Maintenant, j'ai encore un soucis, Je voudrais que lorsque la valeur de ce qu'il y a dans la 1ère liste change, la 2ème s'efface.

En gros :
1ère liste : Choix d'un Pays
2ème liste : Choix d'une Région

Actuellement, quand je change de pays, la région précédemment sélectionnée reste visible... imaginez la Bretagne en Allemagne... pas cool...

Vous auriez des idées ?

Merci à vous.
 
Re : Effacer cellule quand une autre change

Chose très étrange, effectivement mon essai.xls fonctionne...

En fait, s'il est le seul ouvert, il fonctionne, dès que j'ouvre mon autre xls (le gros), du coup ça ne marche plus pour essai.xls...

Il y a donc quelque chose dans mon gros fichier qui bloque tout ça :-((
 
Dernière édition:
Re : Effacer cellule quand une autre change

Re,

Après avoir reproduit le cas (cellules fusionnée puis séparées), à partir de tes essais, pour que cela fonctionne de nouveau correctement. Il a fallu que je supprime les cellules pour les recréer.

De plus comme une erreur s'était levée entre les lignes
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents=False
....
... code qui a produit une erreur
...
Application.EnableEvents=True
End Sub

Dans la fenêtre d'exécution de l'éditeur VBE il a fallut que je remette
Application.EnableEvents=True.

Pour eviter ce genre d'erreur, écrit cette procédure de la façon suivante:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
[COLOR=red]on Error Resume Next[/COLOR]
Application.EnableEvents = False
If Target.Address = "$B$3" Then Range("C3").ClearContents
If Target.Address = "$E$3" Then Range("F3").ClearContents
Application.EnableEvents = True
If Target.Address = "$B$3" Then MsgBox "La valeur de B3 a changé, C3 devrait s'effacer"
If Target.Address = "$E$3" Then MsgBox "La valeur de E3 a changé, F3 devrait s'effacer"
End Sub

Afin que s'il y a une erreur d'exécution, la gestion des évènements soit rétablit.

Sinon, je vois pas...

A bientôt
 
Re : Effacer cellule quand une autre change

Chose très étrange, effectivement mon essai.xls fonctionne...

En fait, s'il est le seul ouvert, il fonctionne, dès que j'ouvre mon autre xls (le gros), du coup ça ne marche plus pour essai.xls...

Il y a donc quelque chose dans mon gros fichier qui bloque tout ça :-((

Il y a forçément quelque chose dans mon fichier de départ qui bloque, car sans rien changer à essai.xls, il ne marche pas quand l'autre est ouvert, sinon, il marche très bien 🙁
 
Re : Effacer cellule quand une autre change

J'ai testé et eu la même erreur, mais Hasco a raison :
****
De plus comme une erreur s'était levée entre les lignes
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents=False
....
... code qui a produit une erreur
****

J'ai mis un ' devant les lignes Ap.Enable..., et ça fonctionne bien maintenant.

Essaie et dis nous.
@+
 
Re : Effacer cellule quand une autre change

🙁 Arghhh....

J'ai ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
'Application.EnableEvents = False
If Target.Address = "$B$3" Then Range("C3").ClearContents
If Target.Address = "$E$3" Then Range("F3").ClearContents
'Application.EnableEvents = True
If Target.Address = "$B$3" Then MsgBox "La valeur de B3 a changé, C3 devrait s'effacer"
If Target.Address = "$E$3" Then MsgBox "La valeur de E3 a changé, F3 devrait s'effacer"
End Sub

Donc ajouté la ligne "on error" et les ' devant app..

et ça ne fonctionne toujours pas quand mon autre fichier est ouvert...

J'ai d'ailleurs essayé cette même modif dans mon autre fichier et c'est pareil 😡
 
Re : Effacer cellule quand une autre change

Re :
Tu as sauvegardé les fichiers,
tu as fermé Excel, ????
tu ouvres Essai => ça marche
tu ouvres Bigfichier => ça marche plus

si tu as fais TOUT ça, c'est qu'il y a dans une des macros exécutée à l'ouverture du gros fichier un code du type "Application.EnableEvents = False"
qui s'exécute.

Est il possible/envisageable d'avoir juste 2 lignes de ton gros fichier avec les macros dedans ( quitte à mettre au préalable des données bidons)?

@+
 
Re : Effacer cellule quand une autre change

J'ai commencé à mettre des ' devant toutes les macros du workbook et de chaque feuille... toujours pareil.

Il me reste 3 modules auquels je n'ai pas touché... le soucis doit venir de là.

Module CopiesCellules
Sub CopieQueueCase()
Dim CelluleACopier As String
Dim MyString As String
CelluleACopier = "S17" ' référence de la cellule à copier
MyString = Range(CelluleACopier).Value
With New DataObject ' copie le contenu de "CelluleACopier"
.SetText MyString ' dans le presse papier
.PutInClipboard ' "
End With ' "
ActiveSheet.Unprotect ' déprotège la feuille pour pouvoir changer les couleurs
For A = 1 To 2 ' boucle pour avoir un effet clignotant
With Range(CelluleACopier).Interior ' colorie la cellule en rouge
.ColorIndex = 3 ' "
.Pattern = xlSolid ' "
End With ' "
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Range(CelluleACopier).Interior.ColorIndex = xlNone ' efface la couleur de la cellule
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Next A
ActiveSheet.protect DrawingObjects:=True, Contents:=True, Scenarios:=True ' reprotège la feuille
End Sub

Sub CopieQueueSD()
Dim CelluleACopier As String
Dim MyString As String
CelluleACopier = "I17" ' référence de la cellule à copier
MyString = Range(CelluleACopier).Value
With New DataObject ' copie le contenu de "CelluleACopier"
.SetText MyString ' dans le presse papier
.PutInClipboard ' "
End With ' "
ActiveSheet.Unprotect ' déprotège la feuille pour pouvoir changer les couleurs
For A = 1 To 2 ' boucle pour avoir un effet clignotant
With Range(CelluleACopier).Interior ' colorie la cellule en rouge
.ColorIndex = 3 ' "
.Pattern = xlSolid ' "
End With ' "
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Range(CelluleACopier).Interior.ColorIndex = xlNone ' efface la couleur de la cellule
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Next A
ActiveSheet.protect DrawingObjects:=True, Contents:=True, Scenarios:=True ' reprotège la feuille
End Sub

Sub CopieQueueSubcaseAdmin()
Dim CelluleACopier As String
Dim MyString As String
CelluleACopier = "AC17" ' référence de la cellule à copier
MyString = Range(CelluleACopier).Value
With New DataObject ' copie le contenu de "CelluleACopier"
.SetText MyString ' dans le presse papier
.PutInClipboard ' "
End With ' "
ActiveSheet.Unprotect ' déprotège la feuille pour pouvoir changer les couleurs
For A = 1 To 2 ' boucle pour avoir un effet clignotant
With Range(CelluleACopier).Interior ' colorie la cellule en rouge
.ColorIndex = 3 ' "
.Pattern = xlSolid ' "
End With ' "
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Range(CelluleACopier).Interior.ColorIndex = xlNone ' efface la couleur de la cellule
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Next A
ActiveSheet.protect DrawingObjects:=True, Contents:=True, Scenarios:=True ' reprotège la feuille
End Sub

Sub CopieQueueCaseManuel()
Dim CelluleACopier As String
Dim MyString As String
CelluleACopier = "S21" ' référence de la cellule à copier
MyString = Range(CelluleACopier).Value
With New DataObject ' copie le contenu de "CelluleACopier"
.SetText MyString ' dans le presse papier
.PutInClipboard ' "
End With ' "
ActiveSheet.Unprotect ' déprotège la feuille pour pouvoir changer les couleurs
For A = 1 To 2 ' boucle pour avoir un effet clignotant
With Range(CelluleACopier).Interior ' colorie la cellule en rouge
.ColorIndex = 3 ' "
.Pattern = xlSolid ' "
End With ' "
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Range(CelluleACopier).Interior.ColorIndex = 15 ' colorie la cellule en gris
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Next A
ActiveSheet.protect DrawingObjects:=True, Contents:=True, Scenarios:=True ' reprotège la feuille
End Sub

Sub CopieQueueSDManuel()
Dim CelluleACopier As String
Dim MyString As String
CelluleACopier = "I21" ' référence de la cellule à copier
MyString = Range(CelluleACopier).Value
With New DataObject ' copie le contenu de "CelluleACopier"
.SetText MyString ' dans le presse papier
.PutInClipboard ' "
End With ' "
ActiveSheet.Unprotect ' déprotège la feuille pour pouvoir changer les couleurs
For A = 1 To 2 ' boucle pour avoir un effet clignotant
With Range(CelluleACopier).Interior ' colorie la cellule en rouge
.ColorIndex = 3 ' "
.Pattern = xlSolid ' "
End With ' "
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Range(CelluleACopier).Interior.ColorIndex = 15 ' colorie la cellule en gris
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Next A
ActiveSheet.protect DrawingObjects:=True, Contents:=True, Scenarios:=True ' reprotège la feuille
End Sub

Sub CopieQueueY7()
Dim CelluleACopier As String
Dim MyString As String
CelluleACopier = "Y7" ' référence de la cellule à copier
MyString = Range(CelluleACopier).Value
With New DataObject ' copie le contenu de "CelluleACopier"
.SetText MyString ' dans le presse papier
.PutInClipboard ' "
End With ' "
ActiveSheet.Unprotect ' déprotège la feuille pour pouvoir changer les couleurs
For A = 1 To 2 ' boucle pour avoir un effet clignotant
With Range(CelluleACopier).Interior ' colorie la cellule en rouge
.ColorIndex = 3 ' "
.Pattern = xlSolid ' "
End With ' "
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Range(CelluleACopier).Interior.ColorIndex = xlNone ' efface la couleur de la cellule
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Next A
ActiveSheet.protect DrawingObjects:=True, Contents:=True, Scenarios:=True ' reprotège la feuille
End Sub

Sub CopieQueueY9()
Dim CelluleACopier As String
Dim MyString As String
CelluleACopier = "Y9" ' référence de la cellule à copier
MyString = Range(CelluleACopier).Value
With New DataObject ' copie le contenu de "CelluleACopier"
.SetText MyString ' dans le presse papier
.PutInClipboard ' "
End With ' "
ActiveSheet.Unprotect ' déprotège la feuille pour pouvoir changer les couleurs
For A = 1 To 2 ' boucle pour avoir un effet clignotant
With Range(CelluleACopier).Interior ' colorie la cellule en rouge
.ColorIndex = 3 ' "
.Pattern = xlSolid ' "
End With ' "
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Range(CelluleACopier).Interior.ColorIndex = xlNone ' efface la couleur de la cellule
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Next A
ActiveSheet.protect DrawingObjects:=True, Contents:=True, Scenarios:=True ' reprotège la feuille
End Sub

Sub CopieQueueY11()
Dim CelluleACopier As String
Dim MyString As String
CelluleACopier = "Y11" ' référence de la cellule à copier
MyString = Range(CelluleACopier).Value
With New DataObject ' copie le contenu de "CelluleACopier"
.SetText MyString ' dans le presse papier
.PutInClipboard ' "
End With ' "
ActiveSheet.Unprotect ' déprotège la feuille pour pouvoir changer les couleurs
For A = 1 To 2 ' boucle pour avoir un effet clignotant
With Range(CelluleACopier).Interior ' colorie la cellule en rouge
.ColorIndex = 3 ' "
.Pattern = xlSolid ' "
End With ' "
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Range(CelluleACopier).Interior.ColorIndex = xlNone ' efface la couleur de la cellule
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Next A
ActiveSheet.protect DrawingObjects:=True, Contents:=True, Scenarios:=True ' reprotège la feuille
End Sub

Sub CopieQueueY13()
Dim CelluleACopier As String
Dim MyString As String
CelluleACopier = "Y13" ' référence de la cellule à copier
MyString = Range(CelluleACopier).Value
With New DataObject ' copie le contenu de "CelluleACopier"
.SetText MyString ' dans le presse papier
.PutInClipboard ' "
End With ' "
ActiveSheet.Unprotect ' déprotège la feuille pour pouvoir changer les couleurs
For A = 1 To 2 ' boucle pour avoir un effet clignotant
With Range(CelluleACopier).Interior ' colorie la cellule en rouge
.ColorIndex = 3 ' "
.Pattern = xlSolid ' "
End With ' "
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Range(CelluleACopier).Interior.ColorIndex = xlNone ' efface la couleur de la cellule
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Next A
ActiveSheet.protect DrawingObjects:=True, Contents:=True, Scenarios:=True ' reprotège la feuille
End Sub

Sub CopieQueueY15()
Dim CelluleACopier As String
Dim MyString As String
CelluleACopier = "Y15" ' référence de la cellule à copier
MyString = Range(CelluleACopier).Value
With New DataObject ' copie le contenu de "CelluleACopier"
.SetText MyString ' dans le presse papier
.PutInClipboard ' "
End With ' "
ActiveSheet.Unprotect ' déprotège la feuille pour pouvoir changer les couleurs
For A = 1 To 2 ' boucle pour avoir un effet clignotant
With Range(CelluleACopier).Interior ' colorie la cellule en rouge
.ColorIndex = 3 ' "
.Pattern = xlSolid ' "
End With ' "
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Range(CelluleACopier).Interior.ColorIndex = xlNone ' efface la couleur de la cellule
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Next A
ActiveSheet.protect DrawingObjects:=True, Contents:=True, Scenarios:=True ' reprotège la feuille
End Sub

Sub CopieQueueY17()
Dim CelluleACopier As String
Dim MyString As String
CelluleACopier = "Y17" ' référence de la cellule à copier
MyString = Range(CelluleACopier).Value
With New DataObject ' copie le contenu de "CelluleACopier"
.SetText MyString ' dans le presse papier
.PutInClipboard ' "
End With ' "
ActiveSheet.Unprotect ' déprotège la feuille pour pouvoir changer les couleurs
For A = 1 To 2 ' boucle pour avoir un effet clignotant
With Range(CelluleACopier).Interior ' colorie la cellule en rouge
.ColorIndex = 3 ' "
.Pattern = xlSolid ' "
End With ' "
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Range(CelluleACopier).Interior.ColorIndex = xlNone ' efface la couleur de la cellule
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Next A
ActiveSheet.protect DrawingObjects:=True, Contents:=True, Scenarios:=True ' reprotège la feuille
End Sub

Sub CopieQueueY19()
Dim CelluleACopier As String
Dim MyString As String
CelluleACopier = "Y19" ' référence de la cellule à copier
MyString = Range(CelluleACopier).Value
With New DataObject ' copie le contenu de "CelluleACopier"
.SetText MyString ' dans le presse papier
.PutInClipboard ' "
End With ' "
ActiveSheet.Unprotect ' déprotège la feuille pour pouvoir changer les couleurs
For A = 1 To 2 ' boucle pour avoir un effet clignotant
With Range(CelluleACopier).Interior ' colorie la cellule en rouge
.ColorIndex = 3 ' "
.Pattern = xlSolid ' "
End With ' "
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Range(CelluleACopier).Interior.ColorIndex = xlNone ' efface la couleur de la cellule
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Next A
ActiveSheet.protect DrawingObjects:=True, Contents:=True, Scenarios:=True ' reprotège la feuille
End Sub

Sub CopieQueueY21()
Dim CelluleACopier As String
Dim MyString As String
CelluleACopier = "Y21" ' référence de la cellule à copier
MyString = Range(CelluleACopier).Value
With New DataObject ' copie le contenu de "CelluleACopier"
.SetText MyString ' dans le presse papier
.PutInClipboard ' "
End With ' "
ActiveSheet.Unprotect ' déprotège la feuille pour pouvoir changer les couleurs
For A = 1 To 2 ' boucle pour avoir un effet clignotant
With Range(CelluleACopier).Interior ' colorie la cellule en rouge
.ColorIndex = 3 ' "
.Pattern = xlSolid ' "
End With ' "
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Range(CelluleACopier).Interior.ColorIndex = xlNone ' efface la couleur de la cellule
For i = 1 To 2000000 ' boucle pour ralentir le clignotement
Next i ' "
Next A
ActiveSheet.protect DrawingObjects:=True, Contents:=True, Scenarios:=True ' reprotège la feuille
End Sub

Module Developpement
Sub DevOnOff() ' Mode développement ON/OFF
Dim CmdB As CommandBar ' Variable pour afficher/masquer outils
Dim TailleFenetre As String ' Taille de la fenetre du CRA
TailleFenetre = "A1:AN27" ' "
Application.ScreenUpdating = False ' Affichage des action de la macro OFF
If ActiveWindow.DisplayWorkbookTabs = False Then ' Regarde si onglet masqué
' Mode "développement ON" Boucle si l'onglet est masqué
For Boucle = 1 To Sheets.Count ' Boucle pour lire tous les onglets
Sheets(Boucle).ScrollArea = "" ' Libère le scroll de la fenêtre
Sheets(Array(Boucle)).Select ' Sélectionne l'onglet en cours
With ActiveWindow ' Pour la fenêtre active =>
.DisplayHeadings = True ' AFFICHE : Entêtes lignes / colonnes
.DisplayHorizontalScrollBar = True ' AFFICHE : Ascenseur horizontal
.DisplayVerticalScrollBar = True ' AFFICHE : Ascenseur vertical
.DisplayWorkbookTabs = True ' AFFICHE : Onglets
End With
Next Boucle ' Fin boucle lecture onglets
Application.DisplayFormulaBar = True ' Affiche la barre formule
For Each CmdB In Application.CommandBars ' Affiche Toutes les barres d'outil
CmdB.Enabled = True ' "
Next CmdB ' "
Else
' Mode "développement OFF" Boucle si l'onglet n'est pas masqué
For Boucle = 1 To Sheets.Count ' Boucle pour lire tous les onglets
Sheets(Boucle).ScrollArea = TailleFenetre ' Fixe le scroll à la zone "TailleFenetre"
Sheets(Array(Boucle)).Select ' Sélectionne l'onglet en cours
With ActiveWindow ' Pour la fenêtre active =>
.DisplayHeadings = False ' SUPPRIME : Entêtes lignes / colonnes
.DisplayHorizontalScrollBar = False ' SUPPRIME : Ascenseur horizontal
.DisplayVerticalScrollBar = False ' SUPPRIME : Ascenseur vertical
.DisplayWorkbookTabs = False ' SUPPRIME : Onglets
End With
Next Boucle ' Fin boucle lecture onglets
Application.DisplayFormulaBar = False ' Masque la barre formule
For Each CmdB In Application.CommandBars ' Masque toutes les barres d'outil
CmdB.Enabled = False ' "
Next CmdB ' "
End If
Sheets("Aide").ScrollArea = "" ' Libère le scroll pour onglet "Aide"
Sheets(1).Select ' Activation de la 1ère feuille
Application.DisplayAlerts = True ' Ré-activation des MSG d'erreur
End Sub

Module Fonctions
Function InterSec(DataRow As String, DataCol As String, DataRange As Range)
'
' Fonction à 3 variables - Ligne - Colonne - Tableau
' Elle retourne le contenu de l'intersection des valeurs de ligne et de colonne
' du tableau spécifié
'
Dim LectureRow As Variant ' Variable pour lecture des lignes
Dim lectureCol As Variant ' Variable pour lecture des colonnes
Dim CoordRow As Variant ' Variable pour coordonnée Ligne
Dim CoordCol As Variant ' Variable pour coordonnée Colonne
For Each LectureRow In DataRange ' Lecture des Produits (HW & SW)
If LectureRow.Value = DataRow Then
CoordRow = LectureRow.Row
Exit For
End If
Next
For Each lectureCol In DataRange ' Lecture des Produits (HW & SW)
If lectureCol.Value = DataCol Then
CoordCol = lectureCol.Column
Exit For
End If
Next
InterSec = DataRange.Cells(CoordRow, CoordCol).Value ' Contenu intersection
End Function

Vous voyez une incompatibilité potentielle là dedans ? 😕
 
Re : Effacer cellule quand une autre change

Je viens de supprimer les 3 modules et de les réincorporer 1 à 1, celui qui pose problème est celui dans lequel j'ai mis une fonction :

Function InterSec(DataRow As String, DataCol As String, DataRange As Range)
'
' Fonction à 3 variables - Ligne - Colonne - Tableau
' Elle retourne le contenu de l'intersection des valeurs de ligne et de colonne
' du tableau spécifié
'
Dim LectureRow As Variant ' Variable pour lecture des lignes
Dim lectureCol As Variant ' Variable pour lecture des colonnes
Dim CoordRow As Variant ' Variable pour coordonnée Ligne
Dim CoordCol As Variant ' Variable pour coordonnée Colonne
For Each LectureRow In DataRange ' Lecture des Produits (HW & SW)
If LectureRow.Value = DataRow Then
CoordRow = LectureRow.Row
Exit For
End If
Next
For Each lectureCol In DataRange ' Lecture des Produits (HW & SW)
If lectureCol.Value = DataCol Then
CoordCol = lectureCol.Column
Exit For
End If
Next
InterSec = DataRange.Cells(CoordRow, CoordCol).Value ' Contenu intersection
End Function

Cette fonction me permet en fonction de 2 cellule sur ma feuille de saisie, de trouver l'intersection de ces 2 données dans une autre feuille...

Des idées sur des soucis de ce code ?
 
Re : Effacer cellule quand une autre change

J'ai trouvé !

J'avais nommé ma fonction "InterSec", je viens de lui donner un autre nom et ça marche... ce mot là doit être déjà utilisé par excel 2007 alors qu'il ne l'était pas sous 2003 😱

Si vous pouviez me confirmer cet avis, ça serai cool.

Merci encore LPandre et Hasco pour votre aide 😎
 
Re : Effacer cellule quand une autre change

Pour en revenir au sujet de départ, je souhaite tout de même pouvoir effacer des cellules fusionnées...

Donc voir si une cellule fusionnée change de valeur, et si oui, en effacer une autre...

J'ai cru comprendre d'après ce qu'a écrit Hasco que ça pouvait poser problème, mais n'y a-t'il tout de même pas un moyen ? 😱

Dans le fichier attaché, j'ai mon essai avec et sans cellule fusionnée... (voir les cases Unique et Multiple)

Un p'tit coup de main siouplais 😱
 

Pièces jointes

Re : Effacer cellule quand une autre change

Bonjour Apnart,

Voici ton fichier exemple sur lequel le clearcontents fonctionne sur cellules fusionnées. Tester sur officeXP(2002) et office 2007

Sans garantie pour l'adaptation à ton fichier d'origine. Tout programmeur de macro te dira que VBA n'aime pas du tout les cellules fusionnées. C'es toujours le foutoir lorsqu'il faut apporter une modification à une cellule fusionnée par macro ; même en passant par les méthodes unmerge et merge.

A bientôt et bon week-end
 
- 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

Discussions similaires

J
Réponses
6
Affichages
2 K
J
G
Réponses
2
Affichages
1 K
galoma
G
S
  • Question Question
Réponses
7
Affichages
2 K
SebastienF
S
J
Réponses
12
Affichages
2 K
Jacques
J
Retour