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
J'ai ouvert ton fichier ; il n'y a pas d'espace insécable, et c'est bien des caractères
de code 63 qui sont en trop ; je vais essayer de trouver une solution.
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
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
À 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.
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
"By Design" Excel considère une date d'abord en date US, VBA ne fait qu'entériner ce fait .
si tu nous disais plutot d'ou proviennent ces données : Capture, OCR, import Csv ou TXT, html, format propriétaire ???
Fournit ici le fichier original avant que Excel n'intervienne !
je fais juste tourner du code vba qui va extraire les données d'image dans un dossier
quand il me donne la date heure de prise de vue j'ai ce problème d'ascii 63