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 08/10/2011, 20h15   #1
Nouveau Membre du Club
 
Inscription : juillet 2010
Messages : 236
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 236
Points : 36
Points : 36
Par défaut textbox à données variables

Bonsoir,

J'ai un tableau excel.
J'ai également un bouton qui me permet de créer une nouvelle ligne dans le tableau.
La dernière colonne du tableau un USF s'affiche après un double clic dans la cellule.

Ce que j'aimerais faire :
1° Quand on double clique, l'USF s'affiche (je sais faire)
2° L'utilisateur remplit le textbox
3° quand le textbox se ferme, les données saisies sont renvoyées faire les cellules H, I et J de la ligne où l'utilisateur a double cliqué (c'est ce que je ne sais pas faire).

Alors, comment faire ?

Merci
8e8eClo est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 08/10/2011, 20h36   #2
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
Bonsoir

1. Dans un module standard, déclare cette variable en public

Code :
1
2
Option Explicit
Public LaLigne As Long
2.Dans le module de ta feuille (évènement BeforDoubleClick)

Code :
1
2
3
4
5
6
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 
Cancel = True
LaLigne = Target.Row
UserForm1.Show
End Sub
3. Dans le bouton de validation des données de ton userform

Code :
1
2
3
4
5
6
7
8
9
Private Sub CommandButton1_Click()
 
If LaLigne > 0 Then
    Range("H" & LaLigne) = Me.TextBox1
    Range("I" & LaLigne) = Me.TextBox2
    LaLigne = 0
    Unload Me
End If
End Sub
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/10/2011, 21h46   #3
Nouveau Membre du Club
 
Inscription : juillet 2010
Messages : 236
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 236
Points : 36
Points : 36
Bonsoir,

ça fonctionne nikel.
Par contre j'ai oublié de préciser que j'aimerais également que quand on double clique sur la cellule le USF s'affiche et récupère les valeurs de la ligne.

J'ai tout bêtement fait ça mais ça ne fonctionne pas :
Code :
1
2
3
4
5
6
7
8
Private Sub Userform1_Initialize()
If LaLigne > 0 Then
    Me.TextBox1 = Range("H" & LaLigne)
    Me.TextBox2 = Range("I" & LaLigne)
    LaLigne = 0
    Unload Me
End If
End Sub
8e8eClo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2011, 22h06   #4
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
Attention à ce que tu écris
d'abord
Code :
Private Sub Userform1_Initialize()
Le 1 ne veut rien dire.

Ensuite le code est à mettre dans le module de ton userform:
Code :
1
2
3
4
5
6
7
Private Sub Userform_Initialize()
 
If LaLigne > 0 Then
    Me.TextBox1 = Range("H" & LaLigne)
    Me.TextBox2 = Range("I" & LaLigne)
End If
End Sub
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 20
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h42.


 
 
 
 
Partenaires

Hébergement Web