Fusionner cellules et afficher message en fonction des critères

Bonjour à tous,

Je viens avec plaisir sur ce forum car on m'a dit que l'on a toujours des super retours !

Je cherche à automatiser un reporting et j'aurais besoin de votre aide.

J'ai un tableau dans lequel je souhaite fusionner des cellules et affichier un message specifique (collones K:J), en fonction des valeurs que j'aurais préalablement cochées dans une cellule (colonne E) de la même feuille .

Peut-on le faire de manière automatisée? Sachant que dans les cellules que je shouhaite fusionner j'ai déjà appliqué une validation de données (Pour info, je suis sur excel 2016 en anglais).

Je joins un exemple. Je voudrais fusionner et avoir un message personalisé dans les cellules des colonnes K:S si j'ai un "Yes" dans la collone E.

Merci d'avance pour votre aide!

A très vite j'espère

Bonjour,

Votre demande est un peu confuse,

- Quelles cellules voulez-vous fusionner ? J:K ou K:S

-Je ne vois nulle part de validation de données

De plus , votre tableau est un tableau structuré, donc vous ne pouvez pas fusionner des cellules d'une même ligne, il faut reconvertir votre tableau en plage et dans ce cas, vous perdez tout le bénéfice du tableau structuré.

L'idéal serait que vous renvoyez votre tableau avec un exemple du résultat attendu, ce qui permettrait d'y voir plus clair sur l'objectif à atteindre.

Cdlt

Bonjour Arturo,

Merci bcp de votre retour.

En fait je cherche à fusionner les cellules K:S.

Ce que je voulais dire avec la validation de données est que dans certains cellules (K, L, M, O) il y a des listes

déroulantes.

Ci-joint l'exemple du résultat attendu (ligne 6). J'ai aussi reconverti le tableau en plage :)

Merci encore de votre aide, c'est très gentil!

Votre exemple n'est pas suffisamment commenté, on fusionne les cellules de "K à S" si en "E" il y a "Yes",

-Oui mais, que fait-on des données présentes dans ces cellules ?

Exemple ligne 13, où pratiquement toutes les cellules comprises entre K et S sont remplies !

********************************************************************

Je ne vois toujours pas de listes déroulantes.

********************************************************************

Sinon le code pour fusionner les cellules d'une ligne comportant "Yes" en colonne "E".

Sub Fusion_Cellules()
    Dim DerLig As Long, i As Long
    Application.ScreenUpdating = False
    DerLig = Range("A" & Rows.Count).End(xlUp).Row
    If DerLig > 5 Then
        For i = 6 To DerLig
            If Cells(i, "E") = "Yes" Then
                With Range(Cells(i, "K"), Cells(i, "S"))
                    .Merge
                    .Value = "Do not complete - Enter this opportunity directly into the system"
                    .Font.ColorIndex = 3
                    .Font.Bold = True
                    .HorizontalAlignment = xlCenter
                    .VerticalAlignment = xlCenter
                End With
            End If
        Next i
    End If
End Sub

Tout à fait. Dans l'exemple que je vous ai envoyé j'ai dû effacer les données et les listes déroulantes car je ne savais pas comment faire. Mon objectif est de faire disparaitre les données existantes (listes), fusionner les cellules et avoir un message à la place. Est-ce que cela est possible avec le code que vous avez partagé?

Merci encore!

Arturo,

Je viens d'utiliser le code et ça marche parfaitement. Par contre, savez-vous comment je peux faire si je veux que cela s'applique que quand il y a "Yes" dans la colonne E? C'est-à-dire, je voudrais que les cellules reviennent aux conditions précédentes si je change le "Yes" pour un "No" ou si j'efface la valeur dans la colonne E.

Bonjour,

Ce que vous demandez (retour aux anciennes valeurs), nécessite de sauvegarder les valeurs avant de fusionner. C'est ce que j'ai fait, à chaque fois que l'on rencontre "Yes" dans la colonne "E", la plage de cellules de K à S est recopiée en "V" à "AD", ainsi si vous revenez à "No" l'opération inverse sera effectuée et vous retrouverez l'état initial.

J'ai supprimé les mises en formes conditionnelles, elles sont remplacées par le code qui analyse le contenu de la colonne "M" et applique les couleurs correspondantes.

La macro analyse toute la feuille, elle est lancée en cliquant sur le bouton "Click here to check the status of column E"

le code

Option Compare Text

Sub Fusionner()
    Dim DerLig As Long, i As Long
    DerLig = Range("A" & Rows.Count).End(xlUp).Row
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    If DerLig > 5 Then
        For i = 6 To DerLig
            If Cells(i, "E") = "Yes" Then
                'on vérifie si la plage de cellule n'est pas déjà fusionnée
                If Range(Cells(i, "K"), Cells(i, "S")).MergeCells = False Then
                    'sauvegarde des données dans la plage de cellules de V à AD
                    Range(Cells(i, "K"), Cells(i, "S")).Copy Cells(i, "V")

                    'Fusion des cellules
                    With Range(Cells(i, "K"), Cells(i, "S"))
                        .Merge
                        .Value = "Do not complete - Enter this opportunity directly into the system"
                        .Font.ColorIndex = 3
                        .Font.Bold = True
                        .HorizontalAlignment = xlCenter
                        .VerticalAlignment = xlCenter
                    End With
                End If

            Else 'si E = "No" ou vide
                'récupération des données si la plage de cellules avait été fusionnée auparavant
                If Range(Cells(i, "K"), Cells(i, "S")).MergeCells Then
                    Range(Cells(i, "K"), Cells(i, "S")).UnMerge
                    Range(Cells(i, "V"), Cells(i, "AD")).Copy Cells(i, "K")
                    Range(Cells(i, "V"), Cells(i, "AD")).ClearContents
                 End If
            End If

            'Application d'une couleur de fond de cellule en fonction du contenu de la colonne "M"
            Select Case Cells(i, "M")
                Case Is = "Cancelled by ING", "Cancelled by client"
                    Range(Cells(i, "B"), Cells(i, "S")).Interior.Color = RGB(216, 216, 216) 'gris
                Case Is = "Closed lost"
                    Range(Cells(i, "B"), Cells(i, "S")).Interior.Color = RGB(255, 175, 175) 'rouge
                Case Is = "Closed won"
                    Range(Cells(i, "B"), Cells(i, "S")).Interior.Color = RGB(197, 224, 178) 'vert
                Case Is = "Implementation", "Documentation", "Mandating", "Pitching"
                    Range(Cells(i, "B"), Cells(i, "S")).Interior.Color = RGB(255, 243, 203) 'jaune
                Case Else
                    Range(Cells(i, "B"), Cells(i, "S")).Interior.ColorIndex = xlNone
            End Select
        Next i
    End If
End Sub

le fichier

Cdlt

Rechercher des sujets similaires à "fusionner afficher message fonction criteres"