Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/12/2011, 13h29   #1
Membre habitué
 
Homme Michael
Ingénieur qualité méthodes
Inscription : octobre 2010
Messages : 200
Détails du profil
Informations personnelles :
Nom : Homme Michael
Localisation : France, Aisne (Picardie)

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Industrie

Informations forums :
Inscription : octobre 2010
Messages : 200
Points : 115
Points : 115
Par défaut ecrire nom d'une forme dans une cellule

Bonjour,

je suis entrain de tester un truc qui ne marche pas ^^

je vous dis mon probleme

- j'ai une forme avec de l'écriture dedans : exemple : "Four"
- A coté, j'ai une cellule vide : "R2"

ce que je souhaite faire c'est quand je clique sur la forme "Four", le nom de la forme s'inscrit dans la cellule "R2".

j'ai fait une macro que j'ai affecté à la forme où l'on retrouve comme commande:
Code :
1
2
3
Sub test()
    Range("r2") = Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text
End Sub
le soucis vient du fait qu'il y a une erreur car la macro se lance sans selectionner la forme.

Ma question est donc: Commet puis parer ca?

merci
redstoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 14h24   #2
Membre du Club
 
Consultant KPI
Inscription : août 2010
Messages : 23
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant KPI

Informations forums :
Inscription : août 2010
Messages : 23
Points : 43
Points : 43
Dans le code de ta form "Four"
Code :
1
2
3
4
 
Private Sub UserForm_Click()
    Range("R2") = Me.Name
End Sub
Peut-être préfères-tu le comportement en appelant la procédure UserForm_Activate ?

J'ai répondu un peu vite... Ca devrait être plus pertinent avec ce code

Code :
1
2
3
4
5
6
7
8
9
10
 
Sub test()
    Dim myShape As Shape
    For Each myShape In Worksheets("Feuil1").Shapes
        If myShape.Name = Application.Caller Then
            Range("R2") = myShape.TextEffect.Text
            Exit For
        End If
    Next
End Sub
DeTraX est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/12/2011, 07h06   #3
Membre habitué
 
Homme Michael
Ingénieur qualité méthodes
Inscription : octobre 2010
Messages : 200
Détails du profil
Informations personnelles :
Nom : Homme Michael
Localisation : France, Aisne (Picardie)

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Industrie

Informations forums :
Inscription : octobre 2010
Messages : 200
Points : 115
Points : 115
bonjour,

ca marche parfaitement

je t'en remercie grandement ^^
redstoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h39.


 
 
 
 
Partenaires

Hébergement Web