Erreur code aléatoire

Bonjour,

Je fais face à un problème de code que je n'arrive pas à résoudre. Je développe et exploite depuis quelques mois un fichier en vba. Le fichier fonctionne parfaitement sur le PC de développement mais dès que je bascule le fichier sur un autre PC, j'ai un erreur qui apparait : "Erreur 91: Variable objet ou variable de bloc with non définie".

Je vous colle dessous le bout de code:

- Sur le PC de développement, la feuille wksSynthèse s'affiche après exécution de la macro

- Sur deux autres PC, plantage du code, erreur 91 sur la ligne "oFeuilleDestination.activate"

PS: des variables sont déclarées en global

Option Explicit

Sub Import_AV()
    Dim Ligne As Range
    Dim oLigneDestination As ListRow
    Dim oColDestination As ListColumn
    Dim oLigneSource As ListRow
    Dim oLigneCopie As ListRow
    Dim dlg As Integer
    Dim DerTransaction, DerFee, DerAmount, DerPrice As String
    Dim Choix As Integer
    Dim nLigne As Long
    Dim Résultat As Long

    Application.Calculation = xlCalculationAutomatic

    'Déclaration workbook de destination
    nomClasseurDestination = ThisWorkbook.Name
    Set oClasseurDestination = Workbooks(nomClasseurDestination)

    'Déclaration feuille de destination
    Set oFeuilleDestination = getFeuilleNommée(oClasseurDestination, "wksSynthèse")

    oFeuilleDestination.Activate

   End Sub

Function getFeuilleNommée(nomClasseur As Workbook, NomFeuille As String) As Worksheet

    On Error Resume Next
    Set getFeuilleNommée = nomClasseur.Sheets(SheetName(ThisWorkbook, NomFeuille))

    If getFeuilleNommée Is Nothing Then
        getFeuilleNommée = ""
    End If

End Function

Function SheetName(nomClasseur As Workbook, CodeName As String) As String

    On Error Resume Next
    SheetName = nomClasseur.VBProject.VBComponents(CodeName).Properties("Name").Value

End Function

Bonsoir,

pour commencer mettez en commentaire les deux instruction "On Error Resume Next", comme cela vous verrez exactement où se produit l'erreur car la ligne désignée est en fait un double renvoie de fonction...
Sinon à la lecture du code, pour moi un CodeName VBA c'est le nom de la feuille sous VBA qui n'est pas forcément = au nom de la feuille sur les onglets.
Et en VBA le fait d'utiliser en variable des instruction réservées VBA peut engendrer des erreurs...

Mais bon je suis fatigué alors ce que je dis peut être complètement à coté de la plaque !

@ bientôt

LouReeD

Bonsoir,

J'ai supprimé les "on error" et le problème vient de la seconde fonction. J'ai l'erreur suivante:

Erreur d'exécution 1004: l'accès par programme au projet visual basic n'est pas fiable.

Cela rejoint peut être vos dires. Comment faudrait-il procéder ?

Problème résolu, je ne me souvenais pas avoir modifié les paramètres excel sur le PC de dev.

J'ai dû aller là:

Menu Outils d'Excel -> Macro -> Sécurité -> Onglets Sources fiables -> Cocher "Accès approuvé au modèle d'objet du projet Visual Basic".

Comme quoi des fois, d'avoir trop la tête dans le code et perdre la vision hélicoptère!...

Merci pour le coup de pouce :)

Bonjour,

J'allais vous le dire de regarder au niveau des sécurités d'Excel...

Merci de votre retour et de vos remerciements !

Bon réveillon.

@ bientôt

LouReeD

Rechercher des sujets similaires à "erreur code aleatoire"