XL 2010 Extraire une date dans une chaine via VBA

Loustalot33

XLDnaute Nouveau
Bonjour,

Je suis débutant dans le codage VBA.
J'ai besoin d'extraire et mettre dans une autre colonne la date. Cette date est toujours sous la même forme et se trouve toujours à la fin.
Le contenu des cellules est variable.
Je n'arrive pas à écrire le code pour couper la date et la copier dans la 1ère cellule à droite.
Quelqu'un peut m'aider ?

ex:
2521.6.0068006158 09/08/2016
AV16-01413 08/08/2016
3164938 05/08/2016
 

Yurperqod

XLDnaute Occasionnel
Bonjour le forum

Par formule
=DROITE(A1;A10)

On peut aussi prendre Données/Convertir en choisissant l'espace comme séparateur
et en cochant Date dans la rubrique Format des données en colonne

Cette macro est le reflet de l'utilisation de cette méthode
VB:
Sub Macro1()
Selection.TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, Space:=True, FieldInfo:=Array(Array(1, 9), Array(2, 4))
End Sub

Les données à extraire sont en colonne A et le résultat s'affichera en colonne B.
 
Dernière édition:

Yurperqod

XLDnaute Occasionnel
Pour lancer la macro, il faut d'abord avant sélectionner la colonne A.
Les dates alors sont bien mises en colonne B.

Si la colonne doit être la colonne adjacente à la colonne sélectionnée, on peut faire çà
Code:
Sub Macro1()
Dim Col As Long
Col = Selection.Column
Selection.TextToColumns Destination:=Cells(1, Col + 1), DataType:=xlDelimited, Space:=True, FieldInfo:=Array(Array(1, 9), Array(2, 4))
End Sub
 

Yurperqod

XLDnaute Occasionnel
On peut cocher Colonnes non distribuées pour les colonnes inutiles
C'est plus simple à expliquer quand on fait le Donnés/Convertir manuellement donc essaies de jouer sur les paramètres en convertissant quand il y a plusieurs espaces.

Et pour avoir les lignes VBA, il faut laisser tourner l'enregistreur de macros tout en faisant le Données/Convertir.
 

Loustalot33

XLDnaute Nouveau
Bonjour,

Je suis désolé, je n'arrive pas à avoir le résultat. Je vous joins directement le fichier pour que ce soit plus simple.
Mon besoin : déplacer la date sur la colonne de droite.

Merci d'avance
 

Pièces jointes

  • Classeur1.xlsx
    14.9 KB · Affichages: 28

Yurperqod

XLDnaute Occasionnel
Bonjour le forum

macro testée sur ton dernier fichier
VB:
Sub Macro()
Dim Cell As Range, Chaine As String
For Each Cell In Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
On Error Resume Next
Chaine = Split(Cell.Text, " ")(UBound(Split(Cell.Text, " ")))
If IsDate(CDate(Chaine)) Then
Cell.Offset(, 1).Value = CDate(Chaine)
End If
Next
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 686
Messages
2 090 948
Membres
104 705
dernier inscrit
Mike72