Fusionner des cellules en fonction d'un résultat

vanesa

XLDnaute Nouveau
Bonjour à tous

Est-il possible de fusionner automatiquement deux cellules en fonction d'un résultat ?! (soit grâce à une macro ou soit grâce à une fonction conditionnelle)

Exemple:
Si A1 = "accepter" alors B1, C1, D1, E1 et B2, C2, D2 et E2 se fusionnent en supprimant les informations contenus dans chacune de ces cellules (en effet, B1, C1, D1, E1 et B2, C2, D2 et E2 contiennent déjà des valeurs)

Merci et bonne journée
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Fusionner des cellules en fonction d'un résultat

Bonjour,

regarde ceci, à placer dans le module de la feuille concernée :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
If Target.Value = "accepter" Then
    With Range("B1:E2")
        .Value = ""
        .Merge
    End With
End If
End Sub

bonne journée
@+
 

vanesa

XLDnaute Nouveau
Re : Fusionner des cellules en fonction d'un résultat

Merci beaucoup

Du coup je me suis aperçu d'un autre petit détail

Lorsque les cellules sont fusionnées (grâce à la macro) et que l'on saisit une donnée différente de "accepter" en A1, il faudrait que les cellules ne soient plus fusionnées et les valeurs initiales ré-apparaissent!

C'est possible ?

Merci
 

Pierrot93

XLDnaute Barbatruc
Re : Fusionner des cellules en fonction d'un résultat

Re,

regarde ceci :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
With Range("B1:E2")
    .Value = ""
    If Target.Value = "accepter" Then
        .Merge
    Else
        .UnMerge
    End If
End With
End Sub

mais pour récupérer les valeurs, peut être les soccker sur autre feuille ou dans une variable "public", à voir si doivent être dispo lors de la réouverture du classeur....
 

vanesa

XLDnaute Nouveau
Re : Fusionner des cellules en fonction d'un résultat

merci beaucoup!!!!


J'ai une dernière question (je vais peut-être recréer une discussion)
EXEMPLE: si A1 = "accepter" alors il y a une liste déroulante en B2 sinon il y a rien (en B2).

Voila je vais arrêter mes questions pour aujourd'hui

Merci
 

Pierrot93

XLDnaute Barbatruc
Re : Fusionner des cellules en fonction d'un résultat

Re,

peut être ceci :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
With Range("B2").Validation
    If Target.Value = "accepter" Then
        .Delete
        .Add Type:=xlValidateList, Formula1:="=$A$1:$A$3"
    Else
        .Delete
    End If
End With
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Fusionner des cellules en fonction d'un résultat

Re,

essaye comme ceci :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$G$5" Then
    If Cells(5, 7) = "1" Then
        Rows("22:27").Hidden = False
        Rows("10:11").Hidden = False
    Else
        Rows("22:27").Hidden = True
        Rows("10:11").Hidden = True
    End If
End If
If Target.Address <> "$A$1" Then Exit Sub
With Range("B2").Validation
    If Target.Value = "accepter" Then
        .Delete
        .Add Type:=xlValidateList, Formula1:="=$A$1:$A$3"
    Else
        .Delete
    End If
End With
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Fusionner des cellules en fonction d'un résultat

Bonjour Vanessa

modifie le code comme suit :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
    With Range("B1:E2")
        .Value = ""
        If Target.Value = "accepter" Then
            .Merge
        Else
            .UnMerge
        End If
    End With
End If

If Target.Address <> "$A$3" Then Exit Sub
With Range("B3:E4")
    .Value = ""
    If Target.Value = "accepter" Then
        .Merge
    Else
        .UnMerge
    End If
End With
End Sub

bonne journée
@+
 

vanesa

XLDnaute Nouveau
Re : Fusionner des cellules en fonction d'un résultat

Bonjour!!!!

alors la macro que tu m'as proposé fonctionne très bien sur mon fichier exemple mais pas sur mon fichier complet :(
c'est écrit "erreur de compilation: End if sans bloc if" ?


merci beaucoup
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Fusionner des cellules en fonction d'un résultat

Re,

pas top ton code, de plus ton classeur s'ouvre uniquement en lecture seule.. alors... modifie ces blocs ainsi, pas de "end if" si l'instruction qui en découle suit immédiatement le "then" (cad sans retour à la ligne) :
Code:
If Target.Address <> "$E$26" Then Exit Sub
With Range("F27:J27")
    .Value = ""
    If Target.Value = "Autre et observation :" Then
        .Merge
    Else
        .UnMerge
    End If
End With
 

vanesa

XLDnaute Nouveau
Re : Fusionner des cellules en fonction d'un résultat

j'ai enlevé tout les "end if" lorsque le code qui suit contenait un "then"
je pense que mon code est trop long et répétitif, c'est probablement pour cette raison que cela ne fonctionne pas.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 090
Membres
103 464
dernier inscrit
Inconnu2