problème avec #NOM

D

dave

Guest
j'ai un fichier excel avec de nombreuses formules.
Certaines fois dans les champs où il existe des formules, la valeur n'apparait plus. #NOM y est indiqué à la place.

POur faire disparaitre cette valeur erronée, je dois redémarrer le PC.

A savoir que j'ai utilitaire d'analyse de cocher pourtant.
 

Tibo

XLDnaute Barbatruc
Salut Dave,

Plutot curieux qu'il faille redémarrer ton micro pour que le message disparaisse.

Dans tes formules qui font apparaître #NOM, peux-tu nous dire quelles sont les fonctions que tu utilises ?

Si fichier pas trop volumineux, joins-le pour que nous puissions regarder.

Bonne soirée

@+
 
D

dave

Guest
Dans une feuille j'ai une fonction SERIE.JOUR.OUVRABLE
dans une autre feuille, j'ai :
=SI(H1049='';SI(ESTNA(TypAbs);'';TypAbs);SI($B1050<=Datfin;H1049;SI(ESTNA(TypAbs);'';TypAbs)))

J'ai aussi deus plages utilisées pour calculer certaines valeurs et c'est tout.

Sinon, je peux t'envoyer ce fichier excel mais il faudrait aussi que je t'envoie le fichier access qui va avec et te faire un petit mémo pour te dire comment refaire l'erreur.


PS: Gael et Sylvie m'avaient donné un coup de main pour trouver les fonctions qui allaient bien pour ramener les valeurs demandées.
 
L

laM

Guest
Bonjour

Juste une hypothèse sans garantie :
le #NOM pouvant être simplement une référence non reconnue
(vous avez certainement des références entre apostrophes à des fichiers externes)
donc, peut-être que la base Access n'est pas encore accessible au moment où excel calcule sa feuille, un petit coup de F9 après un délai, pourrait forcer la feuille à se recalculer. Il y a aussi des options dans Excel concernant les données externes Menu / Outils / Options, onglet Calcul, par exemple décochez Enregistrer les valeurs des liaisons externes...
De manière générale, il faut certainement chercher dans l'ordre de chargement des applications (ou fichiers, ou délai de connexion à ODBC...). En chargeant votre base Access bien avant Excel, est-ce que cela change des choses ?
Autre chose, à côté de l'erreur #NOM il doit y avoir une sorte d'info-bulle avec un point d'exclamation, lorsque vous cliquez dessus, ça dit quoi ?

Au revoir, à bientôt
 
D

dave

Guest
Bonjour,
l'hypothèse de la base access non accesible n'est pas possible car c'est la base access qui me sert d'interface utilisateur constamment.
Toutes les actions partent d'access. Donc la base est bien disponible.

D'access, je passe par automation pour transférer des données d'access vers excel. Voici le code:

Private Sub cmd_valid_Click()

'*********************** TRANSFERT ABSENCES CONSULTANTS *************************

'déclaration
Dim conn As New ADODB.Connection
Dim rs As ADODB.Recordset
'ouverture de la connexion
conn.Open 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' & 'C:\\Documents and Settings\\ICRH001\\Bureau\\ICRH.mdb' & ';'
conn.CursorLocation = adUseClient
'exécute la connexion pour la requête concernée
Set rs = conn.Execute('req_his_abs', , adCmdQuery)
'déclaration de l'application EXCEL
Dim XL_App As Object
Set XL_App = CreateObject('Excel.Application')
'déclaration du classeur et de la feuille
Dim XL_classeur As Object
Dim XL_feuille As Object

With XL_App
'ouverture du classeur
Set XL_classeur = .Workbooks.Open('C:\\Documents and Settings\\ICRH001\\Bureau\\congés-absences-TS_trav.XLS')
' désignation de la feuille
Set XL_feuille = XL_classeur.Sheets('absences')
With XL_feuille
.Select
' effacement de la plage avant ré_insertion de la nouvelle liste
.Range('A2:D200').Clear
'insertion de la nouvelle liste des consultants
.Range('A2').CopyFromRecordset rs
End With
.ActiveWorkbook.Save
.ActiveWorkbook.close
' Quitter Excel
.Quit
End With
'fermeture du recordset
rs.close
' fermeture de la connexion
conn.close
' Libérer les variables objet
Set XL_App = Nothing
Set XL_classeur = Nothing
Set XL_feuille = Nothing

'************************** fin transfert *****************************

'fermeture du formulaire
DoCmd.close

End Sub



A côté de l'indication #NOM, quand je clique dessus l'erreur est :
erreur dû à un nom non valide.

Pour le moment j'ai réussi à retranscrire l'erreur en supprimant la table lier dans access.

Je suis entrain de voir la solution du chargement.
Car le problème initiale que je devais résoudre était que je n'avais pas les mêmes données entre ma table lier dans access et mon fichier excel source d'où proviennent ces même données.
Il semble que quand je n'ai pas de soucis avec #NOM, je ne récupère les mêmes valeurs uniquement quand j'ouvre de nouveau EXCEL et le ferme en sauvegardant.
 

Jam

XLDnaute Accro
Salut à tous,

Bien que je ne suis pas certain d'avoir tout bien compris je pense cependant que cela peux provenir de la langue utilisée par défaut ! Celle-ci pouvant changer, il est possible que le nom de la fonction ne soit plus reconnu. Pour cela tu jeter un coup d'oeil à la barre de langue (sous WinXP).
Au fait, s'agit-il toujours du même PC ou de plusieurs PC différents ?

C'est juste une piste de réflexion.
Bon courage
 
L

laM

Guest
Bonjour

Ah c'est dans le sens Access - > Excel

Alors d'autres pistes...(aussi fausse peut-être ;-)
dans l'aide d'Excel pour #NOM
...(Excel essaie d'interpréter votre entrée comme s'il s'agissait d'un nom alors que vous avez souhaité entrer un texte.)...

Par exemple devant certain texte, il faut rajouter une apostrophe avant le texte (') ou des guillemets afin d'éviter les interprétations d'Excel.
(C'est un peu comme les 'smileys involontaires' dans mes réponses sur ce site à cause d'un point virgule suivi d'une parenthèse dans une formule ;) )

Il faut faire attention aux codes de contrôle, les tabulations, retour chariot...Les : , les terminateurs de fin de chaînes (une petite convertion avant export pour être sûr de l'envoi en décomposant le .Range('A2').CopyFromRecordset rs, c'est à dire en copiant champ par champ les valeurs d'une ligne posant problème).
Et lorsque vous supprimer le .Range('A2:D200').Clear, il se passe quoi ?
Ne faut-il pas modifier le format des cellules Excel avant d'envoyer des données ? S'il y a des dates par exemples...
Avez vous déjà essayé d'importer manuellement (Menu Données / Données externes) une table, base ou requête dans Excel ? S'il y a des caractères à problèmes ils devraient apparaître.
...etc. etc. etc.

J'aimerais assez voir une copie du contenu des cellules (quand ça marche par exemple) et le texte que vous attendiez réellement (surtout s'il y a des caractères spéciaux). Et puis l'ordre dans lequel vous faites vos opérations. Est-ce que Excel est ouvert lors du CopyFromRecordset par exemple, parce qu'il y a un
.ActiveWorkbook.Save
.ActiveWorkbook.close


Au revoir, à bientôt.
 

Discussions similaires

Statistiques des forums

Discussions
312 046
Messages
2 084 851
Membres
102 687
dernier inscrit
Biquet78