Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Manipulation en Excel par VBA d'objets de dessin

12 réponses
Avatar
Blaise Cacramp
Selon : Bonjour ou bonsoir

Tout d'abord, je demande pas une réponse complète ici, cela me semble
impossible, mais des pistes Internet, ou livresques, mais alors éprouvées.
L'aide F1 est complètement muette à ce sujet.
Merci aussi de lire les destinataires de cette présente avant de faire un
scandale, je sais que l'expérience des autres fera profiter celles des uns.

Alors :

Je cherche à manipuler dans Excel (+/- 2002) et en VBA des objets de dessin,
(en fait le simple rectangle / zone de texte).
En Excel pour le support de ses fonctions de zoom ou de différentes
résolutions, notamment en largeur.
En Excel parce que je maîtrise l'automation à partir d'Access.
En VBA parce qu'il n'y a pas d'autres solutions.

Exemple de ce que je veux faire :
+ Créer des zones de texte / rectangle (shape) ;
+ Les dimensionner en hauteur et largeur ;
+ Modifier leurs caractéristiques graphiques (les fonds, couleurs, ...) ;
+ Y introduire éventuellement du texte ;
+ Les placer en regard de lignes et colonnes XL bien précises :
- soit en hauteur ;
- soit en ligne de base ;
- soit en libre ! ;
* sans que les côtés gauche ou droite collent aux parois gauche ou
droite des cellules XL

Excusez-moi d'avoir été si long...

Cdt, Blaise
---- ---- ----

10 réponses

1 2
Avatar
garnote
Ave Blaise,

Voici un exemple de ce qu'on peut faire avec Excel 2007.
Peut-être cela fonctionnera-t-il sous des versions antérieures.

Sub Rectangle()
Set ici = ActiveSheet
Set rect = ici.Shapes.AddShape(msoShapeRectangle, 30, 100, 200, 100)
With rect.Fill
.ForeColor.RGB = RGB(128, 0, 0)
.BackColor.RGB = RGB(170, 170, 170)
.TwoColorGradient msoGradientHorizontal, 1
End With
With rect.TextFrame.Characters
.Text = "MPFE"
.Font.Size = 16
.Font.Bold = True
.Font.Color = RGB(0, 0, 255)
End With
End Sub

Serge


"Blaise Cacramp" a écrit dans le message de news:

Selon : Bonjour ou bonsoir

Tout d'abord, je demande pas une réponse complète ici, cela me semble
impossible, mais des pistes Internet, ou livresques, mais alors éprouvées.
L'aide F1 est complètement muette à ce sujet.
Merci aussi de lire les destinataires de cette présente avant de faire un
scandale, je sais que l'expérience des autres fera profiter celles des
uns.

Alors :

Je cherche à manipuler dans Excel (+/- 2002) et en VBA des objets de
dessin, (en fait le simple rectangle / zone de texte).
En Excel pour le support de ses fonctions de zoom ou de différentes
résolutions, notamment en largeur.
En Excel parce que je maîtrise l'automation à partir d'Access.
En VBA parce qu'il n'y a pas d'autres solutions.

Exemple de ce que je veux faire :
+ Créer des zones de texte / rectangle (shape) ;
+ Les dimensionner en hauteur et largeur ;
+ Modifier leurs caractéristiques graphiques (les fonds, couleurs, ...) ;
+ Y introduire éventuellement du texte ;
+ Les placer en regard de lignes et colonnes XL bien précises :
- soit en hauteur ;
- soit en ligne de base ;
- soit en libre ! ;
* sans que les côtés gauche ou droite collent aux parois gauche ou
droite des cellules XL

Excusez-moi d'avoir été si long...

Cdt, Blaise
---- ---- ----





Avatar
MichDenis
Bonjour Blaise,

Tu peux mettre ce code dans un module access :

Si Excel n'est pas ouvert, ce code crée une instance d'Excel
un classeur est ajouté et le code crée une zone de texte
située sur la plage "C5:G10" de la première feuille du classeur.

Évidemment, ce code ne sert qu'à t'inspirer !
;-)

