OVH Cloud OVH Cloud

Ajout Zone Texte en VBA

21 réponses
Avatar
Joël
Bonjour,

Tout se passe en VBA ! (mettez les intonnations voulues ;-) .... )

j'ai commencé par ajouter des cases à cocher (en VBA donc). En tâtonnant, je
suis parvenu les positionner exactement là où elles doivent être.

Je voudrais faire la même chose avec des zones de texte.

En revanche, j'aimerais ne plus être obligé de "tâtonner", et faire en sorte
que la zone de texte (à laquelle je souhaite affecter une macro toujours en
VBA) s'affiche en plein milieu d'une cellule déterminée.

Si vous avez une idée, je suis preneur...

Merci !

--


Bien Cordialement

Joël GARBE
+33 6 60 58 20 68
joel@joelgarbe.fr

10 réponses

1 2 3
Avatar
garnote
Salut Joël,

Est-ce que ça peut t'aider ?

Sub ZoneTexte()
Set ici = ActiveCell
T = ici.Top
L = ici.Left + ActiveCell.Width
Set un = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _
L, T, 100, 50)
End Sub

Serge

"Joël" a écrit dans le message de news:
bo8ftb$j6h$
Bonjour,

Tout se passe en VBA ! (mettez les intonnations voulues ;-) .... )

j'ai commencé par ajouter des cases à cocher (en VBA donc). En tâtonnant,
je

suis parvenu les positionner exactement là où elles doivent être.

Je voudrais faire la même chose avec des zones de texte.

En revanche, j'aimerais ne plus être obligé de "tâtonner", et faire en
sorte

que la zone de texte (à laquelle je souhaite affecter une macro toujours
en

VBA) s'affiche en plein milieu d'une cellule déterminée.

Si vous avez une idée, je suis preneur...

Merci !

--


Bien Cordialement

Joël GARBE
+33 6 60 58 20 68





Avatar
Joël
OUI... Trop cool !!! Merci beaucoup

Maintenant, si ce n'est pas trop demander, j'aimerais affecter à cette zone
de texte, une macro, avec passage d'argument, comme quoi, quand on clique
sur la zone de texte, il faut agir sur la colonne (en d'autre terme,
j'aimerais connaître la référence de la cellule sur laquelle est positionnée
la zone de texte ... tu me suis...)

Néanmoins déjà grand merci pour la précédente réponse...

--


Bien Cordialement

Joël GARBE
+33 6 60 58 20 68

"garnote" a écrit dans le message de news:
cPPpb.9407$
Salut Joël,

Est-ce que ça peut t'aider ?

Sub ZoneTexte()
Set ici = ActiveCell
T = ici.Top
L = ici.Left + ActiveCell.Width
Set un = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _
L, T, 100, 50)
End Sub

Serge

"Joël" a écrit dans le message de news:
bo8ftb$j6h$
Bonjour,

Tout se passe en VBA ! (mettez les intonnations voulues ;-) .... )

j'ai commencé par ajouter des cases à cocher (en VBA donc). En
tâtonnant,


je
suis parvenu les positionner exactement là où elles doivent être.

Je voudrais faire la même chose avec des zones de texte.

En revanche, j'aimerais ne plus être obligé de "tâtonner", et faire en
sorte

que la zone de texte (à laquelle je souhaite affecter une macro toujours
en

VBA) s'affiche en plein milieu d'une cellule déterminée.

Si vous avez une idée, je suis preneur...

Merci !

--


Bien Cordialement

Joël GARBE
+33 6 60 58 20 68









Avatar
garnote
Peut-être que :

Sub ZoneTexte()
Set ici = ActiveCell
T = ici.Top
L = ici.Left + ActiveCell.Width
Set un = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _
L, T, 100, 50)
'DoEvents facultatif : Pour que la zone de texte s'affiche
'avant d'avoir le message :
DoEvents
ref = ici.Offset(0, 1).Address
MsgBox ref
End Sub

Serge

"Joël" a écrit dans le message de news:
bo8i3a$n6i$
OUI... Trop cool !!! Merci beaucoup

Maintenant, si ce n'est pas trop demander, j'aimerais affecter à cette
zone

