Séparer les lignes d'une cellule

Résolu/Fermé
sofienexcel Messages postés 70 Date d'inscription vendredi 2 janvier 2015 Statut Membre Dernière intervention 20 février 2021 - 14 nov. 2016 à 21:52
 Utilisateur anonyme - 15 nov. 2016 à 13:20
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

Utilisateur anonyme
15 nov. 2016 à 13:20
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
Utilisateur anonyme
14 nov. 2016 à 22:15
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
sofienexcel Messages postés 70 Date d'inscription vendredi 2 janvier 2015 Statut Membre Dernière intervention 20 février 2021
14 nov. 2016 à 22:25
Un grand merci Albkan, Ca marche très bien
0
sofienexcel Messages postés 70 Date d'inscription vendredi 2 janvier 2015 Statut Membre Dernière intervention 20 février 2021
15 nov. 2016 à 09:00
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