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 10/11/2011, 02h51   #1
Invité de passage
 
Homme Francois Poulin
Inscription : octobre 2011
Messages : 12
Détails du profil
Informations personnelles :
Nom : Homme Francois Poulin
Localisation : Canada

Informations forums :
Inscription : octobre 2011
Messages : 12
Points : 0
Points : 0
Par défaut Userform dynamique

Bonjour!!
j'aimerais bien si quelqu'un pouvait me donner une référence ou aller chercher de l'information afin de créer un userform dynamique( je veux dire par la, que les informations inscrites dans le userform seraient ensuite transférées dans une feuille afin d'etre par la suite traitée).

j'essaie de comprendre le fonctionnement des userform alors si quelqu'un pouvait m'aider, j'apprécierai beaucoup.

Merci d'avance
frank1365 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 03h26   #2
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 706
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : ex Observeur CGG / Analyste prog.

Informations forums :
Inscription : juin 2006
Messages : 1 706
Points : 3 627
Points : 3 627
Salut, déjà tu as cela http://silkyroad.developpez.com/VBA/UserForm/ ainsi que http://silkyroad.developpez.com/VBA/ControlesUserForm/ http://silkyroad.developpez.com/VBA/VisualBasicEditor/

Sinon un échantillon
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
Option Explicit
 
'   Sous VBE Menu Outils/Références cocher Microsoft Forms 2.0 Object Library
'       sinon parcourir et sélectionner c:\windows\system32\FM20.dll
 
Sub Création()
Dim UsfForm As Object
Dim NewB As MSForms.CommandButton
Dim TxtB As MSForms.TextBox
Dim i As Long, j As Long
Dim UsfName As String
Dim iLeft As Long, iTop As Long
 
    ShTest.Cells.Clear
 
    Application.VBE.MainWindow.Visible = False
    Set UsfForm = ThisWorkbook.VBProject.VBComponents.Add(3)
    With UsfForm
        .Properties("Caption") = "USF et TextBoxes Dynamiques"
        .Properties("Width") = 175
        .Properties("Height") = 375
    End With
    UsfName = UsfForm.Name
 
    Set NewB = UsfForm.Designer.Controls.Add("Forms.CommandButton.1")
    With NewB
        .Height = 28
        .Width = 70
        .Left = 50
        .Top = 315
        .Caption = "Quitter"
    End With
 
    iLeft = 10: iTop = 10
    For i = 1 To 12
        Set TxtB = UsfForm.Designer.Controls.Add("Forms.Textbox.1", , True)
        With TxtB
            .Width = 150
            .Height = 20
            .Left = iLeft
            .Top = iTop
            .BorderStyle = fmBorderStyleSingle
            .SpecialEffect = fmSpecialEffectFlat
 
            Select Case i
                Case 1, 5
                    .BackColor = &HC0E0FF
                Case Else
                    .BackColor = &HC0FFFF
            End Select
            .Tag = i
        End With
        iTop = iTop + 25
    Next i
 
    With UsfForm.CodeModule
        i = .CountOfLines
        If i = 2 Then
            .InsertLines i, "": i = i + 1
        Else
            i = 1
        End If
 
        .InsertLines i, "Const entrees_decimales_permises = "",0123456789": i = i + 1
        .InsertLines i, "Const entrees_alpha_permises = "" ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz": i = i + 1
        .InsertLines i, "Const Point = "".": i = i + 1
        .InsertLines i, "Const Virgule = "",": i = i + 1
        .InsertLines i, "": i = i + 1
 
        .InsertLines i, "Private Sub CommandButton1_Click()": i = i + 1
        .InsertLines i, "    Unload Me": i = i + 1
        .InsertLines i, "End Sub": i = i + 1
 
        For j = 1 To 12
            .InsertLines i, "": i = i + 1
            .InsertLines i, "Private Sub TextBox" & j & "_Change()": i = i + 1
            .InsertLines i, "Dim i As Integer": i = i + 1
            .InsertLines i, "   i = TextBox" & j & ".Tag": i = i + 1
            .InsertLines i, "   Select Case i": i = i + 1
            .InsertLines i, "       Case 1, 5": i = i + 1
            .InsertLines i, "           ShTest.Range(""A" & j & Chr(34) & ")=TextBox" & j & ".Text": i = i + 1
            .InsertLines i, "       Case Else": i = i + 1
            .InsertLines i, "           On Error Resume Next": i = i + 1
            .InsertLines i, "           ShTest.Range(""A" & j & Chr(34) & ")=CDbl(" & "TextBox" & j & ".Text)": i = i + 1
            .InsertLines i, "           Err.Clear": i = i + 1
            .InsertLines i, "   End Select": i = i + 1
            .InsertLines i, "End Sub": i = i + 1
 
            .InsertLines i, "": i = i + 1
            .InsertLines i, "Private Sub TextBox" & j & "_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)": i = i + 1
            .InsertLines i, "   Select Case TextBox" & j & ".Tag": i = i + 1
            .InsertLines i, "       Case 1, 5": i = i + 1
            .InsertLines i, "           If InStr(entrees_alpha_permises, Chr(KeyAscii)) = 0 Then KeyAscii = 0": i = i + 1
            .InsertLines i, "       Case Else": i = i + 1
            .InsertLines i, "           If KeyAscii = Asc(Point) Then": i = i + 1
            .InsertLines i, "               If InStr(TextBox" & j & ".Text, Virgule) = 0 Then": i = i + 1
            .InsertLines i, "                   KeyAscii = Asc(Virgule)": i = i + 1
            .InsertLines i, "               Else": i = i + 1
            .InsertLines i, "                   KeyAscii = 0": i = i + 1
            .InsertLines i, "               End If": i = i + 1
            .InsertLines i, "           ElseIf InStr(entrees_decimales_permises, Chr(KeyAscii)) = 0 Then": i = i + 1
            .InsertLines i, "               KeyAscii = 0": i = i + 1
            .InsertLines i, "           ElseIf InStr(TextBox" & j & ".Text, Virgule) > 0 And KeyAscii = Asc(Virgule) Then": i = i + 1
            .InsertLines i, "               KeyAscii = 0": i = i + 1
            .InsertLines i, "           End If": i = i + 1
            .InsertLines i, "   End Select": i = i + 1
            .InsertLines i, "End Sub": i = i + 1
        Next j
 
        .InsertLines i, "": i = i + 1
        .InsertLines i, "Private Sub UserForm_Initialize()": i = i + 1
        .InsertLines i, "   TextBox1.setfocus": i = i + 1
        .InsertLines i, "End Sub": i = i + 1
    End With
 
    VBA.UserForms.Add(UsfName).Show
    ThisWorkbook.VBProject.VBComponents.Remove VBComponent:=UsfForm