de texte, une macro, avec passage d'argument, comme quoi, quand on clique
sur la zone de texte, il faut agir sur la colonne (en d'autre terme,
j'aimerais connaître la référence de la cellule sur laquelle est
positionnée

la zone de texte ... tu me suis...)

Néanmoins déjà grand merci pour la précédente réponse...

--


Bien Cordialement

Joël GARBE
+33 6 60 58 20 68

"garnote" a écrit dans le message de news:
cPPpb.9407$
Salut Joël,

Est-ce que ça peut t'aider ?

Sub ZoneTexte()
Set ici = ActiveCell
T = ici.Top
L = ici.Left + ActiveCell.Width
Set un = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal,
_


L, T, 100, 50)
End Sub

Serge

"Joël" a écrit dans le message de news:
bo8ftb$j6h$
Bonjour,

Tout se passe en VBA ! (mettez les intonnations voulues ;-) .... )

j'ai commencé par ajouter des cases à cocher (en VBA donc). En
tâtonnant,


je
suis parvenu les positionner exactement là où elles doivent être.

Je voudrais faire la même chose avec des zones de texte.

En revanche, j'aimerais ne plus être obligé de "tâtonner", et faire en
sorte

que la zone de texte (à laquelle je souhaite affecter une macro
toujours



en
VBA) s'affiche en plein milieu d'une cellule déterminée.

Si vous avez une idée, je suis preneur...

Merci !

--


Bien Cordialement

Joël GARBE
+33 6 60 58 20 68













Avatar
Joël
Cette fois-ci, cela ne semble pas répondre à ma question. Mais merci quand
même.

En fait, je souhaite, une fois la zone créée en VBA, que l'orsque
l'utilisateur clique physiquement sur la zone de texte, une macro affecvtée
à la zone récupère la référence de la cellule sur laquelle se trouve
positionnée la zone de texte. (et non pas récupérer cette référence en VBA
lorsque la zone par elle-même est créée !)


Bon courage...

--


Bien Cordialement

Joël GARBE
+33 6 60 58 20 68

"garnote" a écrit dans le message de news:
u4Qpb.9409$
Peut-être que :

Sub ZoneTexte()
Set ici = ActiveCell
T = ici.Top
L = ici.Left + ActiveCell.Width
Set un = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _
L, T, 100, 50)
'DoEvents facultatif : Pour que la zone de texte s'affiche
'avant d'avoir le message :
DoEvents
ref = ici.Offset(0, 1).Address
MsgBox ref
End Sub

Serge

"Joël" a écrit dans le message de news:
bo8i3a$n6i$
OUI... Trop cool !!! Merci beaucoup

Maintenant, si ce n'est pas trop demander, j'aimerais affecter à cette
zone

de texte, une macro, avec passage d'argument, comme quoi, quand on
clique


sur la zone de texte, il faut agir sur la colonne (en d'autre terme,
j'aimerais connaître la référence de la cellule sur laquelle est
positionnée

la zone de texte ... tu me suis...)

Néanmoins déjà grand merci pour la précédente réponse...

--


Bien Cordialement

Joël GARBE
+33 6 60 58 20 68

"garnote" a écrit dans le message de news:
cPPpb.9407$
Salut Joël,

Est-ce que ça peut t'aider ?

Sub ZoneTexte()
Set ici = ActiveCell
T = ici.Top
L = ici.Left + ActiveCell.Width
Set un ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal,
_


L, T, 100, 50)
End Sub

Serge

"Joël" a écrit dans le message de news:
bo8ftb$j6h$
Bonjour,

Tout se passe en VBA ! (mettez les intonnations voulues ;-) .... )

j'ai commencé par ajouter des cases à cocher (en VBA donc). En
tâtonnant,


je
suis parvenu les positionner exactement là où elles doivent être.

Je voudrais faire la même chose avec des zones de texte.

En revanche, j'aimerais ne plus être obligé de "tâtonner", et faire
en




sorte
que la zone de texte (à laquelle je souhaite affecter une macro
toujours



en
VBA) s'affiche en plein milieu d'une cellule déterminée.

Si vous avez une idée, je suis preneur...

Merci !

--


Bien Cordialement

Joël GARBE
+33 6 60 58 20 68

















Avatar
garnote
Salut Joël,

