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 17/10/2011, 12h53   #1
Invité de passage
 
Inscription : janvier 2009
Messages : 6
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : janvier 2009
Messages : 6
Points : 0
Points : 0
Par défaut Alimentation d'un Usf à partir de la cellule active

Bonjour,

Dans une feuille, il y a en
E6:E4000 un nom
F6:F4000 un prénom
G6:G4000 un n° de tél

je souhaiterais avoir un formulaire qui s'ouvre en faisant un double-
click sur une quelconque cellule de la colonne E
Donc, voici l'évenement déclenchant :

Code :
1
2
3
4
5
6
7
8
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel
As Boolean)
 
       If Target.Column = 5 Then
           UserForm2.Show
       End If
       Cancel = True
End Sub
Jusque là tout va bien ...

Dans mon UserForm2, je voudrais qu'il se passe ceci :
TextBox1 = valeur de la cellule active (En), valeur de référence pour
la suite
TextBox2 = valeur décalée (offset(0,1) sur la même ligne, cellule à
droite (Fn)
TextBox3 = valeur décalée (offset(0,2) sur la même ligne, cellule à
droite (Gn)

Là je bloques
Le tout étant de ne pas "débloquer"

Par la suite et après validation, je voudrais que la valeur de
Textbox1 retourne en (En) avec le format NomPropre(); idem pour
TextBox2 en (Fn) et TextBox3 en (Gn) avec la format spécial de numéro
de téléphone ....

Est ce possible ou suis je en train de rêver ???
Merci de vos éclairages

Cordialement

Jean-Yves
JeanYvesGascon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2011, 13h52   #2
Membre Expert
 
Avatar de rvtoulon
 
Homme Hervé
Agent Technique
Inscription : mars 2009
Messages : 823
Détails du profil
Informations personnelles :
Nom : Homme Hervé
Âge : 36
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Agent Technique
Secteur : Santé

Informations forums :
Inscription : mars 2009
Messages : 823
Points : 1 441
Points : 1 441
Bonjour, il ya beaucoup d'exemple dans le forum pour ce que tu souhaites faire.
pour afficher le contenu de la cellule active dans un textbox dans initialize du userform met :
Code :
1
2
3
4
5
Private Sub UserForm_Initialize()
Me.TextBox1 = ActiveCell
Me.TextBox2 = ActiveCell.Offset(0, 1)
Me.TextBox3 = ActiveCell.Offset(0, 2)
End Sub
__________________
@+

Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
Ou sur si ce n'est pas le cas
rvtoulon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2011, 14h33   #3
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Bonjour
Une autre proposition en utilisant une variable publique qui mémorise la ligne double cliquée.

Dans un module standard (déclarer la variable publique LaLig)
Code :
1
2
3
Option Explicit
 
Public LaLig As Long
Dans le module de Feuil1
Code :
1
2
3
4
5
6
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 
Cancel = True
LaLig = Target.Row
UserForm2.Show
End Sub
Dans le module de l'userform
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub UserForm_Initialize()
 
If LaLig > 0 Then
    With Worksheets("Feuil1")
        Me.TextBox1 = StrConv(.Range("E" & LaLig), vbProperCase)
        Me.TextBox2 = StrConv(.Range("F" & LaLig), vbProperCase)
        Me.TextBox3 = Format(.Range("G" & LaLig), "0# ## ## ## ##")
    End With
End If
End Sub
 
'A la fermeture
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
 
LaLig = 0
End Sub
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 17/10/2011, 14h41   #4
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Bonjour Mercatog

juste une question : pourquoi

Puisque

Code :
1
2
LaLig = Target.Row
UserForm2.Show

Cordialement

Edit: mercatog, merci de ta réponse ci dessous A@
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/10/2011, 14h48   #5
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Certes, mais dans le cas où l'userform est aussi ouvert d'une autre façon et non suite au double clique.
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h33.


 
 
 
 
Partenaires

Hébergement Web