OVH Cloud OVH Cloud

Probleme #NOM?

5 réponses
Avatar
JLuc
Bonjour tout le monde,
J'ai un petit soucis sur de la récuperation de fichier texte.
Losque je récupère mon fichier, 99% du temps c'est impécable. De temps
en temps, la donnée (fruit du hazard) est "-TEXTE" et la cellule
devient "=-TEXTE" ce qui me donne comme résultat "#NOM?".
Comment pourrais je proceder pour qu'excel ne transforme pas ce type de
texte en formule (texte avec un - devant) ?
Un grand merci d'avance pour toutes solutions

--
JLuc

5 réponses

Avatar
lSteph
Bonjour JLuc,
possibilités entre autres (suivant le mode d'acquisition des données)

soit initialement envisager '-texte au lieu de -texte
soit utiliser l'assistant d'importation et forcer le champ concerné à texte.
soit mettre la colonne destinataire préalablement au format texte.

Amicales salutations.

lSteph

"JLuc" a écrit dans le message de news:

Bonjour tout le monde,
J'ai un petit soucis sur de la récuperation de fichier texte.
Losque je récupère mon fichier, 99% du temps c'est impécable. De temps en
temps, la donnée (fruit du hazard) est "-TEXTE" et la cellule devient
"=-TEXTE" ce qui me donne comme résultat "#NOM?".
Comment pourrais je proceder pour qu'excel ne transforme pas ce type de
texte en formule (texte avec un - devant) ?
Un grand merci d'avance pour toutes solutions

--
JLuc




Avatar
JLuc
Bonjour JLuc,
possibilités entre autres (suivant le mode d'acquisition des données)

soit initialement envisager '-texte au lieu de -texte
soit utiliser l'assistant d'importation et forcer le champ concerné à texte.
soit mettre la colonne destinataire préalablement au format texte.

Amicales salutations.

lSteph


Merci pour ta reponse, LSteph, mais...
Voila le code de récupèration :

With ws.QueryTables.Add(Connection:= _
"TEXT;" & Range("Fichier"), _
Destination:=ws.Range("A1"))
.Name = "commande"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlFixedWidth
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1)
.TextFileFixedColumnWidths = Array(2, 18, 2, 4, 8, 10, 17, 7, 2, 9)
.Refresh BackgroundQuery:úlse
End With

Sur ce code, il y a une colonne où je veux recevoir une date (la
sixième), le reste c'est que tu texte.
les données "-TEXTE" sont positionnées aléatoirement dans toute la
feuille (quand il y en a :oÞ) : c'est tout le probléme

--
JLuc

Avatar
JLuc
Bonjour JLuc,
possibilités entre autres (suivant le mode d'acquisition des données)

soit initialement envisager '-texte au lieu de -texte
soit utiliser l'assistant d'importation et forcer le champ concerné à texte.
soit mettre la colonne destinataire préalablement au format texte.

Amicales salutations.

lSteph
C'est bon, j'ai trouvé une solution :


'==================================================================== ' Modification des cellules contenant une formule
'=====================================================================
For Each cel In ws.Range(Cells(1, 1), _
Cells(ws.Cells(Rows.Count, "a").End(xlUp).Row, 10))
If Left(cel.FormulaLocal, 1) = "=" Then
cel.FormulaLocal = "'" & Right(cel.FormulaLocal, _
Len(cel.FormulaLocal) - 1)
End If
Next

Merci à tous ceux qui se sont penché sur mon problème

--
JLuc

Avatar
lSteph
Bonsoir JLuc,

Malgré ta langue, encore un brin chargée,
C'est bon, j'ai trouvé une solution :
je n'en attendais pas moins de toi!


;o) à bientôt.

lSteph

"JLuc" a écrit dans le message de news:

Bonjour JLuc,
possibilités entre autres (suivant le mode d'acquisition des données)

soit initialement envisager '-texte au lieu de -texte
soit utiliser l'assistant d'importation et forcer le champ concerné à
texte.
soit mettre la colonne destinataire préalablement au format texte.

Amicales salutations.

lSteph
C'est bon, j'ai trouvé une solution :


'==================================================================== > ' Modification des cellules contenant une formule
'=====================================================================
For Each cel In ws.Range(Cells(1, 1), _
Cells(ws.Cells(Rows.Count, "a").End(xlUp).Row, 10))
If Left(cel.FormulaLocal, 1) = "=" Then
cel.FormulaLocal = "'" & Right(cel.FormulaLocal, _
Len(cel.FormulaLocal) - 1)
End If
Next

Merci à tous ceux qui se sont penché sur mon problème

--
JLuc





Avatar
JLuc
*Bonjour lSteph*,
C'est pas toujours facile de se remettre du week-end :')
Et plus ca va, plus c'est dur.... lol

Bonsoir JLuc,

Malgré ta langue, encore un brin chargée,
C'est bon, j'ai trouvé une solution :
je n'en attendais pas moins de toi!


;o) à bientôt.

lSteph


--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O