Bonjour,
Nouvellement inscrit sur le forum.
Je me lance avec ma première question...qui reste sans réponse traité (Ou alors je n'ai pas trouvé...)
Je construit a un applicatif pour le boulot sur Excel pour une aide à la saisie.
A cette occasion je met un liens avec une photo. (j'enregistre ce lien dans une cellule de ma "base de donnée", la photo n'est pas dans Excel)
A la fin de l'intervention, pour éditer un rapport, je créé un rapport Word complet a partir de rien (par de model Word)
Apres quelque galères j'arrive à mon but ...mais je n'arrive pas a redimensionner la photo que j'importe dans mon tableau. je voudrais fixer une largeur quelque soit la photo et conserver le ratio d'image.
J'arrive à l’insérer à partir d'une table de données créé avant ou je veux dans mon tableau. Cela me permet de "figer" le rendu.
Je précise que je ne suis pas à l'aise avec ces notions, c'est mon premier document généré de cette manière.
Mon code est issus de pas mal d'heure de tâtonnement et d'inspirations diverses
Je vous joins un extract simplifié du code
Nouvellement inscrit sur le forum.
Je me lance avec ma première question...qui reste sans réponse traité (Ou alors je n'ai pas trouvé...)
Je construit a un applicatif pour le boulot sur Excel pour une aide à la saisie.
A cette occasion je met un liens avec une photo. (j'enregistre ce lien dans une cellule de ma "base de donnée", la photo n'est pas dans Excel)
A la fin de l'intervention, pour éditer un rapport, je créé un rapport Word complet a partir de rien (par de model Word)
Apres quelque galères j'arrive à mon but ...mais je n'arrive pas a redimensionner la photo que j'importe dans mon tableau. je voudrais fixer une largeur quelque soit la photo et conserver le ratio d'image.
J'arrive à l’insérer à partir d'une table de données créé avant ou je veux dans mon tableau. Cela me permet de "figer" le rendu.
Je précise que je ne suis pas à l'aise avec ces notions, c'est mon premier document généré de cette manière.
Mon code est issus de pas mal d'heure de tâtonnement et d'inspirations diverses
Je vous joins un extract simplifié du code
VB:
with worddoc
k = 2
For i = 1 To UBound(Table_Finale) 'boucle de recherche sur la table recap du rapport
If Table_Finale(i, 4) = "X" Then 'test si le thème réglementaire a des observations
' si oui, ajout de la cellule contenant le theme
.Cell(k, 2).Merge MergeTo:=.Cell(k, 4) 'fusion des 3 cellules droite
With .Cell(k, 2)
.Range.Style = ("Sans interligne")
.Range.ParagraphFormat.Alignment = wdAlignParagraphLeft
.Range.Text = Table_Finale(i, 2)
.Range.Shading.BackgroundPatternColor = RGB(170, 200, 170)
.Borders.Enable = True
End With
k = k + 1 ' incrémentation de la position dans le tableau de sortie
'ajout de toute les observations/orientation contenue dans la table principale
For j = 1 To UBound(Tblo_Mac_unik) 'dans la table generale
If Tblo_Mac_unik(j, 2) = Table_Finale(i, 2) Then 'si on trouve le theme reglementaire alors
'insertion image
If Tblo_Mac_unik(j, 5) <> "" Then 'test si il y a un lien photo
.Cell(k, 2).Merge MergeTo:=.Cell(k, 4) 'fusion des 3 cellules droite
With .Cell(k, 2) 'ajout de l'observation
.Range.Style = ("Normal")
.Range.ParagraphFormat.Alignment = wdAlignParagraphLeft
.Range.InsertBefore Tblo_Mac_unik(j, 3)
.Borders(wdBorderRight).LineStyle = wdLineStyleSingle
.Borders(wdBorderLeft).LineStyle = wdLineStyleSingle
End With
'Mise en page
With .Cell(k + 1, 2) 'ajout de l'observation
.Borders(wdBorderLeft).LineStyle = wdLineStyleSingle
End With
With .Cell(k + 1, 4) 'ajout de l'observation
.Borders(wdBorderRight).LineStyle = wdLineStyleSingle
End With
With .Cell(k + 2, 2) 'ajout de l'observation
.Borders(wdBorderLeft).LineStyle = wdLineStyleSingle
End With
With .Cell(k + 2, 4) 'ajout de l'observation
.Borders(wdBorderRight).LineStyle = wdLineStyleSingle
End With
With .Cell(k + 3, 2) 'ajout de l'observation
.Borders(wdBorderLeft).LineStyle = wdLineStyleSingle
End With
With .Cell(k + 3, 4) 'ajout de l'observation
.Borders(wdBorderRight).LineStyle = wdLineStyleSingle
End With
'ajout photo
With .Cell(k + 2, 3) 'ajout de la photo
.Range.Style = ("Normal")
.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
.Borders.Enable = False
.Range.InlineShapes.AddPicture Filename:=Tblo_Mac_unik(j, 5), LinkToFile:=False, SaveWithDocument:=True
End With
k = k + 3
Else 'si pas de lien photo
.Cell(k, 2).Merge MergeTo:=.Cell(k, 4) 'fusion des 3 cellules droite
With .Cell(k, 2) 'ajout de l'observation
.Range.Style = ("Normal")
.Range.ParagraphFormat.Alignment = wdAlignParagraphLeft
.Range.Text = Tblo_Mac_unik(j, 3)
.Borders.Enable = True
End With
End If
k = k + 1 ' incrementation de la position dans le tableau de sortie
.Cell(k, 2).Merge MergeTo:=.Cell(k, 4) 'fusion des 3 cellules droite
With .Cell(k, 2) 'ajout de l'orientation
.Range.Style = ("Normal")
.Range.ParagraphFormat.Alignment = wdAlignParagraphLeft
.Range.Text = vbTab & "=> " & Tblo_Mac_unik(j, 4)
' .Range.Shading.BackgroundPatternColor = -603923969 '-738132071
.Borders.Enable = True
.Range.Font.Italic = True
End With
k = k + 1 ' incrementation de la position dans le tableau de sortie
.Cell(k, 2).Merge MergeTo:=.Cell(k, 4) 'fusion des 3 cellules droite
With .Cell(k, 2) 'ajout d'une cellule vide
.Range.Style = ("Normal")
.Range.ParagraphFormat.Alignment = wdAlignParagraphLeft
.Range.Text = ""
' .Range.Shading.BackgroundPatternColor = -603923969 '-738132071
.Borders.Enable = True
End With
k = k + 1 ' incrementation de la position dans le tableau de sortie
End If
Next j
End If
Next i
.Rows(k - 1).Delete 'suppression de la derniere ligne vide
End With
End If
End with