'------------------------------------------
Sub test()

Dim Xl As Object
Dim Wk As Object
Dim F As Object
Dim AGauche As Double, EnHaut As Double
Dim Largeur As Double, hauteur As Double

On Error Resume Next
Set Xl = GetObject(, "Excel.Application")
If Err <> 0 Then
Err.Clear
Set Xl = CreateObject("Excel.Application")
End If
Set Wk = Xl.Workbooks.Add
Xl.Visible = True 'optionnelle
Set F = Wk.Worksheets(1)
'en supposant que tu veux mettre la zone de texte
'exactement sur la plage "C5:G10"
With Wk.Worksheets(F.Name).Range("C5:G10")
EnHaut = .Top
AGauche = .Left
hauteur = .Height
Largeur = .Width
End With
Set Sh = F.Shapes.AddTextbox(msoTextOrientationHorizontal, _
AGauche, EnHaut, Largeur, hauteur)
With Sh
With .OLEFormat.Object
.Text = "Bonjour tout le monde"
With .Font
.Name = "Arial"
.Size = 12
.Bold = True
.ColorIndex = 3
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
End With
With .ShapeRange.Fill
.ForeColor.SchemeColor = 13
.Visible = msoTrue
.Solid
.Line.ForeColor.SchemeColor = 10
.Line.Visible = msoTrue
.Line.BackColor = RGB(152, 0, 25)
.Line.Style = msoLineSingle
End With
End With
End With
End Sub
'------------------------------------------



"Blaise Cacramp" a écrit dans le message de groupe de discussion :

Selon : Bonjour ou bonsoir

Tout d'abord, je demande pas une réponse complète ici, cela me semble
impossible, mais des pistes Internet, ou livresques, mais alors éprouvées.
L'aide F1 est complètement muette à ce sujet.
Merci aussi de lire les destinataires de cette présente avant de faire un
scandale, je sais que l'expérience des autres fera profiter celles des uns.

Alors :

Je cherche à manipuler dans Excel (+/- 2002) et en VBA des objets de dessin,
(en fait le simple rectangle / zone de texte).
En Excel pour le support de ses fonctions de zoom ou de différentes
résolutions, notamment en largeur.
En Excel parce que je maîtrise l'automation à partir d'Access.
En VBA parce qu'il n'y a pas d'autres solutions.

Exemple de ce que je veux faire :
+ Créer des zones de texte / rectangle (shape) ;
+ Les dimensionner en hauteur et largeur ;
+ Modifier leurs caractéristiques graphiques (les fonds, couleurs, ...) ;
+ Y introduire éventuellement du texte ;
+ Les placer en regard de lignes et colonnes XL bien précises :
- soit en hauteur ;
- soit en ligne de base ;
- soit en libre ! ;
* sans que les côtés gauche ou droite collent aux parois gauche ou
droite des cellules XL

Excusez-moi d'avoir été si long...

Cdt, Blaise
---- ---- ----
Avatar
JB
Bonjour,

http://boisgontierjacques.free.fr/pages_site/lesimages.htm

JB
http://boisgontierjacques.free.fr

On 29 juil, 20:09, "Blaise Cacramp" wrote:
Selon : Bonjour ou bonsoir

Tout d'abord, je demande pas une réponse complète ici, cela me semble
impossible, mais des pistes Internet, ou livresques, mais alors éprouv ées.
L'aide F1 est complètement muette à ce sujet.
Merci aussi de lire les destinataires de cette présente avant de faire un
scandale, je sais que l'expérience des autres fera profiter celles des uns.

Alors :

Je cherche à manipuler dans Excel (+/- 2002) et en VBA des objets de de ssin,
(en fait le simple rectangle / zone de texte).
En Excel pour le support de ses fonctions de zoom ou de différentes
résolutions, notamment en largeur.
En Excel parce que je maîtrise l'automation à partir d'Access.
En VBA parce qu'il n'y a pas d'autres solutions.

