Microsoft 365 Copier une ligne ou une autre d'une cellule dans une autre cellule

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonsoir à toutes et à tous,

LOL toujours mes idées saugrenues ...

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 :)
 

Pièces jointes

  • test.xlsm
    22.9 KB · Affichages: 12
Dernière édition:
Solution
Bonjour Lionel, le fil,

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...​

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bsr Gérard,

Dans le fichier joint ma cellule les lignes sont déjà les unes en dessous des autres..

Ce je voudrais pouvoir faire c'est copier l'une des lignes, selon mon besoin dans une autre cellule.
C'est peut-être pas clair lol.

Sans titre.png

lionel,
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonsoir

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...

@ plus
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Lionel, le fil,

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. ;)

soan
 

Pièces jointes

  • test.xlsm
    24.2 KB · Affichages: 4

Discussions similaires

Statistiques des forums

Discussions
312 111
Messages
2 085 405
Membres
102 883
dernier inscrit
jameseyz