Copie de propriétés Format de cellule d'une MFC impossible si NULL

Bonjour,

j'ai créé un ensemble de procédures et fonctions VBA pour gérer les Mises en Forme Conditionnelles (MFC).

Dans l'un d'elles, je souhaite copier les formats de cellule de la MFC d'une plage vers une MFC d'une autre plage.

Voici le code correspondant :

Sub MFC_Copy_MiseEnForme(pMFC_Source As FormatCondition, pMFC_Destination As FormatCondition)
'Copie la mise en valeur (Police, Bordures et Remplissage )d'une MFC source sur une MFC destination
' seules certaines propriétés sont disponibles pour les MFC
' impossible d'affecter la valeur de pMFC_Source si = NULL

    On Error Resume Next
    ' Font
    'pMFC_Destination.Font.FontStyle = pMFC_Source.Font.FontStyle
    ' l'affectation pMFC_Destination.Font.FontStyle = Null ne marche pas et pas d'erreur détectée même si on enlève On Resume Next
    If IsNull(pMFC_Source.Font.FontStyle) Then pMFC_Destination.Font.FontStyle = Null Else pMFC_Destination.Font.FontStyle = pMFC_Source.Font.FontStyle
    pMFC_Destination.Font.Size = pMFC_Source.Font.Size
    pMFC_Destination.Font.Italic = pMFC_Source.Font.Italic
    pMFC_Destination.Font.Bold = pMFC_Source.Font.Bold
    pMFC_Destination.Font.Color = pMFC_Source.Font.Color
    pMFC_Destination.Font.Strikethrough = pMFC_Source.Font.Strikethrough 'barré
    pMFC_Destination.Font.Underline = pMFC_Source.Font.Underline 'souligné
    pMFC_Destination.Font.Subscript = pMFC_Source.Font.Subscript 'indice
    pMFC_Destination.Font.Superscript = pMFC_Source.Font.Superscript 'exposant

    'pMFC_Destination.Font = pMFC_Source.Font
    ' Interior
    pMFC_Destination.Interior.Color = pMFC_Source.Interior.Color
    pMFC_Destination.Interior.Gradient = pMFC_Source.Interior.Gradient
    pMFC_Destination.Interior.Pattern = pMFC_Source.Interior.Pattern
    pMFC_Destination.Interior.PatternColor = pMFC_Source.Interior.PatternColor
    ' Borders
    pMFC_Destination.Borders.LineStyle = pMFC_Source.Borders.LineStyle
    pMFC_Destination.Borders.Color = pMFC_Source.Borders.Color
    'For i = 1 To pMFC_Destination.Borders.Count
    For i = 1 To 4
        pMFC_Destination.Borders(i).LineStyle = pMFC_Source.Borders(i).LineStyle
        pMFC_Destination.Borders(i).Color = pMFC_Source.Borders(i).Color
    Next i
    On Error GoTo 0

End Sub

Cela fonctionne correctement, sauf pour les formats non renseignés dans la MFC à copier.

Un exemple :

- Dans la MFC Source, le format appliqué si la condition est vrai concerne uniquement le Remplissage (couleur de fond bleu), rien sur la police, rien sur les bordures.

- Dans la MFC Destination, le format appliqué si la condition est vrai concerne uniquement la police.

Après exécution de la procédure, le format concernant le remplissage (couleur de fond bleu) a bien été reporté mais les autres et particulièrement celui de la police (sans rien) n'est pas reporté, la MFC Destination a conservé le format de Police initial.

Il semblerait que les caractéristiques qui sont à NULL dans la MFC Destination ne sont pas reportées.

Dans le code, selon le type de données de la caractéristique, un erreur est signalée lors de l'affectation. J'ai positionné un

On Error Resume Next 

en début de code pour éviter le signalement.

J'ai fait des essais de codage du type

if IsNull(pMFC_Source.Font.FontStyle) Then pMFC_Destination.Font.FontStyle = Null Else pMFC_Destination.Font.FontStyle = pMFC_Source.Font.FontStyle.

Sans succès.

Je cherche une solution VBA à appliquer dans ce cas. Par exemple, correspondant au bouton "Effacer" des Onglets "Police" "Bordure" et "Remplissage" la fenêtre "Format de Cellule" de paramétrage du Format de chaque MFC. Tout autre solution est également la bienvenue

Merci d'avance.

Bonjour clr et

Une petite présentation ICI serait la bienvenue

Si vous ne l'avez pas encore fait, je vous invite à lire :
- La charte du forum et notamment

  • Joignez (si possible) un fichier pour augmenter vos chances d'obtenir de l'aide en cliquant sur le bouton Fichier de l'éditeur. Si votre fichier est trop lourd ou contient des données personnelles, créez une version allégée de votre fichier avec juste assez d'informations pour permettre de comprendre votre problème. Dans tous les cas, ne postez JAMAIS de fichiers avec des informations personnelles ou confidentielles (cet utilitaire peut vous aider à les retirer).

Quelques fonctionnalités du forum à connaître
qui vous aideront dans vos demandes et réponses sur ce forum.

Regardez aussi les petites icônes mises à votre disposition dans la barre de menu qui :
- vous permettent de poster un code (</>)
- ou de clôturer un fil lorsque vous avez terminé (V)

Merci pour votre participation

Cordialement

Je me réponds à moi-même pour fermer le sujet et le remplacer par un nouveau sujet où j'ai simplifié l'exposition du problème et ajouté un exemple de fichier

Rechercher des sujets similaires à "copie proprietes format mfc impossible null"