XL 2010 nettoyage date

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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

merci Soan,

j'étais parti sur une solution du style
Replace(C.Text, Chr(63), "")
car ne comprenant pas pourquoi il me met cet ascii 63 j'ai peur qu'en plus il ne soit pas toujours au même endroit dans la chaine de caractères

mais ta solution fonctionne, merci beaucoup

nico
 
À 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
 
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
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour