Effacer valeurs après validation dans un formulaire

Le
JeanYvesGascon
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ée=
s
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 :

' 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


' 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 :

' 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 :

' 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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #23955461
Bonjour,

Un exemple adapte le nom du listbox et le bouton de commande
qui lance la procédure.

Le code suivant demande que le contenu de la listbox soit renseigné
en utilisant la propriété RowSource du contrôle.


'-----------------------------------------
Private Sub CommandButton1_Click()
Dim Nb As Integer, A As Integer
Dim Ligne As String, T As Variant

With Me.ListBox1
'Nombre d'éléments dans le listbox
Nb = .ListCount - 1
'On boucle sur chacun des éléments et on met
'les éléments sélectionnées dans une variable
'On inverse l'ordre pour faciliter la suppression
'des lignes un peu plus loin
For A = Nb To 0 Step -1
If .Selected(A) = True Then
Ligne = Ligne & A + 1 & ","
End If
Next
'Si la ligne n'est pas vide, c'est qu'il y des
'lignes à suppprimer
If Ligne <> "" Then
'on enlève la dernière virgule de la chaîne de caractères
Ligne = Left(Ligne, Len(Ligne) - 1)
'Split requiert Excel 2000 ou ultérieur
'T est un array (tableau) de toutes les lignes à supprimer
T = Split(Ligne, ",")
'Une boucle sur chaque élément du tableau (array)
For A = 0 To UBound(T)
'Supprime la ligne entière dans la plage source
Range(.RowSource).Item(T(A), 1).EntireRow.Delete
Next
End If
End With
End Sub
'-----------------------------------------



MichD
------------------------------------------
"JeanYvesGascon" a écrit dans le message de groupe de discussion :


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 :

' 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


' 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 :

' 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 :

' 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
Publicité
Poster une réponse
Anonyme