J'ai une cellule qui contient plusieurs lignes (dans la même cellule les unes au dessous des autres) :
14.04.21 16:58:38 : Au Forum -
14.04.21 16:58:23 : Bonjour -
14.04.21 16:58:05 : à vous toutes et tous -
Celle-ci contient 3 textes séparés mais il peut y en avoir plusss.
Je ne crois pas que ce soit possible ... malgré mes recherches, je n'ai pas trouvé.
Sauriez-vous s'il est possible en code vba de copier l'une des lignes : la 1, la 2 ou la 3 ou une autre dans une autre cellule ?
Je joins un p'tit fichier test.
Avec mes remerciements,
Bonne fin de journée,
lionel
j'espère que tu as bien dormi. ton fichier en retour.
tes 2 premières feuilles sont inchangées ; j'ai ajouté une feuille "Comm" ; non, c'est pas "Communications", mais "Commentaire" ; va sur "Comm" ; tu peux voir qu'en A2, j'ai déjà saisi "L2" ; c'est pour le cas où plus tard, tu voudras un des commentaires d'une autre cellule de la feuille "Appels" ; la cellule active est B2, et elle est vide ; C2 aussi est vide.
Oui, mais la question est "Quelle partie veux -tu copier : la 1ère ligne, la seconde" ? Si le choix doit être précis (et pas fait au hasard), il faut bien un critère pour sélectionner cette ligne et pas une autre... Le n° de cette ligne, ou un mot clé, par exemple...
j'espère que tu as bien dormi. ton fichier en retour.
tes 2 premières feuilles sont inchangées ; j'ai ajouté une feuille "Comm" ; non, c'est pas "Communications", mais "Commentaire" ; va sur "Comm" ; tu peux voir qu'en A2, j'ai déjà saisi "L2" ; c'est pour le cas où plus tard, tu voudras un des commentaires d'une autre cellule de la feuille "Appels" ; la cellule active est B2, et elle est vide ; C2 aussi est vide.
en B2, saisis 1 ➯ en C2 : 1ère ligne de commentaire de Appels!L2 :
"14.04.21 16:58:38 : Au Forum -"
en B2, saisis 2 ➯ en C2 : 2ème ligne de commentaire de Appels!L2 :
"14.04.21 16:58:23 : Bonjour -"
en B2, saisis 3 ➯ en C2 : 3ème ligne de commentaire de Appels!L2 :
"14.04.21 16:58:05 : à vous toutes et tous -"
en B2, note que si tu saisis par exemple 0 ou 4, C2 est vide.
code VBA de ma fonction personnalisée CelComment() :
VB:
Function CelComment(adr$, k As Byte) As String
On Error GoTo Fin
Dim ca, i As Byte
ca = Split(Worksheets("Appels").Range(adr), vbLf)
For i = 0 To UBound(ca)
If i = k - 1 Then CelComment = RTrim$(ca(i)): Exit Function
Next i
Fin: 'erreur si la cellule spécifiée est incorrecte
End Function
formule en C2 : =SI(OU(A2="";B2="");"";CelComment(A2;B2))
bonus :
VB:
Sub ZoomAppels()
Application.ScreenUpdating = 0: [A1].Resize(, 14).Select
ActiveWindow.Zoom = True 'ActiveWindow.Zoom = 114
[A1].Select
End Sub
cette sub est dans le module codes, juste au-dessus de la fonction CelComment().
code VBA du module ThisWorkbook :
VB:
Private Sub Workbook_Open()
Worksheets("Appels").Select: ZoomAppels
End Sub
code VBA du module de Feuil2 :
VB:
Private Sub Worksheet_Activate()
ZoomAppels
End Sub
si besoin, tu peux demander une adaptation.
à te lire pour avoir ton avis.
Bonjour Soan, à toutes et à tous,
Je vous souhaite une belle journée
@ Soan : un grand merci à toi, ça fonctionne très bien
Je vais mieux tester dans la journée et je reviendrai te dire.
Merci pour le bonus
Bonne journée,
lionel