votre avis

P

petitange

Guest
bonjour,
je realise un petit document en rtf est il possible de réaliser une macro qui prenne les valeurs du fichier rtf et le mette dans tableau excel

si c'est possible puis je avoir le code

merci
 
@

@+Thierry

Guest
Bonsoir Petit Ange

Voici un code qui devrait te convenir (le fichier Excel étant placé dans le même répertoire que le RTF) :

Option Explicit

Const TheRTFFile As String = "MonRichTextFormat.rtf"

Sub ImportRTF()
Dim TheRecord As String
Dim Container As Variant
Dim i As Integer, ii As Byte, iii As Byte
Dim L As Integer
Dim ThePath As String

ThePath = ThisWorkbook.Path & "\"

L = ActiveSheet.Range("A65536").End(xlUp).Row + 1
i = L

Open ThePath & TheRTFFile For Input As #1

   Do While Not EOF(1)
    Line Input #1, TheRecord
&nbsp;&nbsp;&nbsp;&nbsp;Container = Split(TheRecord, Chr(9)) '<< Chr(9) = VbTab // Chr(59) si on veut le ";" comme séparateur

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For ii = 1 To UBound(Container)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;With ActiveSheet
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Cells(i, ii) = Container(iii)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End With
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next ii
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i = i + 1
&nbsp;&nbsp;&nbsp;Loop
Close #1

End Sub


Bonne Soirée
@+Thierry
 
P

petitange

Guest
bonjour,
merci pour ta réponse mais sa ne fonctionne pas chez moi

quand je mets chr (59)
j'obtien t ceci:
}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial
je voudrais récupérer rien que le texte que j'ai marqué
merci
 
P

petitange

Guest
voila j'ai fias d'une autre manière mais j'ai un petit soucis

Quand j'ai retourchariot c'est ue je vais a la ligne suivante
et un ; a la colonne suivant
le probleme c'est que j''ai une petit carre quand je détecte le retour chariot
c'est a dire que j'ai un espace puis mon texte dans excel je voudrais qu'il n'y ai plus d'espace
merci

Me.RichTextBox1.Filename = "d:\Document.rtf"
Data = Me.RichTextBox1.Text
Container = Split(Data, Chr(13))

For i = 0 To UBound(Container)
Container1 = Split(Container(i), Chr(59))
For ii = 0 To UBound(Container1)
With ActiveSheet
.Cells(i + 1, ii + 1) = Container1(ii)
.Cells.WrapText = True
End With
Next ii
Next i
 

Discussions similaires

Statistiques des forums

Discussions
312 975
Messages
2 094 095
Membres
105 937
dernier inscrit
thibodu388