gondrule1
Messages postés33Date d'inscriptionlundi 29 septembre 2008StatutMembreDernière intervention29 février 2012
-
1 oct. 2008 à 15:02
gondrule1
Messages postés33Date d'inscriptionlundi 29 septembre 2008StatutMembreDernière intervention29 février 2012
-
2 oct. 2008 à 08:10
Bonjour,
J'ai un léger problème VBA/Word/Excel à soumettre à votre sagacité
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Voilà les données :
Dans un fichier Word, j'ai plusieurs langues et des codes qui sont communs à toutes les langues.
Dans un fichier Excel, j'ai une feuille/langue avec en 1ère colonne le code, l'intitulé en anglais dans la 2ème colonne (comme l'anglais est souvent utilisé, j'ai déjà décodé dans une autre macro dans Word, voilà pourquoi j'ai écrit " If Selection.Text <> "ID : 041 eng " Then d = Trim(Right(Selection.Text, 4 ))", parce qu'alors je n'ai pas besoin de décoder) l'intitulé dans la langue dans la 3ème colonne.
Les 2 premières macros ci-dessous me permettent :
de sélectionner la langue du texte,
de sélectionner le code
de couper le code
d'ouvrir Excel
Sub Command5_Click()
'Déclaration des variables
Dim appExcel As Excel.Application 'Application Excel
Dim wbExcel As Excel.Workbook 'Classeur Excel
Dim wsExcel As Excel.Worksheet 'Feuille Excel
'Ouverture de l'application
Set appExcel = CreateObject("Excel.Application")
'Ouverture d'un fichier Excel
Set wbExcel = appExcel.Workbooks.Open("C:\Documents and Settings\menegfa\Desktop\New Folder\plandeclassement.xls")
'wsExcel correspond à la première feuille du fichier
Set wsExcel = wbExcel.Worksheets(1)
appExcel.Visible = True
End Sub
Sub extrairelngue()
'
Dim d As String
Selection.Find.ClearFormatting
With Selection.Find
.Text = "ID : 041 ??? "
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute
If Selection.Text <> "ID : 041 eng " Then d = Trim(Right(Selection.Text, 4))
Quand je colle le résultat de la macro Excel "manuellement"dans Word, ça me colle une cellule et pas que le texte (et ça m'oblige à faire un clic droit pour "copy text only", certes, c'est pas la mort mais bon)
Connaissez vous une solution pour que dans Excel ne soit copiée que la valeur de la cellule et pas toute la cellule , (en modifiant la macro Excel, pas <?xml:namespace prefix st1 ns "urn:schemas-microsoft-com:office:smarttags" /??><st1:city w:st="on"><st1:place w:st="on">celle</st1:place></st1:city> de Word)?
D'autre part, j'aimerais bien à partir de Word lancer la macro correspondante à la langue sans devoir cliquer sur le bouton de la macro dans Excel.
Mais pour cela je pense qu'il faudrait que je fasse des Select Case en fonction de la valeur retournée par ma string d
Faut-il que je déclare les macros d'Excel dans Command5_Click pour pouvoirles appeler à la fin de ma macro Sub extrairelngue ?
(je voulais signaler que les String d déclarées dans Excel et dans Word n'ont rien à voir entre elles)
D'avance merci pour vos réponses et vos conseils
Bonne après-midi !
A voir également:
Lancement d'une macro Excel à partir de Word/copier uniquement la valeur de la c
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 1 oct. 2008 à 23:29
Concernant le lancement de la macro :
appExcel.Application.Run "'C:\Documents and Settings\menegfa\Desktop\New Folder\plandeclassement.xls'!Module1.cherchecodecze"
concernant la copie cela me parait difficile. Peut etre en passant par les fonctions du presse papier (ClipBoard) du VBA.
La meilleur solutionserait quand meme de le gerer l'ors du collé dans word.