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 FunctionBonsoir,
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