Exemple de ce que je veux faire :
+ Créer des zones de texte / rectangle (shape) ;
+ Les dimensionner en hauteur et largeur ;
+ Modifier leurs caractéristiques graphiques (les fonds, couleurs, ...) ;
+ Y introduire éventuellement du texte ;
+ Les placer en regard de lignes et colonnes XL bien précises :
    - soit en hauteur ;
    - soit en ligne de base ;
    - soit en libre ! ;
    * sans que les côtés gauche ou droite collent aux parois gauc he ou
droite des cellules XL

Excusez-moi d'avoir été si long...

Cdt, Blaise
----   ----   ----


Avatar
Blaise Cacramp
Selon : Bonjour ou bonsoir

J'ai vu vos réponses cet après-midi sur le Web via Google, mais je me
demande où est passé mon message original ?
Que celui qui l'a supprimé veuille bien s'expliquer. Merci.

Je vous remercie tous beaucoup et j'ai d'ailleurs déjà pu mettre en oeuvre
et en production des petites "bricoles".

Un très très grand merci.


Cdt, Blaise
---- ---- ----


"garnote" a écrit dans le message de news:

Ave Blaise,

Voici un exemple de ce qu'on peut faire avec Excel 2007.
Peut-être cela fonctionnera-t-il sous des versions antérieures.

Sub Rectangle()
Set ici = ActiveSheet
Set rect = ici.Shapes.AddShape(msoShapeRectangle, 30, 100, 200, 100)
With rect.Fill
.ForeColor.RGB = RGB(128, 0, 0)
.BackColor.RGB = RGB(170, 170, 170)
.TwoColorGradient msoGradientHorizontal, 1
End With
With rect.TextFrame.Characters
.Text = "MPFE"
.Font.Size = 16
.Font.Bold = True
.Font.Color = RGB(0, 0, 255)
End With
End Sub

Serge


"Blaise Cacramp" a écrit dans le message de news:

Selon : Bonjour ou bonsoir

Tout d'abord, je demande pas une réponse complète ici, cela me semble
impossible, mais des pistes Internet, ou livresques, mais alors
éprouvées.
L'aide F1 est complètement muette à ce sujet.
Merci aussi de lire les destinataires de cette présente avant de faire un
scandale, je sais que l'expérience des autres fera profiter celles des
uns.

Alors :

Je cherche à manipuler dans Excel (+/- 2002) et en VBA des objets de
dessin, (en fait le simple rectangle / zone de texte).
En Excel pour le support de ses fonctions de zoom ou de différentes
résolutions, notamment en largeur.
En Excel parce que je maîtrise l'automation à partir d'Access.
En VBA parce qu'il n'y a pas d'autres solutions.

Exemple de ce que je veux faire :
+ Créer des zones de texte / rectangle (shape) ;
+ Les dimensionner en hauteur et largeur ;
+ Modifier leurs caractéristiques graphiques (les fonds, couleurs, ...) ;
+ Y introduire éventuellement du texte ;
+ Les placer en regard de lignes et colonnes XL bien précises :
- soit en hauteur ;
- soit en ligne de base ;
- soit en libre ! ;
* sans que les côtés gauche ou droite collent aux parois gauche ou
droite des cellules XL

Excusez-moi d'avoir été si long...

Cdt, Blaise
---- ---- ----









Avatar
olegna
Dans le message : ,
Blaise Cacramp a écrit :
Selon : Bonjour ou bonsoir

J'ai vu vos réponses cet après-midi sur le Web via Google, mais je me
demande où est passé mon message original ?
Que celui qui l'a supprimé veuille bien s'expliquer. Merci.

Je vous remercie tous beaucoup et j'ai d'ailleurs déjà pu mettre en
oeuvre et en production des petites "bricoles".

Un très très grand merci.


Cdt, Blaise
---- ---- ----


<couic>

Bonjour (bonsoir?)
Comment peux-tu imaginer qu'un quelconque intervenant puisse avoir le
pouvoir de détruire un message qu'il n'a pas écrit!!
A part la magie noire!! Je te mets au défi de supprimer le mien!! Si un
quelconque modérateur (ce groupe est-il modéré?) a supprimé ton message
c'est qu'il contenait quelque chose d'inconvenant. Lis-tu les messages sur
NewsMicrosoft? Dans le cas contraire il peut y avoir des pertes.

