Utiliser la fonction split et renvoyer 1 des valeurs dans une cellule

Fermé
toto - Modifié le 25 oct. 2019 à 16:09
 toto - 25 oct. 2019 à 17:06
Bonjour,
Dans un tableau qui ne sera jamais le même, et que j'ouvre temporairement pour récupérer quelques données avant sa suppression, il y a toujours en cellule (A2) un texte :
"données du XX/XX/XX 456464)..... "
Soit 4 morceaux séparés par des espaces.
Je cherche désespérément à retranscrire la date (XX/XX/XX)dans une case à côté (case (J1))

Voici l'extrait de mon code que je tente de bricoler :

Dim texte_qui_contient_dates As String
Dim tab1(4) As Variant
texte_qui_contient_dates = ("A2")
tab1(4) = Split(dates, " ", 4)
Range("J1:J4").Text = tab1(4)


Mon code bloque sur la dernière ligne

Je suis un apprenti débutant, cela fait plusieurs heures que je cherche sur internet :/
quelqu'un saurait m'éclairer de ses lumières s'il-vous-plaît ? le PC est menacé de passer par la fenêtre :P

Configuration: Windows / Chrome 77.0.3865.120

1 réponse

ccm81 Messages postés 10543 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 18 mars 2023 2 336
25 oct. 2019 à 16:21
Bonjour

Public Sub ok()
Dim s As String, ts, d As Date
s = [A2].Value
ts = Split(s, " ")
s = ts(0) & "/" & ts(1) & "/" & ts(2)
d = CDate(s)
[J1].Value = d
End Sub

Cdlmnt
0
f894009 Messages postés 16904 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 18 mars 2023 1 678
Modifié le 25 oct. 2019 à 16:28
Bonjour a vous deux
Vu ce qui est ecrit dans A2 d'apres toto, 4 textes separes par un espace, j'y vois plutôt comme ceci
Si seulement annee deux chiffres, enlever CDate
Sub test()
    Dim tab1 As Variant
    
    With Worksheets("feuil1")
    'donn?es du XX/XX/XX 456464
        tab1 = Split(.Range("A2"), " ")
        .Range("J1").Value = CDate(tab1(2))
    End With
End Sub
0
toto > f894009 Messages postés 16904 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 18 mars 2023
25 oct. 2019 à 16:50
Bonjour, merci beaucoup pour votre retour.

Dans mon code entier, la feuille sur laquelle travailler est active.
je ne peut pas lui donner de nom car la feuille porte un nom différent à chaque fois, générée par un serveur.

peut être que votre solution fonctionne mais je ne sais pas comment aller cherchez l'information du numéro de la feuille :/

étant donné que la feuille à manipuler est active lorsque je veux effectuer cette manipulation, j'ai testé cotre code en enlevant la fonction with, mais le code bloque dans la fonction split au (.range) :
erreur de compilation : référence incorrecte ou non qualifiée

auriez-vous une idée ?

cordialement,
0
Merci beaucoup pour votre retour rapide.

toutefois, le code bloque à la ligne 6 :/

erreur 13 : incomparabilité de type

faut-il déclarer d en temps qu'une variable quelconque ? ou autre chose ?

Cordialement
0
f894009 Messages postés 16904 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 18 mars 2023 1 678
Modifié le 25 oct. 2019 à 16:56
Re,

Sub test()
    Dim tab1 As Variant
    
    'donn?es du XX/XX/XX 456464
        tab1 = Split(Range("A2"), " ")
        Range("J1").Value = CDate(tab1(2))
End Sub
0
toto > f894009 Messages postés 16904 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 18 mars 2023
25 oct. 2019 à 17:06
Super ça fonctionne !

merci beaucoup, bonne fin de journée
0