XL 2010 nettoyage date

Sheldor

XLDnaute Occasionnel
Supporter XLD
bonjour à tous
par VBA je récupère les dates de prises de vue de photos situées dans un dossier... mais ces dates ont des caractères "non visibles" (est-ce ce que vous nommez des espaces insécables?) qui semblent correspondre au caractère ascii 63.

je pensais m'en sortir facilement avec quelque chose du genre:

Dim C As Range
For Each C In Selection
C.Value = Replace(C.Text, Chr(63), "")
Next

mais ça fait une heure que je tourne en rond sans résultat, les chr(63) reste à leurs places

désolé par avance si j'ai mal cherché, grand merci par avance pour votre aide

nico
 

Pièces jointes

  • supprimer_ascii_63.xlsx
    11.8 KB · Affichages: 14

soan

XLDnaute Barbatruc
Inactif
Voici ton fichier modifié.

fais Ctrl e ➯ tes horaires de prise de vue sont corrects. :)

(il n'y a plus de code 63)

VB:
Option Explicit

Sub Suppr63()
  Dim chn$, lig&
  For lig = 8 To 26
    With Cells(lig, 1)
      chn = .Value
      .Value = Mid$(chn, 2, 3) & Mid$(chn, 6, 3) _
        & Mid$(chn, 10, 5) & Right$(chn, 5)
    End With
  Next lig
End Sub
soan
 

Pièces jointes

  • supprimer ascii 63.xlsm
    17.7 KB · Affichages: 5

soan

XLDnaute Barbatruc
Inactif
À propos du caractère de code ascii 63, tu as écrit : « j'ai peur qu'en plus
il ne soit pas toujours au même endroit dans la chaîne de caractères »


oh là ! ça s'est nouveau ! mon code VBA ne fonctionne que pour des
données telles que tu les as envoyées en exemple ; si le code 63 se
trouve à des endroits différents, ça ne fonctionnera pas.

remarque : j'ai aussi essayé avec Replace$(), mais ça n'a pas marché ;
et je ne saurai pas dire pourquoi.

j'espère que les caractères de code 63 seront toujours à la même place
(et je pense que oui) ; sinon, il faudra trouver une autre solution.


soan
 

Sheldor

XLDnaute Occasionnel
Supporter XLD
je ne pense pas que mon 63 bouge de place, c'est juste que j'essayais de m'affranchir de sa position pour être tranquille

je viens de refaire un tour en incluant ton code dans ma procédure et en fait.. je n'avais pas vu tout de suite: le mois et le jour sont inversés
mes dates du 3 juin sont transformées en 6 mars...

et pourtant les caractères sont bien récupérés par mid () dans le bon ordre
 

soan

XLDnaute Barbatruc
Inactif
Tu as écrit : « le mois et le jour sont inversés »

Oooops ! tu as raison ! nouveau fichier, et nouveau code :
VB:
Option Explicit

Sub Suppr63()
  Dim chn$, lig&
  For lig = 8 To 26
    With Cells(lig, 1)
      chn = .Value
      .Value = Mid$(chn, 6, 3) & Mid$(chn, 2, 3) _
        & Mid$(chn, 10, 5) & Right$(chn, 5)
    End With
  Next lig
End Sub
soan
 

Pièces jointes

  • supprimer ascii 63.xlsm
    17.7 KB · Affichages: 2