IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Effacer valeurs après validation dans formulaire


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 7
    Par défaut Effacer valeurs après validation dans formulaire
    Bonjour
    Voilà mon petit soucis :
    Lors de la validation d'un formulaire, je renseigne les cellules de la
    ligne (feuille B) depuis laquelle j'appelle le formulaire par un
    double click.
    Les sources de données se situent dans une autre feuille (A).
    Je souhaiterai qu'après la validation, toute les valeurs sélectionnées
    via une listBox soient effacées sur feuille A, soit la ligne entière,
    et qu'ensuite cette feuille soit triée selon les valeurs dans la
    première colonne.
    Voici comment les choses commencent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ' depuis la feuille "RIF", procédure d'appel du formulaire F_RIF_1 
    Private Sub Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel 
    As Boolean) 
            If Target.column = 7 then 
            F_RdV_1.Show 
            End if 
            Cancel = True 
    End Sub
    Puis, le formulaire s'ouvre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ' Initialisation du formulaire 
    Private Sub UserForm_Initialize() 
            ' Alimenter la ListBox (LB_Nom_P) 
            With LB_Nom_P 
                    .ColumnCount = 10             'dix valeurs sont nécessaires 
                    .ColumnWidths = "100;100;100"            ' seules 3 dont visibles 
                    .ColumnHeads = True                          ' étiquettes des colonnes 
                    .RowSource = "Transit_RdV_RIF!A2:L1OO"        ' données sources 
                    .MultiSelect = fmMultiSelectSingle 
            End With 
            Me.Label_UserName = Environ("UserName") 
            Me.Label_Now = Format (Now, "DD/MM/YYYY HH:MM") 
    End Sud
    Je choisis une ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ' La selection renseigne trois TextBox 
    Private Sub LB_Click() 
            TB_Nom_RIF.Value = LB_Nom_P.Value 
            TB_Prenom_RIF = LB_Nom_P.List (,1) 
            TB_Tel_RIF = TB_Nom_P.List (,2) 
    End Sub
    Enfin je valide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    ' Les dix valeurs selectionnées alimentent la Feuil "RIF!" depuis la 
    cellule.Offset (colonne 7) 
    Private Sub CommandButton_Click () 
            ActiveCell = TB_Nom_RIF.Value 
            ActiveCell.Offset(,1) = TB_Prenom_RIF.Value 
            ActiveCell.Offset(,2) = TB_Tel_RIF.Value 
            ActiveCell.Offset(,4) = LB_Nom_p.List (,3) 
            ActiveCell.Offset(,5) = LB_Nom_p.List (,4) 
            ActiveCell.Offset(,6) = LB_Nom_p.List (,5) 
            ActiveCell.Offset(,7) = LB_Nom_p.List (,6) 
            ActiveCell.Offset(,8) = LB_Nom_p.List (,7) 
            ActiveCell.Offset(,9) = LB_Nom_p.List (,8) 
            ActiveCell.Offset(,10) = LB_Nom_p.List (,9) 
            ActiveCell.Offset(,11) = LB_Nom_p.List (,10) 
            ActiveCell.Offset(,12) = LB_Nom_p.List (,11) 
            ActiveCell.Offset(,13) = Me.Label_UserName 
            ActiveCell.Offset(,14) = Me.Label_Now 
            ' lignes de code qui devront effacer les données sélectionnées 
            ' sur la ligne de la RowSource dans la Feuille "Transit_RdV_RIF!" 
    ' lignes de codes pour trier la Feuille "Transit_RdV_RIF!" 
            ' A2: O100 
            UnLoad F_RIF_1 
    End Sub

    Voilà tout est dit
    Merci de vos éclairages et vos commentaires
    Bon week-end à toutes et tous
    JeanYves

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Tu veux où trier?

    Sinon, ton code serait comme ceci (j'ai pas encore inséré le tri)

    Userform
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Private Sub UserForm_Initialize()
    Dim LastLig As Long
     
    With Worksheets("Transit_RdV_RIF")
        LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
    End With
    With Me.LB_Nom_P
        .ColumnCount = 12                            '12 valeurs sont nécessaires
        .ColumnWidths = "100;100;100;0;0;0;0;0;0;0;0;0"    ' seules 3 dont visibles
        .ColumnHeads = True                          ' étiquettes des colonnes
        .RowSource = "Transit_RdV_RIF!A2:L" & LastLig    ' données sources
        .MultiSelect = fmMultiSelectSingle
    End With
    Me.Label_UserName = Environ("UserName")
    Me.Label_Now = Format(Now, "DD/MM/YYYY HH:MM")
    End Sub
     
     
    Private Sub CommandButton_Click()
    Dim LaLig As Long
    Dim i As Byte
     
    LaLig = Me.LB_Nom_P.ListIndex
    If LaLig > -1 Then
        For i = 0 To 11
            ActiveCell.Offset(0, i) = Me.LB_Nom_P.List(LaLig, i)
        Next i
        ActiveCell.Offset(0, 12) = Me.Label_UserName
        ActiveCell.Offset(0, 13) = Me.Label_Now
     
        Worksheets("Transit_RdV_RIF").Rows(LaLig + 2).Delete
        Unload Me
    Else
        MsgBox "Selectionnez d'abord un item de la listbox"
    End If
    End Sub
    Feuille B
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     
    If Target.Column = 7 Then
        Cancel = True
        F_RdV_1.Show
    End If
    End Sub

Discussions similaires

  1. [1.x] Formulaire, définir une valeur après "validation"
    Par CyuLat dans le forum Symfony
    Réponses: 8
    Dernier message: 29/07/2010, 18h17
  2. Réponses: 8
    Dernier message: 04/08/2008, 10h54
  3. [PEAR][HTML_QuickForm] Comment afficher une page après validation du formulaire ?
    Par jpinfotech dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 27/11/2006, 15h58
  4. Valeur par défaut dans formulaire
    Par Levon dans le forum IHM
    Réponses: 3
    Dernier message: 24/11/2006, 15h32
  5. Récupération valeur après validation du formulaire
    Par Bluespike62 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/01/2006, 14h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo