Utilisation du Vérificateur de compatibilité dans Excel 2007 et Excel 2010

Résumé : le Vérificateur de compatibilité, nouveauté dans Microsoft Office Excel 2007 et Microsoft Excel 2010, signale les problèmes susceptibles de provoquer une perte de fidélité ou de fonctionnalité lors de l’enregistrement des classeurs dans des versions antérieures d’Microsoft Excel. Découvrez ces options et explorez des exemples de code associés.

Dernière modification : lundi 11 avril 2011

S’applique à : Excel 2007 | Excel 2010 | Office 2007 | Office 2010 | SharePoint Server 2010 | VBA

Sommaire

  • Vérificateur de compatibilité dans Excel

  • Problèmes avec perte mineure de fidélité

  • Problèmes avec perte significative de fidélité

  • Utilisation du Vérificateur de compatibilité par programme

  • Conclusion

  • Ressources supplémentaires

Vérificateur de compatibilité dans Excel

Pour vous assurer qu’un classeur Microsoft Office Excel 2007 ou Microsoft Excel 2010 n’a pas de problème de compatibilité provoquant une perte mineure ou significative de fidélité dans une version antérieure d’Microsoft Excel, vous pouvez exécuter le Vérificateur de compatibilité.

Notes

Le Vérificateur de compatibilité est également disponible dans Microsoft Office Word 2007, Microsoft Word 2010, Microsoft Office PowerPoint 2007 et Microsoft PowerPoint 2010.

Le Vérificateur de compatibilité analyse vos classeurs à la recherche d’éléments qui ne sont pas pris en charge par les versions antérieures d’Excel. Lors de l’enregistrement d’un classeur dans le format de fichier Excel 97 à Excel 2003, Excel 2007 ou Excel 2010 analyse le fichier et affiche des boîtes de dialogue pour vous aider à prendre des décisions concernant les problèmes de compatibilité. Le Vérificateur de compatibilité peut également vous aider à créer un rapport répertoriant toutes les incompatibilités et vous permet de désactiver cette fonctionnalité.

Plus spécifiquement, lorsqu’une des conditions suivantes est remplie, le Vérificateur de compatibilité peut afficher une boîte de dialogue signalant qu’une fonctionnalité disponible dans Excel 2007 ou Excel 2010 n’est pas disponible dans le format antérieur.

  • Vous essayez d’enregistrer un classeur Excel 97 à Excel 2003 (.xls) qui est ouvert dans Excel 2007 ou Excel 2010.

  • Vous utilisez l’option Enregistrer sous pour enregistrer un classeur Excel qui est ouvert dans Excel 2007 ou Excel 2010 au format de fichier Excel 97-2003 (.xls).

L’article Compatibility Mode in the 2007 Office System fournit un résumé des conditions signalées par le Vérificateur de compatibilité.

Comme mentionné plus haut, vous pouvez désactiver le Vérificateur de compatibilité lorsque vous enregistrez des classeurs en appliquant l’une des méthodes ci-dessous.

Pour désactiver le Vérificateur de compatibilité

  1. (Excel 2007) Sur le Bouton Office, cliquez sur Préparer, sur Activer le vérificateur de compatibilité, puis désactivez la case à cocher Vérifier la compatibilité lors de l’enregistrement de ce classeur.

  2. (Excel 2010) Sous l’onglet Fichier, cliquez sur Informations, sur Vérifier la présence de problèmes, sur Vérifier la compatibilité, puis désactivez la case à cocher Vérifier la compatibilité lors de l’enregistrement de ce classeur.

Problèmes avec perte mineure de fidélité

Si des tableaux du classeur contiennent une mise en forme de style, la boîte de dialogue illustrée à la Figure 1 peut s’afficher lorsque vous enregistrez le classeur dans une version antérieure d’Excel.

Figure 1. Boîte de dialogue de perte mineure de fidélité

Boîte de dialogue Perte mineure de fidélité

Dans ce message, le mot clé est mineur. Lors de l’enregistrement du classeur Excel 2007 ou Excel 2010 au format antérieur, la mise en forme de style est supprimée dans le fichier enregistré. Cette action rend le classeur compatible avec le format de fichier Excel 97-2003 (.xls). Si vous le souhaitez, vous pouvez désactiver le Vérificateur de compatibilité, enregistrer le classeur et l’ouvrir dans Excel 97 à Excel 2003 sans rencontrer de problème.

