Séparer les lignes d'une cellule

Résolu
Bonjour,

Dans la cellule B1 j'ai des différentes dates chacune dans une ligne et toutes dans la même cellule, je cherche a mettre chaque date dans une cellule de la colonne C, soit par exemple C1 pour la première ligne (1er date), C2 pour la deuxième, C3 pour la 3ème..., il est a noter que le contenu de B1 est dynamique et que le nombre des lignes peut varier de 1 à 365

merci

2 réponses

  1. Bonjour sofienexcel,

    Tu as très bien fait de m'en parler.

    Voici le nouveau code VBA ; seule différence avec le précédent :
    ajout de la ligne #7 (juste après la ligne Dim).

    
    Option Explicit
    
    
    Sub Essai()
      Dim chn As String, lng As Long, lig As Long, p As Long
      Columns("C").ClearContents: Application.ScreenUpdating = False
      chn = [B1] & Chr$(10): lng = Len(chn): lig = 1
      Do While lng > 0
        p = InStr(chn, Chr$(10)): Cells(lig, 3) = Left$(chn, p - 1)
        lng = lng - p: chn = Right$(chn, lng): lig = lig + 1
      Loop
    End Sub
    
    

    Attention : ce code efface toute la colonne C, donc si tu as des données
    en dessous que tu ne veux pas effacer, ne l'utilises pas, et il faudra un autre code ; donc n'hésites pas à me demander autre chose si besoin.

    Cordialement.  😊
     
    1
    1. Bonjour sofienexcel,

      Je te propose ce code VBA, mais à toi de mettre dans la colonne C
      le format date que tu veux ! Mets cette macro dans Module1.

      
      Option Explicit
      
      
      Sub Essai()
        Dim chn As String, lng As Long, lig As Long, p As Long
        chn = [B1] & Chr$(10): lng = Len(chn): lig = 1
        Do While lng > 0
          p = InStr(chn, Chr$(10)): Cells(lig, 3) = Left$(chn, p - 1)
          lng = lng - p: chn = Right$(chn, lng): lig = lig + 1
        Loop
      End Sub
      
      

      Dis-moi ce que tu en penses, et si ça te convient.

      Si ton problème est réglé, merci d'aller en haut de page
      pour cliquer sur « Marquer comme résolu ».

      Cordialement.  😊
       
      0
      1. Un grand merci Albkan, Ca marche très bien
        0
      2. Bonjour, je reviens vers vous,

        Le problème qui m'a rencontré est que: la cellule B1 est dynamique, si dans le premier exemple elle contient 5 dates, je vais avoir 5 nouvelles cellules remplies dans la ligne C, et après lorsque les données de la cellule B1 passent à seulement 3 dates, j'ai toujours les 5 cellules remplies de la colonne C dont 3 nouvelles valeurs et deux anciennes
        0