--
/olegna/
/qui préfère utiliser le groupe sans communiquer son adresse email/
Avatar
GD
Bonsour® Blaise Cacramp avec ferveur ;o))) vous nous disiez :

J'ai vu vos réponses cet après-midi sur le Web via Google, mais je me
demande où est passé mon message original ?
Que celui qui l'a supprimé veuille bien s'expliquer. Merci.



From: "Blaise Cacramp"
Followup-To: microsoft.public.fr.access,microsoft.public.fr.office,microsoft.public.fr .powerpoint, microsoft.public.fr.word
Subject: Manipulation en Excel par VBA d'objets de dessin
Date: Wed, 29 Jul 2009 20:09:03 +0200
Avatar
mOmO
Mécé olegna Kazékri . . .
....................
A part la magie noire!! Je te mets au défi de supprimer le mien!! Si
un quelconque modérateur (ce groupe est-il modéré?) ...............



pas modéré, mais à la demande des MVP, Kro$oft peut supprimer des
messages; c'est le cas pour les spams de pub qui arrivent de temps en
temps
salut

--
mOmO en Ouakanz
http://chez-momo.fr/
forum dépannage : http://pcland.easyforum.fr/index.htm
Avatar
Blaise Cacramp
Selon : Bonjour ou bonsoir

Quoi, le followup est interdit ?
Je pose la question aux personnes/groupes compétents.
La manipulation des dessins a des aspects similaires dans les groupes
interrogés.

Dans mon cas, c'est à partir d'Access que je manipule les objets Excel ou
Word.


Cdt, Blaise
---- ---- ----


"GD" a écrit dans le message de news:
%
Bonsour® Blaise Cacramp avec ferveur ;o))) vous nous disiez :

J'ai vu vos réponses cet après-midi sur le Web via Google, mais je me
demande où est passé mon message original ?
Que celui qui l'a supprimé veuille bien s'expliquer. Merci.



From: "Blaise Cacramp"
Followup-To:
microsoft.public.fr.access,microsoft.public.fr.office,microsoft.public.fr.powerpoint,
microsoft.public.fr.word
Subject: Manipulation en Excel par VBA d'objets de dessin
Date: Wed, 29 Jul 2009 20:09:03 +0200
Avatar
Blaise Cacramp
> pas modéré, mais à la demande des MVP, Kro$oft peut supprimer des
messages; c'est le cas pour les spams de pub qui arrivent de temps en
temps
salut




Tout à fait Momo. Et cela ne se voit que sur le serveur de MS. Si le
message original est déjà distribué sur les autres serveurs de news dans le
monde et qu'une personne à répondu à partir d'un de ses serveurs, non
seulement le message original reste sur le serveur en question, mais les
réponses sont distribuées et reviennent chez MS.
C'est pour cette raison qu'il ne faut jamais répondre dans un newsgroup aux
spams... et c'est toujours pour cette raison que les spammeurs répondent à
leurs propres spams.(Voir seki djevojka sur ms...fr.access du 11 juillet)


Mes meilleures salutations
Avatar
Geo
Bonjour

Quoi, le followup est interdit ?
Je pose la question aux personnes/groupes compétents.
La manipulation des dessins a des aspects similaires dans les groupes interrogés.

Dans mon cas, c'est à partir d'Access que je manipule les objets Excel ou Word.



Normalement on met le message de départ sur plusieurs forums et on
indique un follow-up sur un seul de ces forums. Les gens intéressés
comme vous, savent alors où va se poursuivre cette conversation qui
s'annonce passionnante.
Là, c'est le contraire.
L'auteur ne savait plus sur quel forum il avait posé sa question et ne
l'a pas retrouvé.
Par contre sur les forums de suivis, dont Word, on a vu apparaître des
réponses sans le message original. Cela n'aide pas beaucoup à la
compréhension.


--
A+
1 2