Une piste. Associe la macro «Macro1» à une zone de texte quelconque.
Alors la macro «Macro2» s'exécutera quand tu cliqueras sur une zone de
texte.
après avoir récupéré la ligne et la colonne de la cellule située en haut à
gauche
de la zone de texte cliquée.

Dim ligne As Integer
Dim colonne As Integer
____________________

Sub Macro1()
Dim objet As String
objet = Application.Caller
Set ici = ActiveSheet.Shapes(objet)
colonne = ici.TopLeftCell.Column
ligne = ici.TopLeftCell.Row
Call Macro2
End Sub

Sub Macro2()
Range(Cells(ligne, colonne), Cells(ligne + 5, colonne)). _
Interior.ColorIndex = 3
End Sub

Est-ce mieux ainsi ?

Serge


"Joël" a écrit dans le message de news:
bo8j75$onj$
Cette fois-ci, cela ne semble pas répondre à ma question. Mais merci quand
même.

En fait, je souhaite, une fois la zone créée en VBA, que l'orsque
l'utilisateur clique physiquement sur la zone de texte, une macro
affecvtée

à la zone récupère la référence de la cellule sur laquelle se trouve
positionnée la zone de texte. (et non pas récupérer cette référence en VBA
lorsque la zone par elle-même est créée !)


Bon courage...

--


Bien Cordialement

Joël GARBE
+33 6 60 58 20 68

"garnote" a écrit dans le message de news:
u4Qpb.9409$
Peut-être que :

Sub ZoneTexte()
Set ici = ActiveCell
T = ici.Top
L = ici.Left + ActiveCell.Width
Set un = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal,
_


L, T, 100, 50)
'DoEvents facultatif : Pour que la zone de texte s'affiche
'avant d'avoir le message :
DoEvents
ref = ici.Offset(0, 1).Address
MsgBox ref
End Sub

Serge

"Joël" a écrit dans le message de news:
bo8i3a$n6i$
OUI... Trop cool !!! Merci beaucoup

Maintenant, si ce n'est pas trop demander, j'aimerais affecter à cette
zone

de texte, une macro, avec passage d'argument, comme quoi, quand on
clique


sur la zone de texte, il faut agir sur la colonne (en d'autre terme,
j'aimerais connaître la référence de la cellule sur laquelle est
positionnée

la zone de texte ... tu me suis...)

Néanmoins déjà grand merci pour la précédente réponse...

--


Bien Cordialement

Joël GARBE
+33 6 60 58 20 68

"garnote" a écrit dans le message de news:
cPPpb.9407$
Salut Joël,

Est-ce que ça peut t'aider ?

Sub ZoneTexte()
Set ici = ActiveCell
T = ici.Top
L = ici.Left + ActiveCell.Width
Set un > ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal,
_


L, T, 100, 50)
End Sub

Serge

"Joël" a écrit dans le message de news:
bo8ftb$j6h$
Bonjour,

Tout se passe en VBA ! (mettez les intonnations voulues ;-) .... )

j'ai commencé par ajouter des cases à cocher (en VBA donc). En
tâtonnant,


je
suis parvenu les positionner exactement là où elles doivent être.

Je voudrais faire la même chose avec des zones de texte.

En revanche, j'aimerais ne plus être obligé de "tâtonner", et
faire





en
sorte
que la zone de texte (à laquelle je souhaite affecter une macro
toujours



en
VBA) s'affiche en plein milieu d'une cellule déterminée.

Si vous avez une idée, je suis preneur...

Merci !

--


Bien Cordialement

Joël GARBE
+33 6 60 58 20 68





















Avatar
garnote
C'est ça qu'il faut copier dans un module standard.
La ligne de séparation que j'avais insérée génère une erreur !

Dim ligne As Integer
Dim colonne As Integer
Sub Macro1()
Dim objet As String
objet = Application.Caller
Set ici = ActiveSheet.Shapes(objet)
colonne = ici.TopLeftCell.Column
ligne = ici.TopLeftCell.Row
Call Macro2
End Sub
Sub Macro2()
Range(Cells(ligne, colonne), Cells(ligne + 5, colonne)). _
Interior.ColorIndex = 3
End Sub

Serge
Avatar
Frédéric Sigonneau
Bonsoir,

