XL 2016 Comment enlever petit triangle vert et losange jaune suite à download (problème de format) ?

Sebast

XLDnaute Impliqué
Bonjour à toutes et à tous,
ma question porte sur la façon de supprimer suite à un download l'espèce de mini triangle vert qui se place en haut à gauche de chaque cellule.
Ce triangle vert se double d'un losange jaune avec un point d'exclamation en son centre.
Le losange renvoie à un texte signalant par exemple qu'une date montre une année présentée sur uniquement deux chiffres, ou qu'un nombre est présenté au format texte.
Quand effectivement j'ai un nombre dans une cellule, pas de difficulté, je convertis en nombre.
Mais si comme en colonne A, j'ai parfois une valeur numérique, la conversion conduit à un résultat faux.
En colonne A, je gère des numéros de lot, constitués parfois de lettres, de chiffres, de tirets etc. donc il ne s'agit pas de nombres (aucun besoin d'additionner, uniquement identifier).
Exemples
Cellule A2 : 000436 devient 436
Cellule A18 : 15113E6 devient 15113000000 car Excel croit reconnaitre une écriture scientifique …
En fait ma question est simple : comment fait-on pour copier strictement ce qu'il y a dans la colonne et donc dissuader Excel d'appliquer un quelconque format ?
Même un copier/coller valeur reprend le petit triangle vert … (tout ça en VBA)
Merci d'avance pour toute piste !
Seb
Sub conversion()
Dim DL As Long ' DL = dernière ligne
DL = Sheets("Tableau").Range("A" & Rows.Count).End(xlUp).Row
With Sheets("Tableau")
.Range("A2:A" & DL).TextToColumns Destination:=.Range("A2:A" & DL), DataType:=xlFixedWidth, FieldInfo:=Array(0, 1), TrailingMinusNumbers:=True
.Range("B2:B" & DL).TextToColumns Destination:=.Range("B2:B" & DL), DataType:=xlFixedWidth, FieldInfo:=Array(0, 4), TrailingMinusNumbers:=True ' date
.Range("D2:D" & DL).TextToColumns Destination:=.Range("D2:D" & DL), DataType:=xlFixedWidth, FieldInfo:=Array(0, 1), TrailingMinusNumbers:=True
End With
End Sub
 

Pièces jointes

  • QuestionVBAFormat.xlsm
    227.8 KB · Affichages: 6

Dranreb

XLDnaute Barbatruc
En fait ma question est simple : comment fait-on pour copier strictement ce qu'il y a dans la colonne et donc dissuader Excel d'appliquer un quelconque format ?
C'est ce que devrait faire systématiquement Excel sans changer le format d'affichage. Mais à force d'entendre des plaintes ça a changé petit à petit. Mais Il devrait copier ce qu'il y a dans la cellule, et qui ne doit absolument pas être confondu avec ce qu'on y voit, encore que dans le seul cas ou c'est du String, c'est pareil … Mettez un format Texte à la cellule pour l'empêcher d'interpréter les textes tapés. Du coup il le fait trop bien et ne considère même plus la saisie d'un texte commençant par '=' comme une formule.
 
Dernière édition:

Sebast

XLDnaute Impliqué
Bonsoir Danreb, bonsoir Job75,

merci pour vos contributions.

Concernant la mise en format texte proposée par Danreb, c'est ce que je pensais faire avec le code
.Range("A2:A" & DL).TextToColumns Destination:=.Range("A2:A" & DL), DataType:=xlFixedWidth, FieldInfo:=Array(0, 1), TrailingMinusNumbers:=True
... même avec format="@" appliqué à la colonne, ça ne résout pas l'affaire
Ai-je loupé quelque chose ? le deuxième chiffre dans Array(0,n) ? 4 = date, que dois-je alors choisir ?

Job75 : je ne connaissais pas du tout ces options, c'est en fait plutôt pratique !

Encore merci
 

Statistiques des forums

Discussions
312 092
Messages
2 085 227
Membres
102 826
dernier inscrit
ag amestan