Bonjour,
je cherche une macro qui me permettrait de supprimer les alt + Entrée qui ne seraient pas suivis de textes...
Voir le fichier ci joint avec le résultat à obtenir.
Merci beaucoup pour votre aide
Bonjour,
je cherche une macro qui me permettrait de supprimer les alt + Entrée qui ne seraient pas suivis de textes...
Voir le fichier ci joint avec le résultat à obtenir.
Merci beaucoup pour votre aide
Bonjour,
Je n'ouvre jamais les classeurs joints.
Le caractère envoyé Alt-Entée dans une cellule équivaut en VBA à la valeur LineFeed soit vbLf
Je t'invite donc à t'intéresser à la fonction Split avec comme arguments la valeur de la cellule et vbLf ce qui te donnera une table
Ensuite tu parcours à l'aide d'une boucle les éléments de cette table et tu testes leurs longueurs, si la longueur est égal à 0 cela signifie qu'il n'y a pas de texte.
Tu fais donc la concaténation de chaque texte + vbLf que tu replaces dans la cellule
Philippe Tulliez
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer suret si celle-ci est pertinente pensez à voter
Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier
Merci Philippe pour cette piste.
J'ai essayé avec ce code :
Mais ça ne fonctionne pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Sub MARO() Dim FL1 As Worksheet, Cell As Range, Plage As Range Dim Var1 Dim LString As String Dim LArray() As String Dim I As Long Set FL1 = Worksheets("Test") With FL1 Set Plage = .Range("B2:C50") For Each Cell In Plage LString = Cell.Value LArray = Split(LString, vbLf) For I = 1 To UBound(LArray) ActiveCell.Value = LArray Next I Next End With Set FL1 = Nothing Set Plage = Nothing End Sub
Bonjour,
Tu pourrais essayer ainsi, en ajoutant l'objet Worksheet comme tu l'as fait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Dim I As Long Dim Cell As Range Dim Plage As Range Dim Tablo Dim strTemp As String Set Plage = Range("B2:C50") For Each Cell In Plage strTemp = "" If InStr(1, Cell.Text, vbLf) > 0 Then Tablo = Split(Cell.Text, vbLf) For I = 0 To UBound(Tablo) If Tablo(I) <> "" Then strTemp = strTemp & Tablo(I) & vbLf End If Next Cell.Value = Left(strTemp, Len(strTemp) - Len(vbLf)) End If Next
Merci beaucoup, voila qui m'a permis de régler mon problème.
Bonne journée...
Partager