Essaye ce genre de code (attention à la syntaxe du passage de paramètre) :

'================== Sub ZoneTexte()
Set ici = ActiveCell
T = ici.Top
L = ici.Left
W = ici.Width
H = ici.Height
Set un = ActiveSheet.Shapes. _
AddTextbox(msoTextOrientationHorizontal, L, T, W, H * 2)
un.OnAction = "'MaMacro """ & ici.Address & """'"
End Sub

Sub MaMacro(Adr)
Range(Adr).EntireColumn.Interior.ColorIndex = 3
End Sub
'==================
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


OUI... Trop cool !!! Merci beaucoup

Maintenant, si ce n'est pas trop demander, j'aimerais affecter à cette zone
de texte, une macro, avec passage d'argument, comme quoi, quand on clique
sur la zone de texte, il faut agir sur la colonne (en d'autre terme,
j'aimerais connaître la référence de la cellule sur laquelle est positionnée
la zone de texte ... tu me suis...)

Néanmoins déjà grand merci pour la précédente réponse...

--

Bien Cordialement

Joël GARBE
+33 6 60 58 20 68

"garnote" a écrit dans le message de news:
cPPpb.9407$
Salut Joël,

Est-ce que ça peut t'aider ?

Sub ZoneTexte()
Set ici = ActiveCell
T = ici.Top
L = ici.Left + ActiveCell.Width
Set un = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _
L, T, 100, 50)
End Sub

Serge

"Joël" a écrit dans le message de news:
bo8ftb$j6h$
Bonjour,

Tout se passe en VBA ! (mettez les intonnations voulues ;-) .... )

j'ai commencé par ajouter des cases à cocher (en VBA donc). En
tâtonnant,


je
suis parvenu les positionner exactement là où elles doivent être.

Je voudrais faire la même chose avec des zones de texte.

En revanche, j'aimerais ne plus être obligé de "tâtonner", et faire en
sorte

que la zone de texte (à laquelle je souhaite affecter une macro toujours
en

VBA) s'affiche en plein milieu d'une cellule déterminée.

Si vous avez une idée, je suis preneur...

Merci !

--


Bien Cordialement

Joël GARBE
+33 6 60 58 20 68











Avatar
Joël
Merci Serge, la solution semble parfaitement convenir.

Merci aussi Frédéric, en cas d'échec de la solution "Zone de Texte", j'avais
cru voir une solution de rechange sur ton site hier soir...

Encore MERCI !!!
--


Bien Cordialement

Joël GARBE
+33 6 60 58 20 68

"Joël" a écrit dans le message de news:
bo8ftb$j6h$
Bonjour,

Tout se passe en VBA ! (mettez les intonnations voulues ;-) .... )

j'ai commencé par ajouter des cases à cocher (en VBA donc). En tâtonnant,
je

suis parvenu les positionner exactement là où elles doivent être.

Je voudrais faire la même chose avec des zones de texte.

En revanche, j'aimerais ne plus être obligé de "tâtonner", et faire en
sorte

que la zone de texte (à laquelle je souhaite affecter une macro toujours
en

VBA) s'affiche en plein milieu d'une cellule déterminée.

Si vous avez une idée, je suis preneur...

Merci !

--


Bien Cordialement

Joël GARBE
+33 6 60 58 20 68





Avatar
Denis Michon
Bonjour Frédéric,


J'ai copié le code suivant dans un module... et si à partir de la feuille, je clique sur le textbox, rien ne se passe...
à moins que je sois "colorblind" ;-)

Il doit bien y avoir un truc quelque part que je n'exécute pas !


Salutations!



'================== Sub ZoneTexte()
Set ici = ActiveCell
T = ici.Top
L = ici.Left
W = ici.Width
H = ici.Height
Set un = ActiveSheet.Shapes. _
AddTextbox(msoTextOrientationHorizontal, L, T, W, H * 2)
un.OnAction = "'MaMacro """ & ici.Address & """'"
End Sub

Sub MaMacro(Adr)
Range(Adr).EntireColumn.Interior.ColorIndex = 3
End Sub
'==================
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


OUI... Trop cool !!! Merci beaucoup

Maintenant, si ce n'est pas trop demander, j'aimerais affecter à cette zone
de texte, une macro, avec passage d'argument, comme quoi, quand on clique
sur la zone de texte, il faut agir sur la colonne (en d'autre terme,
j'aimerais connaître la référence de la cellule sur laquelle est positionnée
la zone de texte ... tu me suis...)

Néanmoins déjà grand merci pour la précédente réponse...

--

Bien Cordialement

Joël GARBE
+33 6 60 58 20 68

"garnote" a écrit dans le message de news:
cPPpb.9407$
Salut Joël,

Est-ce que ça peut t'aider ?

Sub ZoneTexte()
Set ici = ActiveCell
T = ici.Top
L = ici.Left + ActiveCell.Width
Set un = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _
L, T, 100, 50)
End Sub

Serge

"Joël" a écrit dans le message de news:
bo8ftb$j6h$
Bonjour,

Tout se passe en VBA ! (mettez les intonnations voulues ;-) .... )

j'ai commencé par ajouter des cases à cocher (en VBA donc). En
tâtonnant,


je
suis parvenu les positionner exactement là où elles doivent être.

Je voudrais faire la même chose avec des zones de texte.

En revanche, j'aimerais ne plus être obligé de "tâtonner", et faire en
sorte

que la zone de texte (à laquelle je souhaite affecter une macro toujours
en

VBA) s'affiche en plein milieu d'une cellule déterminée.

Si vous avez une idée, je suis preneur...

Merci !

--


Bien Cordialement

Joël GARBE
+33 6 60 58 20 68











Avatar
Frédéric Sigonneau
Bonsoir Denis,

Je ne sais pas ce qui t'arrive Denis, je ne peux pas le reproduire..
Avec Excel 2002, quand je clique sur la zone de texte, la colonne où elle est
placée se colorie en rouge.. Désolé de ne pouvoir t'aider :(

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour Frédéric,

J'ai copié le code suivant dans un module... et si à partir de la feuille, je clique sur le textbox, rien ne se passe...
à moins que je sois "colorblind" ;-)

Il doit bien y avoir un truc quelque part que je n'exécute pas !

Salutations!

'================== > Sub ZoneTexte()
Set ici = ActiveCell
T = ici.Top
L = ici.Left
W = ici.Width
H = ici.Height
Set un = ActiveSheet.Shapes. _
AddTextbox(msoTextOrientationHorizontal, L, T, W, H * 2)
un.OnAction = "'MaMacro """ & ici.Address & """'"
End Sub

Sub MaMacro(Adr)
Range(Adr).EntireColumn.Interior.ColorIndex = 3
End Sub
'================== >
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


OUI... Trop cool !!! Merci beaucoup

Maintenant, si ce n'est pas trop demander, j'aimerais affecter à cette zone
de texte, une macro, avec passage d'argument, comme quoi, quand on clique
sur la zone de texte, il faut agir sur la colonne (en d'autre terme,
j'aimerais connaître la référence de la cellule sur laquelle est positionnée
la zone de texte ... tu me suis...)

Néanmoins déjà grand merci pour la précédente réponse...

--

Bien Cordialement

Joël GARBE
+33 6 60 58 20 68

"garnote" a écrit dans le message de news:
cPPpb.9407$
Salut Joël,

Est-ce que ça peut t'aider ?

Sub ZoneTexte()
Set ici = ActiveCell
T = ici.Top
L = ici.Left + ActiveCell.Width
Set un = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, _
L, T, 100, 50)
End Sub

Serge

"Joël" a écrit dans le message de news:
bo8ftb$j6h$
Bonjour,

Tout se passe en VBA ! (mettez les intonnations voulues ;-) .... )

j'ai commencé par ajouter des cases à cocher (en VBA donc). En
tâtonnant,


je
suis parvenu les positionner exactement là où elles doivent être.

Je voudrais faire la même chose avec des zones de texte.

En revanche, j'aimerais ne plus être obligé de "tâtonner", et faire en
sorte

que la zone de texte (à laquelle je souhaite affecter une macro toujours
en

VBA) s'affiche en plein milieu d'une cellule déterminée.

Si vous avez une idée, je suis preneur...

Merci !

--


Bien Cordialement

Joël GARBE
+33 6 60 58 20 68













1 2 3