End Sub
__________________
Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Citer )
Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
Autre utilitaire : MZ Tools 3.0 VBA

Contribution : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator 1 2
kiki29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 09h41   #3
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
Citation:
Envoyé par frank1365 Voir le message
Bonjour!!
.. créer un userform dynamique( je veux dire par la, que les informations inscrites dans le userform seraient ensuite transférées dans une feuille afin d'etre par la suite traitée).
Bonjour,

attention à la terminologie ... kiki29 a bien répondu à ta question, mais quand on parle de Userform Dynamique ( ou d'objet) cela signifie que sa structure va évoluer via un code spécifique en fonction des évènements induits par l'utilisateur...

Si ta volonté est juste de transférer les données entrées dans un USF statique auparavant créé, c'est différent..

à toi de dire.

cordialement,

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 22h59   #4
Invité de passage
 
Homme Francois Poulin
Inscription : octobre 2011
Messages : 12
Détails du profil
Informations personnelles :
Nom : Homme Francois Poulin
Localisation : Canada

Informations forums :
Inscription : octobre 2011
Messages : 12
Points : 0
Points : 0
J'ai regarder le tout et je me sens perdu completement.
mon userform est déjà "créer" et j'essaie de transféré les informations qui sont saisie dans le formulaire dans des cellules sur une feuille.

Je ne vois pas comment faire cette partie de mon opération, pourrais tu m'aider?



Merci Didier,
il s'agit en effet plus de la deuxième option dont tu as parler, soit de transféré les données du formulaire vers des cellules.
Par contre j'ai penser dynamique car le contenu d'un choix, est une liste déroulante avec les options qui se trouvent dans une autre feuille.
frank1365 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 23h19   #5
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
pas sur d'avoir tout compris, mais par exemple le code pour ton bouton OK :

Code :
1
2
3
4
Private Sub CommandButton1_Click()
  ThisWorkbook.Sheets("Feuil1").Range("A1") = ListBox1
  Me.Hide
End Sub
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 23h21   #6
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
Bonjour,

voir la

http://excel.developpez.com/faq/inde...rcher=userform

http://silkyroad.developpez.com/VBA/UserForm/

etc... et les tutoriels

cordialement,

Didier
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h24.


 
 
 
 
Partenaires

Hébergement Web