XL 2019 Problème de Noms

ThierryP

XLDnaute Occasionnel
Bonsoir le forum,

Un truc étrange vient de me tomber dessus et je n'arrive pas à comprendre, donc me voici en train d'appeler au secours !
Dans un fichier sur lequel je travaille depuis quelques jours, j'ai un certain nombre de plages / cellules nommées sur différents onglets, que j'utilise dans diverses macros. Jusqu'à il y 1 heure environ, tout se passait bien.... Maintenant, chaque fois que je fais un appel type Range("Truc"), j'ai un beau message d'erreur "Variable objet ou etc....".
Pourtant, si je fais un debug.print des noms de mon fichier, ils sont tous là, avec leur adresse et tout et tout......

Si quelqu'un a un bout de début de commencement d'idée, qu'il en soit remercié !!!
 
Solution
Finalement, j'ai reconstruit mes tables de noms, tout re-fonctionne mais je ne m'explique toujours pas ce qui a pu se produire.... Il n'est pas non plus exclu que le problème ait été quelque part entre la chaise et l'écran....

Merci à tous ceux qui se sont penchés sur mon souci (et encore une fois désolé Bernard !)

ThierryP

XLDnaute Occasionnel
Bonjour.
Nous on le trouverait, très probablement, ce qui ne va pas, si vous nous en donniez la possibilité …
Bonjour Bernard,

je sais... mais je ne l'ai pas fait pour deux raisons, un le temps d'anonymiser le fichier et deux quand je viens sur le forum, c'est plus pour apprendre à pêcher que pour avoir un poisson 😉😉 et je me suis dit qu'il pouvait y avoir une raison "générique" et pas spécialement liée à mon fichier...

Encore plus étrange...... Hier soir, j'avais cette liste de noms dans mon fichier :
Admin1 - =Parametres!$L$3 -
Admin2 - =Parametres!$L$4 -
Adresse - =Parametres!$L$2 -
Agents - =OFFSET(Parametres!$A$2,,,COUNTA(Parametres!$A$2:$A$999998)) -
Domaine - =Parametres!$N$2 -
Initialisation - =Parametres!$TP$1 -
Jour - =Parametres!$Z$2:$Z$7 -
Securite - =Parametres!$TP$2 -
Statut - =OFFSET(Parametres!$G$2,,,COUNTA(Parametres!$A$2:$A$999998)) -
User - =Log!$TP$1952 -

Ce matin, j'ouvre le fichier et voici ce que j'ai comme noms :
Suivi Pointage 2024.xlsm
Admin1 - =Parametres!$L$3 - 00:00:00
Admin2 - =Parametres!$L$4 - 00:00:00
Adresse - =Parametres!$L$2 - 00:00:00
Domaine - =Parametres!$N$2 - 00:00:00

