Double actions concomittantes

Bonjour,

Je souhaiterai traiter des centaines de lignes de la Feuille 1 vers la Feuille 2

Dans la Feuille 1 chaque ligne est de type csv

Est-il possible de faire une double actions dans des cellules se trouvant dans Feuille 2 ?

Je m'explique, 2 actions concomitantes s'effectueraient en A2 et A3 (réarrangement et formatage)

Dans la cellule A1 de la Feuille 1 on a 1,"Mar 1, 2022 07:08:24","Mar 1, 2022 08:25:26"

Dans la Feuille 2 je souhaiterai avoir en A1 --> 1 en A2 --> 01/03/2022 07:08:24 en A3 --> 01/03/2022 08:25:26

Autrement dit, peut-on imbriquer CHERCHE + SUBSTITUE à cette formule ?

=CNUM(STXT('Feuille 1'!A1;5;CHERCHE(",";'Feuille 1'!A1)-CHERCHE(" ";'Feuille 1'!A1)-1)&"/"&RECHERCHEV(GAUCHE('Feuille 1'!A1;3);Références!$A$1:Références!$B$12;2;0)&"/"&STXT('Feuille 1'!A1;8;5)&" "&DROITE('Feuille 1'!A1;8))

Voir fichier joint

5date5.xlsx (9.56 Ko)

Merci

Bonjour :

La fonction ci-dessous donne les résultats suivants :

Vos données en Feuil 1

capture

Dans votre Feuil2. Le résultat de la fonction donne une véritable date. Si la date est incohérente, aucune valeur n'apparaît dans la cellule.

capture1

Il faut passer votre tableau de références en tableau structuré baptisé "t_Mois"

capture
Option Explicit

Function SplitChaine(ByVal ChaineAtraiter As String, ByVal Position As Integer) As Variant

Dim I As Integer
Dim AireMois As Range, AireNumeros As Range
Dim TabChaine As Variant, TabMois As Variant, TabJour As Variant, MoisEnCours As Integer, JourEnCours As Variant

    Set AireMois = Range("t_Mois[Mois]"): Set AireNumeros = Range("t_Mois[Numéro]")

    TabChaine = Split(ChaineAtraiter, ",""")
    Select Case Position
           Case 1
               SplitChaine = TabChaine(0)
           Case 2
               TabMois = Split(TabChaine(1), ",")
               For I = 1 To AireMois.Count
                   If InStr(1, TabMois(0), AireMois(I), vbTextCompare) > 0 Then
                      MoisEnCours = AireNumeros(I)
                   End If
               Next I
               TabJour = Split(TabMois(0), " ")
               JourEnCours = Mid(Trim(TabJour(1)), 1, Len(Trim(TabJour(1))))
               If IsDate(CDate(Format(CStr(JourEnCours), "00") & "/" & Format(CStr(MoisEnCours), "00") & "/" & Mid(Trim(TabMois(1)), 1, Len(Trim(TabMois(1))) - 1))) Then
                  SplitChaine = Format(CDate(Format(CStr(JourEnCours), "00") & "/" & Format(CStr(MoisEnCours), "00") & "/" & Mid(Trim(TabMois(1)), 1, Len(Trim(TabMois(1))) - 1)), "dd/mm/yyyy hh:mm:ss")
               Else
                  SplitChaine = 0
               End If
           Case 3
               TabMois = Split(TabChaine(2), ",")
               For I = 1 To AireMois.Count
                   If InStr(1, TabMois(0), AireMois(I), vbTextCompare) > 0 Then
                      MoisEnCours = AireNumeros(I)
                   End If
               Next I
               TabJour = Split(TabMois(0), " ")
               JourEnCours = Mid(Trim(TabJour(1)), 1, Len(Trim(TabJour(1))))
               If IsDate(CDate(Format(CStr(JourEnCours), "00") & "/" & Format(CStr(MoisEnCours), "00") & "/" & Mid(Trim(TabMois(1)), 1, Len(Trim(TabMois(1))) - 1))) Then
                  SplitChaine = Format(CDate(Format(CStr(JourEnCours), "00") & "/" & Format(CStr(MoisEnCours), "00") & "/" & Mid(Trim(TabMois(1)), 1, Len(Trim(TabMois(1))) - 1)), "dd/mm/yyyy hh:mm:ss")
               Else
                  SplitChaine = 0
               End If
    End Select

    Set AireMois = Nothing: Set AireNumeros = Nothing

End Function

Bonjour,

Merci de ton aide mais je ne suis pas du tout à l'aise avec les macros.

Rechercher des sujets similaires à "double actions concomittantes"