Problèmes avec perte significative de fidélité

Lorsque vous exécutez le Vérificateur de compatibilité et qu’il existe des problèmes dans cette catégorie, une boîte de dialogue semblable à celle de la Figure 2 s’affiche.

Figure 2. Boîte de dialogue Perte significative de fonctionnalité

Boîte de dialogue Perte de fonctionnalité significative

Notes

Pour plus d’informations sur la liste des problèmes signalés dans cette catégorie, voir le blog (éventuellement en anglais) de l’équipe de produit Microsoft Excel.

Lorsqu’il existe des problèmes dans cette catégorie, il est préférable de ne pas enregistrer le fichier car certaines formules risquent de ne pas fonctionner et/ou vous risquez de perdre des données ou certaines fonctionnalités.

Toutefois, dans certains cas d’autres options s’offrent à vous. Par exemple, une solution consiste à ne pas utiliser de formules qui sont nouvelles dans Excel 2007 ou Excel 2010. Au lieu de cela, vous pouvez utiliser d’autres formules (bien que cela puisse entraîner une réduction de fonctionnalité). Par exemple, les formules =SUMIFS() et =COUNTIFS() peuvent être remplacées par une formule =SUMPRODUCT() équivalente. Vous trouverez des informations supplémentaires sur cette formule ici (éventuellement en anglais).

Une autre solution consiste à ne pas utiliser de lignes et de colonnes avec des données au-delà de la plage de 256(IV) colonnes par 65 536 lignes. Au lieu de cela, vous pouvez placer les données supplémentaires dans une autre feuille de calcul et établir une liaison à cette feuille. Vous pourrez peut-être également atténuer le problème en enregistrant le classeur en tant que fichier PDF visualisable dans les versions antérieures d’Excel. Cette option est installée par défaut dans Microsoft Office 2010 et Microsoft Office System 2007 Service Pack 2 (SP2).

Notes

Si vous ne souhaitez pas installer Microsoft Office System 2007 SP2, vous pouvez installer uniquement le complément disponible à partir de la page Web Complément de Microsoft Office 2007 : Enregistrement en PDF dans Microsoft.

Vous pouvez également envoyer le classeur Excel 2007 ou Excel 2010 à l’utilisateur et faire en sorte qu’il charge et installe la Visionneuse Excel. Celle-ci permet d’ouvrir, afficher et imprimer des classeurs Excel 97 à Excel 2010 même si Excel n’est pas installé.

Pour finir, une solution moins qu’optimale consiste à télécharger le Pack de compatibilité Microsoft Office pour les formats de fichiers Word, Excel et PowerPoint. Ce téléchargement vous permet d’ouvrir, modifier et enregistrer des classeurs qui sont au format de fichier Excel 2007 et Excel 2010 dans des versions antérieures d’Excel. Il existe toutefois certaines limitations, telles que l’impossibilité d’afficher les colonnes et les lignes situées au-delà de la plage 256(IV) colonnes par 65 536 lignes. Par ailleurs, lorsque le classeur contient des formules introduites dans Excel 2007 ou Excel 2010, une erreur #NAME s’affiche lorsque vous recalculez le classeur.

Utilisation du Vérificateur de compatibilité par programme

Nous avons vu que le Vérificateur de compatibilité proposait une option Vérifier la compatibilité lors de l’enregistrement de ce classeur qui permet d’activer ou de désactiver cette fonctionnalité. Vous pouvez effectuer les mêmes actions dans Microsoft Visual Basic pour Applications (VBA) avec l’une ou l’autre instruction suivante.

ActiveWorkbook.CheckCompatibility = False
ActiveWorkbook.CheckCompatibility = True

Vous pouvez utiliser la sous-routine VBA suivante pour enregistrer une feuille de calcul Excel 2007 ou Excel 2010 en tant que classeur Excel 97 à Excel 2003 et éviter l’affichage de la boîte de dialogue de Vérificateur de compatibilité. Il convient toutefois de s’assurer que la feuille de calcul ne contient aucun problème de compatibilité ou uniquement des problèmes mineurs.

