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

XL 2013 Fonction TRANSPOSE avec prise en compte des mises en forme conditionnelles

Aile2poulet

XLDnaute Nouveau
Bonjour à tous,

Je suis qualiticien et je me permets de vous exposer mon problème (j'y ai passé l'après-midi...)
J'ai un fichier Excel avec 2 onglets:
- le premier est complété manuellement (case pointillées rouge) pour le nombre de décimales, les valeurs (de 1 à 10) et le CV. Le reste est calculé automatiquement.
- le second est rempli également automatiquement afin d'imprimer un rapport.

Mon problème est le suivant:
Lorsque la fonction TRANSPOSE se mets en place, le nombre de décimales ne correspond pas au premier onglet.
Peut-on transposer des mises en forme conditionnelles?

Pour être plus explicite, je vous ai mis en pièce jointe le fichier.
En espérant que quelqu'un ait une solution.

Un grand merci

Cordialement.
Johann
 

Pièces jointes

  • Fichier TEST.xlsx
    31.9 KB · Affichages: 4
Dernière édition:

eriiic

XLDnaute Barbatruc
Je limite à la 'zone en cours' autour de PARAMETRES (délimitée par les 1ères cellules vides, A4:I55 ici) :
VB:
Private Sub Worksheet_Activate()
    Dim c As Range, pl As Range, nbDec, i As Long

    With Worksheets("A COMPLETER")
        Set c = .Columns(2).Find("Nb de décimales", , xlValues, xlWhole)
        If c Is Nothing Then
            MsgBox "Ligne 'Nb de décimales' non trouvée": Exit Sub
        Else
            ' tableau nb décimales
            nbDec = Intersect(.Range(Split(Split([A6].Formula, "!")(1), ")")(0)).EntireColumn, c.EntireRow).Value
        End If
    End With
    Set c = Columns(1).Find("PARAMETRES", , xlValues, xlWhole)
    If c Is Nothing Then
        MsgBox "PARAMETRES non trouvé"
    Else
        Set pl = c.CurrentRegion
        For Each c In c.Offset(1).CurrentArray    ' matrice noms tests
            i = i + 1
            If IsNumeric(nbDec(1, i)) Then
                Intersect(c.EntireRow, pl.Columns).NumberFormat = IIf(nbDec(1, i) = 0, "0", "0." & Application.Rept("0", nbDec(1, i)))
            End If
        Next c
    End If
End Sub
Ca va comme ça ?

Si s'est amené à évoluer encore, on pourrait prévoir des "x" en ligne 3 ou une couleur spécifique en ligne 4 ou 5 pour dire de ne pas appliquer le format sur cette colonne.
eric
 

Discussions similaires

Réponses
8
Affichages
568
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…