Problème de UserForm

Dad17

XLDnaute Nouveau
Bonjour à toutes et à tous,
Je suis sous Windows XP PRO et Excel 2003
Voici mon problème :

J’ai un tableau sur une feuille nommée enregistrement, avec les colonnes suivantes :
P, Contact, Nom / Prénom, Adressemail, TelFixe, TelMobile, Envoie message, Poids, Départ, avec port.
Sur une autre feuille nommée liste j’ai les colonnes suivantes :
Nom / Prénom, Adressemail, TelFixe, TelMobile
Quand je clic avec le bouton de droite de la souris je copie les éléments sélectionnés dans la liste pour les coller dans enregistrement.
Je sais faire des UserForm avec une ListBox pour chaque colonne, mais ce n’est pas pratique et risque d’erreur.

Je voudrais faire une UserForm avec une ListBox qui me permette une sélection multiple mais je n’y parviens pas.

Voir pièce jointe

Merci par avance

Dad17
 
Dernière édition:

jp14

XLDnaute Barbatruc
Re : Problème de UserForm

Bonjour

Ci joint le fichier avec une interprétation de la demande.
Une solution avec combobox
une solution avec listbox et choix multiple

A tester

jp
 

Pièces jointes

  • Commande de noix de saint jacques.xls
    122 KB · Affichages: 73

Dad17

XLDnaute Nouveau
Re : Problème de UserForm

Bonsoir jp14,

Merci de répondre, mais la c'est exactement comme je l'avais fait en plus condensé.
Cela m'oblige toujours à faire un clic droit dans chaque colonne.
Et c'est ce que je veux éviter puisque chaque lignes représente des renseignement liés au nom et prénom.
Et c'est là que se trouve le risque d'erreur, sur une centaine de ligne, on ne sait pas si le N° telFixe est bien celui de la personne concernée.

Bonne soirée

Dad17
 

Dad17

XLDnaute Nouveau
Re : Problème de UserForm

Bonsoir à toutes et à tous,
Je suis obligé de m'absenter, alors ne vous tracassez pas trop la tête avec mon problème. demain il fera jour.
Merci quand même à tous les bénévoles qui se décarcasse pour nous dépanner.
0 demain

Dad17
 

Dad17

XLDnaute Nouveau
Re : Problème de UserForm

Bonjour à toutes et à tous,

Me revoilà avec mon problème après une bonne nuit de sommeil.
Il parait que la nuit porte conseil, hé bien elle ne m'a rien apportée.
Donc je fais de nouveau appel à vos lumières.

Bonne journée
Dad17
 

jp14

XLDnaute Barbatruc
Re : Problème de UserForm

Bonjour

Il suffit de modifier le code pour avoir les cellules des colonnes B,C,D,E

Code:
Private Sub UserForm_Initialize()
Dim col As String
Dim cellule As Range
Dim Ligdep As Integer

'paramètre
col = "b"
nomfeuille1 = "Enregistrement"
Ligdep = 4
'
With ListBox1
    .Clear
    .ColumnCount = 5
    .ColumnWidths = "90;90;80;80;0"

    .Width = 480
    '.BoundColumn = 1 ' combobox1.text contient le nom
    For Each cellule In Sheets(nomfeuille1).Range(col & Ligdep & ":" & col & Sheets(nomfeuille1).Range(col & Sheets(nomfeuille1).Columns(1).Cells.Count).End(xlUp).Row)
            .AddItem cellule.Value ' colonne B
            .List(.ListCount - 1, 1) = cellule.Offset(0, 1).Value' colonne C
            .List(.ListCount - 1, 1) = cellule.Offset(0, 2).Value' colonne D
            .List(.ListCount - 1, 2) = cellule.Offset(0, 3).Value' colonne E
            .List(.ListCount - 1, .ColumnCount - 1) = cellule.Row' info pour le numéro de ligne
        
    Next cellule
End With
End Sub

A tester

JP
 

Dad17

XLDnaute Nouveau
Re : Problème de UserForm

Bonjour JP14,
Merci pour la réponse.
Je viens de tester ton code.
Quand je fais un clic droit dans la cellule C7 à priori ça fonctionne, mais il manque l’adresse mail dans la ListBox, et je n’ais toujours que le Nom Prénom qui se trouve collé dans la feuille Enregistrement.
Je joins le fichier Excel avec les modifs, j’ai ajouté une apostrophe devant mon code.

@+
Dad17
 

Dad17

XLDnaute Nouveau
Re : Problème de UserForm

Bonjour Dranreb,
Merci pour la réponse.
Parce que je veux pouvoir filtrer ou trier les colonnes dans la feuille Enregistrement.
Mais je réserve quand même cette solution si il n'y en a pas d'autre
@+
Dad17
 

Dad17

XLDnaute Nouveau
Re : Problème de UserForm

Salut JP14,

Bonne nouvelle en cherchant un peu j'y suis arrivé. ci-dessous la solution.
Merci de m'avoir débloqué, je ne sais pas si j'y serais arrivé.

Private Sub NomPrénom_Click()
Me.Hide
ActiveSheet.Cells(Selection.Row, 3) = Me.NomPrénom.Column(0, NomPrénom.ListIndex)
ActiveSheet.Cells(Selection.Row, 4) = Me.NomPrénom.Column(1, NomPrénom.ListIndex)
ActiveSheet.Cells(Selection.Row, 5) = Me.NomPrénom.Column(2, NomPrénom.ListIndex)
ActiveSheet.Cells(Selection.Row, 6) = Me.NomPrénom.Column(3, NomPrénom.ListIndex)
Unload Me
End Sub


Private Sub UserForm_Initialize()
Dim col As String
Dim cellule As Range
Dim Ligdep As Integer

'paramètre
col = "b"
nomfeuille1 = "Liste"
Ligdep = 2
'
With NomPrénom
.Clear
.ColumnCount = 5
.ColumnWidths = "4cm;5cm;2cm;2cm"
.ColumnHeads = True

.Width = 4
For Each cellule In Sheets(nomfeuille1).Range(col & Ligdep & ":" & col & Sheets(nomfeuille1).Range(col & Sheets(nomfeuille1).Columns(1).Cells.Count).End(xlUp).Row)
.AddItem cellule.Value ' colonne B
.List(.ListCount - 1, 1) = cellule.Offset(0, 1).Value ' colonne C
.List(.ListCount - 1, 2) = cellule.Offset(0, 2).Value ' colonne D
.List(.ListCount - 1, 3) = cellule.Offset(0, 3).Value ' colonne E
.List(.ListCount - 1, .ColumnCount) = cellule.Row ' info pour le numéro de ligne

Next cellule
End With
End Sub

Merci encore à toutes celles et tous ceux qui donnent de leur temps pour dépanner les autres.

Dad17
 
Haut Bas