Bon, je viens de regarder. Peux-tu copier sans pb une zone de texte ? Oui ! Avec liaison ? Non ! (Excel 2003) (Pas prévu dans collage spécial)
Ceci dit, tu peux copier une cellule avec liaison et, dans Word, elle ressemblera à une zone de texte.
Bon, je viens de regarder. Peux-tu copier sans pb une zone de texte ? Oui ! Avec liaison ? Non ! (Excel 2003) (Pas prévu dans collage spécial)
Ceci dit, tu peux copier une cellule avec liaison et, dans Word, elle ressemblera à une zone de texte.
Donc il vaut mieux que j'abandonne ma boite de dialogue sous Word?
Ça me paraît une évidence.
Ceci dit, tu peux laisser ta question ouverte, je ne sais pas tout, tant s'en faut, et peut-être qu'un bbil, ou un SilkyRoad, ou un Cafeine ou un Adadavyvy ou Unautre... aura une solution... (?) Mais là, je ne promets rien...
A+
Ok la macro suivante fonctionne à peu près, et me permet d'utiliser une boite de dialogue où l'utilisateur entre une clef utilisée dans la suite de la macro sous le nom de Entree.
Je dis bien à peu près car le seul soucis restant est que ça colle bien une cellule avec liaison qui ressemble à une zone de texte mais celle ci est souvent mal placée.
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
23 Private Sub CommandButton1_Click() Dim XlAppli As Object Dim Entree As Variant Dim XlCl As Workbook Dim Xlfl As Worksheet Set XlAppli = CreateObject("Excel.Application") '< L'appli Excel Set XlCl = XlAppli.Workbooks.Open("C:\Modèles de documents\BdD excel.xls") '< le classeur Set Xlfl = XlCl.Worksheets("Feuil1") '< la feuille Entree = TextBox1.Text With Xlfl .Range(Entree).Copy ' < La Plage End With On Error Resume Next 'Colle la plage Excel avec liaison à l'emplacement du curseur Selection.PasteSpecial Link:=True, DataType:=wdPasteOLEObject, Placement:= _ wdInLine, DisplayAsIcon:=False DoEvents XlCl.Close False XlAppli.Quit Set XlAppli = Nothing Set XlCl = Nothing Set Xlfl = Nothing End Sub
Je veux dire par là que j'ai besoin que cette zone de texte s'insère dans un tableau, mais la cellule du tableau Word ne s'adapte pas (même après avoir coché "ajuster au contenu") ce qui fait que je n'ai que la partie basse de la zone de texte.
Peut-on arranger ça?
C'est ton Link:=True qui gâche tout sinon il y avait une autre solution...
Bon, le plus simple est d'ajuster le format de cellule dans Excel. J'ai bien dit, "le plus simple" parce que ça, je l'ai eu fait. Par contre, j'ignore s'il est possible de modifier le format d'une cellule Excel, insérée et liée dans Word.
J'ai trouvé une solution qui consiste à redimensionner l'objet
Pour avoir les bonnes dimensions, tu sélectionnes la cellule et tu modifies la taille en enregistrant la macro. Format -> Objet -> Onglet Taille
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 With ActiveDocument.InlineShapes(1) .Height = 10 .Width = 100 End With
A+
Ok j'ai mis le temps pour essayer mais, je ne sais pourquoi ni comment, word s'est enfin mis à adapter les tailles des cellules du tableau à leurs contenus.
J'ai cependant une autre question: le texte inséré se situe dans la troisième colonne de mon doc excel, et plusieurs cellules sont regoupées en catégories. Un nom est attribué à cette catégorie dans la première colonne, que j'aimerais pouvoir ajouter dans le tableau word.
Le hic, c'est que puisque j'ai nommé chaque cellule, je ne peux utiliser les A,B,C,etc.
J'ai pensé à l'algorithme suivant:
Dimension des variables
Utilisation des fonctions Set pour le classeur, la feuille, etc.
entree = le texte saisi par l'utilisateur dans une textbox, nom de la cellule à copier
cellule = la cellule de la 1ère colonne sur la même ligne qu'entree
Tant que le texte de cellule est ""
faire cellule = cellule au dessus
Si Texte de cellule est différent de ""
Alors copier/coller dans word (en s'inspirant de ce qui a déjà été programmé)
Fin de si
fait.
Je pense pouvoir me débrouiller avec les copiers/coller mais mes ennuis sont le tant que et le passage du nom de la cellule entree à la cellule de la 1ère colonne.
J'espère être suffisamment clair et que vous pourriez m'aider sur cette macro.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager