[Macro Excel] Pb copier/coller depuis Word
ML08
-
ML0808 -
ML0808 -
Bonjour à tous,
Comme mon intitulé n'est pas limpide, je vais m'expliquer:
j'ai fait une macro qui copie un paragraphe de Word vers Excel. Le problème se produit quand se paragraphe comment par un tiret comme par exemple :
- ceci est mon paragraphe.
Quand la macro le selectionne, le copie et le colle dans une cellule excel, le texte se transforme en :
=- ceci est mon paragraphe.
Il prend le tiret pour un moins et donc transforme mon paragraphe en formule, qui s'affiche logiquement dans ma feuille par #NOM?
Quelqu'un a-t-il une idée pour résoudre ce problème?
D'avance merci,
Marc
Comme mon intitulé n'est pas limpide, je vais m'expliquer:
j'ai fait une macro qui copie un paragraphe de Word vers Excel. Le problème se produit quand se paragraphe comment par un tiret comme par exemple :
- ceci est mon paragraphe.
Quand la macro le selectionne, le copie et le colle dans une cellule excel, le texte se transforme en :
=- ceci est mon paragraphe.
Il prend le tiret pour un moins et donc transforme mon paragraphe en formule, qui s'affiche logiquement dans ma feuille par #NOM?
Quelqu'un a-t-il une idée pour résoudre ce problème?
D'avance merci,
Marc
A voir également:
- [Macro Excel] Pb copier/coller depuis Word
- Word et excel gratuit - Guide
- Word 2013 - Télécharger - Traitement de texte
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Tableau word - Guide
- Historique copier coller - Guide
2 réponses
Pourrais tu nous coller le contenu de ta macro pour qu'on voie comment c'est fait pour l'instant et où on pourrait rajouter une phrase magique?
Bonjour,
Bien sûr, voivi la partie du code (la macro est longue) qui gère ça. Regardez surtout la fin...
Merci d'avance,
Marc
' *********************** Recherche *************************
' Trouve le mot dans le document
wrdApp2.Selection.Find.ClearFormatting
With wrdApp2.Selection.Find
.ClearFormatting
' Mot proche
If Proche.Value = False Then
.Text = Mot.Value
' Mot exact
If MotEx.Value = True Then
.MatchWholeWord = True
End If
' Respect de la casse
If Casse.Value = True Then
.MatchCase = True
End If
End If
' Mot proche
If Proche.Value = True Then
.Text = MotSSA
.MatchCase = False
.MatchSoundsLike = True
End If
' Toutes les formes
If Forme.Value = True Then
.Text = Mot.Value
.MatchCase = False
.MatchAllWordForms = True
End If
.MatchWildcards = 0
.Forward = 1
.Replacement.Text = ""
.Replacement.ClearFormatting
.Execute ' recherche du mot1
End With
' Répéter l'opération jusqu'à ce qu'un mot soit trouvé
Do While wrdApp2.Selection.Find.Execute = True
wrdApp2.Selection.ParaGraphs(1).Range.Select
' Donne le numéro du paragraphe
Dim pg As Integer
pg = wrdApp2.Activedocument.Range(Start:=1, End:=wrdApp2.Selection.End).ParaGraphs.Count
' Copie le paragraphe contenant le résultat
wrdApp2.Selection.Copy
' Place le curseur à droite du paragraphe copié pour continuer la recherche dans la suite
' du document
wrdApp2.Selection.Moveright , Extend:=0
' Colle le résultat dans la feuille "Résultat"
RECH.Sheets("Résultats").Cells(m, 4).PasteSpecial Paste:=xlValues, Operation:=xlNone
Bien sûr, voivi la partie du code (la macro est longue) qui gère ça. Regardez surtout la fin...
Merci d'avance,
Marc
' *********************** Recherche *************************
' Trouve le mot dans le document
wrdApp2.Selection.Find.ClearFormatting
With wrdApp2.Selection.Find
.ClearFormatting
' Mot proche
If Proche.Value = False Then
.Text = Mot.Value
' Mot exact
If MotEx.Value = True Then
.MatchWholeWord = True
End If
' Respect de la casse
If Casse.Value = True Then
.MatchCase = True
End If
End If
' Mot proche
If Proche.Value = True Then
.Text = MotSSA
.MatchCase = False
.MatchSoundsLike = True
End If
' Toutes les formes
If Forme.Value = True Then
.Text = Mot.Value
.MatchCase = False
.MatchAllWordForms = True
End If
.MatchWildcards = 0
.Forward = 1
.Replacement.Text = ""
.Replacement.ClearFormatting
.Execute ' recherche du mot1
End With
' Répéter l'opération jusqu'à ce qu'un mot soit trouvé
Do While wrdApp2.Selection.Find.Execute = True
wrdApp2.Selection.ParaGraphs(1).Range.Select
' Donne le numéro du paragraphe
Dim pg As Integer
pg = wrdApp2.Activedocument.Range(Start:=1, End:=wrdApp2.Selection.End).ParaGraphs.Count
' Copie le paragraphe contenant le résultat
wrdApp2.Selection.Copy
' Place le curseur à droite du paragraphe copié pour continuer la recherche dans la suite
' du document
wrdApp2.Selection.Moveright , Extend:=0
' Colle le résultat dans la feuille "Résultat"
RECH.Sheets("Résultats").Cells(m, 4).PasteSpecial Paste:=xlValues, Operation:=xlNone