Sub Save_2007_WorkSheet_As_97_2003_Workbook()
' Avoid the CheckCompatibility dialog when you copy a worksheet
' from an Excel 2007 or Excel 2010 file format with compatibility issues to a new
' workbook and save this workbook as an Excel 97 through Excel 2003 workbook.
    Dim Destwb As Workbook
    Dim SaveFormat As Long
    Dim TempFilePath As String
    Dim TempFileName As String

    ' Remember the users setting.
    SaveFormat = Application.DefaultSaveFormat
    ' Set the default format to the Excel 97 through Excel 2003 file format.
    Application.DefaultSaveFormat = 56

' You can specify a worksheet other than the active sheet by
' using the following syntax: Sheets("Sheet5").Copy.
    ActiveSheet.Copy
    Set Destwb = ActiveWorkbook
    Destwb.CheckCompatibility = False

    ' Save the new workbook and close it.
    TempFilePath = Application.DefaultFilePath & "\"
    TempFileName = "Excel 97-2003 WorkBook " & Format(Now, "yyyy-mm-dd hh-mm-ss")

    With Destwb
        .SaveAs TempFilePath & TempFileName & ".xls", FileFormat:=56
        .Close SaveChanges:=False
    End With

    ' Set default save format back to the users setting.
    Application.DefaultSaveFormat = SaveFormat
    
    MsgBox "You can find the file in " & Application.DefaultFilePath
    
End Sub

Vous pouvez utiliser la sous-routine suivante pour enregistrer une feuille de calcul Excel 2007 ou Excel 2010 en tant que classeur Excel 97 à Excel 2003 et éviter l’affichage de la boîte de dialogue de Vérificateur de compatibilité, puis l’ajouter en tant que pièce jointe à un message électronique. Il convient de s’assurer que la feuille de calcul ne contient aucun problème de compatibilité ou uniquement des problèmes mineurs.

Notes

Vous pouvez utiliser cette sous-routine avec les programmes suivants :

  • Microsoft Outlook Express

  • Microsoft Windows Mail

  • Microsoft Windows Live Mail

  • Microsoft Outlook

Sub Mail_ActiveSheet_As_97_2003_Workbook()
' Works with Excel 2007 and Excel 2010.
    Dim SaveFormat As Long
    Dim FileExtStr As String
    Dim FileFormatNum As Long
    Dim Sourcewb As Workbook
    Dim Destwb As Workbook
    Dim TempFilePath As String
    Dim TempFileName As String
    Dim I As Long

    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With

    Set Sourcewb = ActiveWorkbook

    ' Remember the users setting.
    SaveFormat = Application.DefaultSaveFormat
    ' Set the default to the Excel 97 through Excel 2003 file format.
    Application.DefaultSaveFormat = 56

    ActiveSheet.Copy
    Set Destwb = ActiveWorkbook
    Destwb.CheckCompatibility = False

    ' Save and mail the new workbook and then close it.
    TempFilePath = Application.DefaultFilePath & "\"
    TempFileName = "Part of " & Sourcewb.Name & " " _
                 & Format(Now, "yyyy-mm-dd hh-mm-ss")

    With Destwb
        .SaveAs TempFilePath & TempFileName & ".xls", _
                FileFormat:=56
        On Error Resume Next
        For I = 1 To 3
            .SendMail "", _
                      "This is the Subject line"
            If Err.Number = 0 Then Exit For
        Next I
        On Error GoTo 0
        .Close SaveChanges:=False
    End With

    ' Delete the file that you have just sent.
    Kill TempFilePath & TempFileName & ".xls"

    ' Set default save format back to the users setting.
    Application.DefaultSaveFormat = SaveFormat

    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
End Sub

Vous trouverez davantage d’exemples d’envoi de courrier et des conseils sur la façon de modifier le code ici (éventuellement en anglais).

Conclusion

Lors de l’enregistrement de fichiers Excel 2007 ou Excel 2010 dans des formats de fichiers d’une version antérieure d’Excel, vous pouvez rencontrer des problèmes de compatibilité pouvant entraîner une perte de fidélité de fichier ou une perte significative de données et de fonctionnalités. Le Vérificateur de compatibilité peut vous aider à atténuer ces problèmes.

Ressources supplémentaires

Pour plus d’informations sur les sujets traités dans cet article, voir les ressources suivantes :