Compatibilité Bibliothèque d'objets Excel 2013 et Excel 2010

Bonjour à vous,

J'ai un petite souci

J'ai développé un outil EXCEL sur la version 2013 avec plusieurs types de MACRO notamment avec des envois de MAIL automatisés .

Quand je bascule l'outil sur la version 2010 l'utilisation de certaines MACRO me renvoient des messages d'erreurs.

Par exemple dans les références de la bibliothèque VBA pour la version 2013 j'ai MICROSOFT OUTLOOK LIBRARY 15 alors que dans la version 2010 j'ai MICROSOFT OUTLOOK LIBRARY 14

Quelqu'un peut-il me dire si je peux trouver une solution pour éviter de me retaper tous les codes?

Je joints mes messages d'erreurs ; le fichier EXCEL est trop lourd pour être joint (2Mo)

Merci pour votre aide

Bonjour,

Ton sujet aurait été un bon sujet pour la section "Excel - VBA".

Pour envoyer des mails via Excel Vba sur différentes versions d'Excel, il ne faut pas utiliser les bibliothèque ... mais, déclarer les objets ...

Exemple : https://forum.excel-pratique.com/viewtopic.php?t=71481

ric

Ok Nickel merci pour l'info ; j'ai modifié les codes et j'essaierai sur une autre version pour voir si ça fonctionne.

En revanche j'ai le même souci avec les macro d'impression

Est-ce le même problème?

Voir code ci-dessous

Bonjour,

Note : Évite les fichiers Word pour soumettre du code. Juste au dessus de la zone d'écrire, tu as des icônes ... dont l'une sert à baliser du code </>.

Concernant ton code pour l'impression, il est simple et il devrait fonctionner sur toutes les versions d'Excel. Je l'ai testé sur Excel 2007 32 bits, 365 32bit et 365 64 bits ... aucun souci.

Sub Imprimer()
Dim N As Long
Dim i As Integer, Rep As Integer
    With ActiveSheet
        With ActiveSheet.PageSetup
            .PrintTitleRows = "$1:$2"
        End With
        Dim Lig As Integer
        Const Colonnes = 8
        Const Ligne1 = 1
        For Lig = Ligne1 To [A65536].End(xlUp).Row Step 53
            ActiveSheet.PageSetup.PrintArea = Range(Cells(Lig, 1), Cells(Lig + 48, Colonnes)).Address
            ActiveWindow.SelectedSheets.PrintPreview
        Next Lig
    End With
End Sub

ric

Merci pour réponse je vais tester ; effectivement cette macro d'impression était dans le même module que l'envoi automatique des MAILS

Je te tiens au courant

Bonjour,

Une autre proposition avec la gestion du GUID (identifiant unique application).

@ric,

A tester !... ?

Cdlt.

8vidaillac.xlsm (14.27 Ko)
Private Sub Workbook_Open()
    Application.Run ("modOulookGUID.AddLibrary")
    'ThisWorkbook.Save
End Sub
Private Sub AddLibrary()
Dim strGUID As String
    'Microsoft Outlook GUID
    strGUID = "{00062FFF-0000-0000-C000-000000000046}"
    If F_isReferenceAdded(strGUID) = True Then
        ThisWorkbook.VBProject.REFERENCES.Remove F_idReferenceByGUID(strGUID)
    End If
    ThisWorkbook.VBProject.REFERENCES.AddFromGuid strGUID, 0, 0
End Sub

Private Function F_isReferenceAdded(referenceGUID As String) As Boolean
Dim varRef As Variant
    For Each varRef In ThisWorkbook.VBProject.REFERENCES
        If varRef.GUID = referenceGUID Then
            F_isReferenceAdded = True
            Exit For
        End If
    Next varRef
End Function

Private Function F_idReferenceByGUID(referenceGUID As String) As Object
Dim varRef As Object
    For Each varRef In ThisWorkbook.VBProject.REFERENCES
        If varRef.GUID = referenceGUID Then
            Set F_idReferenceByGUID = varRef
            Exit For
        End If
    Next varRef
End Function[i][/i]

Bonjour à tous,

@Jean-Eric

Cela fonctionne bien sous Office 365 32 bits.

Cela ne fonctionne pas sous Office 365 64 bits

ou

sous Office 2007.

Blocage sur ... à la ligne For Each varRef In ThisWorkbook.VBProject.REFERENCES

Private Function F_isReferenceAdded(referenceGUID As String) As Boolean
Dim varRef As Variant
    For Each varRef In ThisWorkbook.VBProject.REFERENCES
        If varRef.GUID = referenceGUID Then
            F_isReferenceAdded = True
            Exit For
        End If
    Next varRef
End Function

ric

Re,

Merci ric,

Sous 2007, si tu ajoutes Microsoft Visual Basic for Application Extensibilty x.x ?

Sinon, attendons un test pour Excel 2010, 2013 32 bits...

Cdlt.

Bonjour à tous,

@Jean-Eric excuse-moi de ne pas avoir donné précédemment le message d'erreur.

Message d'erreur qui est encore le même ...

Après avoir ajouté Microsoft Visual Basic for Application Extensibilty x.x sous 2007.

sans titre

ric

Bonjour Messieurs,

J'ai essayé hier de faire fonctionner mon outil sur EXCEL 2010 et j'ai toujours le même message d'erreur ("Erreur de compilation")malgré le changement de code en passant par les objets et non la bibliothèque.

Pour info je suis sapeur pompier volontaire et quand je travaille au centre de secours je suis en réseau sur une version d'EXCEL 2010 ; je ne sais pas si il peut y avoir une relation de cause à effet.

Je vous joints le fichier EXCEL qui est intégré dans mon outil avec les codes associés ; je ne vous cache pas que mes compétences s'arrêtent là je ne sais plus quoi faire.

Merci d'avance pour votre aide

Bonjour,

Pour ma part, je ne saurais pas résoudre cette énigme faute de connaissances.

Désolé ...

ric

Bonjour,

Après réflexion ...

En regard à :

NomFichier = Cells(7, 16).Value
Chemin = Cells(5, 16).Value

Si le nom du fichier sera 21-5-2020-FICHE NAVETTE HABILLEMENT - Sergent-chef VIDAILLAC HERVE ... qu'est-ce qu'il faut en extraire pour nous donner le chemin ??

=@CELLULE("nomfichier") ???????????

Au lieu de traiter des formules qui, de toute évidence, je ne comprends pas, pauvre novice que je suis ; l'on pourrait traiter directement dans le code, ce qui serait pour moi ... plus aisé.

ric

Sauf que si tu traites le nom dans le code ce n'est plus une variable ; le nom de ton fichier est figé.

Merci quand même pour cos retours je vais de mon côté continuer à chercher

Bonjour,

Si des formules composent le nom et le chemin du fichier afin que ce soit variable ... le code vba peut faire tout à fait la même chose.

Il faut seulement que je comprenne ce qui compose le nom du fichier ... ainsi, que ce qui compose le chemin.

ric

Rechercher des sujets similaires à "compatibilite bibliotheque objets 2013 2010"