Je ferme le fichier sans sauvegarder, je l'ouvre à nouveau et là je n'ai plus aucun nom
Du coup, mon fichier en P.J. (ou du moins ce qu'il en reste !!)

Si quelqu'un a une idée, parce que là le peu de neurones qui me reste est train de surchauffer !!!

Merci d'avance !
 

Pièces jointes

  • Suivi Pointage 2024.xlsm
    155.2 KB · Affichages: 6

ThierryP

XLDnaute Occasionnel
Je comprends l'emoji..... mais pas le phénomène ! Dans le WorkBook_Open, il y a ceci :

VB:
Private Sub Workbook_Open()
Call ControleUtilisateur
Application.ScreenUpdating = False
Application.EnableEvents = False
Bouge_Enter = Application.MoveAfterReturn
Application.MoveAfterReturn = False
ThisWorkbook.Unprotect
'''''' If Month(Date) =12 Then Feuil1.CB_New_Year.Visible = true Else Feuil1.CB_New_Year.Visible = false
Feuil1.Activate
Feuil2.Visible = xlSheetVeryHidden
Feuil3.Visible = xlSheetVeryHidden
If Feuil1.Range("Initialisation") = "VRAI" Then
    Call Initialisation
    With Feuil3
        .Visible = xlSheetVisible
        .Select
        .Unprotect Feuil1.Range("Securite")
        With .Range("B3")
            .Select
            .Value = Premier_Janvier_Ouvrable(Year(Date))
            Call Calendrier(Year(Date))
        End With
        Feuil1.Activate
        .Visible = xlSheetVeryHidden
    End With
    If Feuil1.Range("A" & Feuil1.Cells.Rows.Count).End(xlUp).Row = 1 Then
        MsgBox "Vous devez maintenant créer la liste des agents."
        Feuil1.Range("A2").Select
        GoTo suite
    End If
End If
suite:
'ThisWorkbook.Protect structure:=True
Application.EnableEvents = True
End Sub

A aucun moment je ne ferme Excel...
Dans la macro ControleUtilisateur, il y a ceci :

Code:
Sub ControleUtilisateur()
Dim NomUser As String
NomUser = String(100, Chr$(0))
GetUserName NomUser, 100
Utilisateur = UCase(Left$(NomUser, InStr(NomUser, Chr$(0)) - 1))
Application.EnableEvents = False
Range("User") = Utilisateur
Application.EnableEvents = True
End Sub

La macro "Initialisation" est un peu longue, je ne la mets pas dans ce message, mais en tous cas Excel ne devrait pas se fermer !
 

job75

XLDnaute Barbatruc
Bonjour à tous,
je n'ai plus aucun nom
Ils sont masqués, probablement par une de vos nombreuses macros.

Pour les afficher exécutez ce code :
VB:
Sub a()
Dim nom As Name
For Each nom In ThisWorkbook.Names
nom.Visible = True
Next
End Sub
Je n'ai pas eu le problème de Dranreb mais la macro Workbook_Open plante sur le nom "Initialisation" qui est défini sur un autre classeur.

A+
 

ThierryP

XLDnaute Occasionnel
Bonjour à tous,

Ils sont masqués, probablement par une de vos nombreuses macros.

Pour les afficher exécutez ce code :
VB:
Sub a()
Dim nom As Name
For Each nom In ThisWorkbook.Names
nom.Visible = True
Next
End Sub
Je n'ai pas eu le problème de Dranreb mais la macro Workbook_Open plante sur le nom "Initialisation" qui est défini sur un autre classeur.

A+
Bonjour Job75,
Oui tous ces noms sont masqués, c'est normal... Ce qui l'est moins c'est de les voir en faisant un debug.print, mais que mes macros plantent en faisant appel à ces noms !
 

job75

XLDnaute Barbatruc
Dans la feuille "Parametres", macro Worksheet_BeforeDoubleClick :

- Range doit obligatoirement définir une plage dans cette feuille

- or pour Range("Initialisation") le nom est défini dans un autre classeur => bug

- or pour Range("User") le nom est défini dans la feuille "Log" => bug.

Il faut donc préciser le classeur et la feuille, éventuellement utiliser Evaluate.
 

ThierryP

XLDnaute Occasionnel
Finalement, j'ai reconstruit mes tables de noms, tout re-fonctionne mais je ne m'explique toujours pas ce qui a pu se produire.... Il n'est pas non plus exclu que le problème ait été quelque part entre la chaise et l'écran....

Merci à tous ceux qui se sont penchés sur mon souci (et encore une fois désolé Bernard !)
 

ThierryP

XLDnaute Occasionnel
Dans la feuille "Parametres", macro Worksheet_BeforeDoubleClick :

- Range doit obligatoirement définir une plage dans cette feuille

- or pour Range("Initialisation") le nom est défini dans un autre classeur => bug

- or pour Range("User") le nom est défini dans la feuille "Log" => bug.

Il faut donc préciser le classeur et la feuille, éventuellement utiliser Evaluate.
Merci pour le retour Job75 !
Oui, je m'étais aperçu du souci mais j'avais déjà publié mon classeur.
toujours tourner 7 fois sa souris sur le tapis avant de cliquer !!
 

Discussions similaires

  • Question
XL pour MAC mise en forme
Réponses
2
Affichages
451

Statistiques des forums

Discussions
314 422
Messages
2 109 447
Membres
110 482
dernier inscrit
ilyxxxh