Problèmes d'adaptation d'un formulaire de JB en multi-colonnes

Le
François
Bonjour à tous,

Dans un fichier jb-formulaires (onglet ChoixLettreBD ->
http://boisgontierj.free.fr/fichiers/jb-formulaire.zip ) JB nous propose
dans un Userform, une ComboBox qui, par la sélection d'une lettre de
l'alphabet, active le remplissage d'une ListBox sur 1 seule colonne

J'essaie d'adapter ce Formulaire en multi-colonnes, pour qu'il n'affiche non
plus une mais les 4 colonnes (contiguës du tableau) dans la ListBox.

J'ai donc modifié la ListBox ChoixNom de JB par :
ColumnCount -> 4
ColumnHead -> True
RowSource -> A2:D22 (= tableau inchangé de JB) -> la ListBox s'incrémente
alors correctement dans le VBA

Le problème est que lorsque le formulaire est lancé, cela bogue
Je n'arrive pas à comprendre comment corriger cela Seul l'appel du
formulaire est mis en jaune par le débogueur.

Sauriez-vous ce qu'il faut modifier, pour autant que ce que je cherche à
faire soit possible ?

Merci à tous

François
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
JB
Le #18307721
Bonjour,

Private Sub UserForm_Initialize()
Sheets("ChoixLettreBD").[A2:D1000].Sort key1:=[A2]
'-- A,B,C,
Me.ChoixLettre.AddItem "*"
For c = 65 To 65 + 25
Me.ChoixLettre.AddItem Chr(c)
Next c
'-- Liste des noms
derlig = [A65000].End(xlUp).Row
Me.ChoixNom.List = Range("A2:D" & derlig).Value
[A2].Select
maj
End Sub

Private Sub ChoixLettre_Change()
j = 0
Me.ChoixNom.Clear
If Me.ChoixLettre <> "*" Then
For Each c In Range([A2], [A65000].End(xlUp))
If Left(c.Value, 1) = Me.ChoixLettre Then
Me.ChoixNom.AddItem
Me.ChoixNom.List(j, 0) = c
Me.ChoixNom.List(j, 1) = c.Offset(0, 1)
Me.ChoixNom.List(j, 2) = c.Offset(0, 2)
Me.ChoixNom.List(j, 3) = c.Offset(0, 3)
j = j + 1
End If
Next c
Else
derlig = [A65000].End(xlUp).Row
Me.ChoixNom.List = Range("A2:D" & derlig).Value
End If
End Sub

Private Sub ChoixNom_Click()
[A:A].Find(ChoixNom, LookIn:=xlValues).Select
maj
End Sub
Sub maj()
nom = ActiveCell.Value
Me.Tph = ActiveCell.Offset(0, 1).Value
Me.Portable = ActiveCell.Offset(0, 2).Value
Me.Email = ActiveCell.Offset(0, 3).Value
End Sub

Private Sub b_validation_Click()
If Me.nom = "" Then
MsgBox "Saisir un nom!"
Me.nom.SetFocus
Exit Sub
End If
'---- transfert base
ActiveCell.Value = Application.Proper(Me.nom)
ActiveCell.Offset(0, 1).Value = Me.Tph
ActiveCell.Offset(0, 2).Value = Me.Portable
ActiveCell.Offset(0, 3).Value = Me.Email
Me.nom.SetFocus
End Sub
Private Sub b_fin_Click()
Unload Me
End Sub


JB
http://boisgontierjacques.free.fr

On 5 jan, 16:35, "François"
Bonjour à tous,

Dans un fichier jb-formulaires (onglet ChoixLettreBD ->http://boisgontier j.free.fr/fichiers/jb-formulaire.zip) JB nous propose
dans un Userform, une ComboBox qui, par la sélection d'une lettre de
l'alphabet, active le remplissage d'une ListBox sur 1 seule colonne ...

J'essaie d'adapter ce Formulaire en multi-colonnes, pour qu'il n'affiche non
plus une mais les 4 colonnes (contiguës du tableau) dans la ListBox.

J'ai donc modifié la ListBox ChoixNom de JB par :
ColumnCount -> 4
ColumnHead -> True
RowSource -> A2:D22 (= tableau inchangé de JB) -> la ListBox s'incr émente
alors correctement dans le VBA

Le problème est que lorsque le formulaire est lancé, cela bogue ...
Je n'arrive pas à comprendre comment corriger cela ... Seul l'appel du
formulaire est mis en jaune par le débogueur.

Sauriez-vous ce qu'il faut modifier, pour autant que ce que je cherche à
faire soit possible ?

Merci à tous

François


François
Le #18308671
Bonjour JB,

Merci beaucoup pour ton aide et la qualité de tout ce que tu nous mets sur
ton site.

J'ai remplacé le contenu du Userform par ce que tu m'a renvoyé, mais j'ai un
bog à l'intérieur du formulaire (Excel 2000) :

Erreur d'exécution 1004
Impossible de lire la propriété Find de la classe Range sur la ligne :
-> [A:A].Find(ChoixNom, LookIn:=xlValues).Select
dans Private Sub ChoixNom_Click()

Les seuls propriétés changées dans la ListBox sont :
ColumnCount -> 4 / ColumnHead -> True / RowSource -> A2:D22

Y-a-t-il un autre paramètre à corriger dans les propriétés ?

Merci

François
JB
Le #18309251
On 5 jan, 19:00, "François"
Bonjour JB,

Merci beaucoup pour ton aide et la qualité de tout ce que tu nous mets sur
ton site.

J'ai remplacé le contenu du Userform par ce que tu m'a renvoyé, mais j'ai un
bog à l'intérieur du formulaire (Excel 2000) :




http://cjoint.com/?bfuMbAxhuT

JB

Erreur d'exécution 1004
Impossible de lire la propriété Find de la classe Range sur la ligne :
->  [A:A].Find(ChoixNom, LookIn:=xlValues).Select
dans Private Sub ChoixNom_Click()

Les seuls propriétés changées dans la ListBox sont :
ColumnCount -> 4 / ColumnHead -> True / RowSource -> A2:D22

Y-a-t-il un autre paramètre à corriger dans les propriétés ?

Merci

François


JB
Le #18309441
http://cjoint.com/?bfvbw4ikff

JB

On 5 jan, 19:00, "François"
Bonjour JB,

Merci beaucoup pour ton aide et la qualité de tout ce que tu nous mets sur
ton site.

J'ai remplacé le contenu du Userform par ce que tu m'a renvoyé, mais j'ai un
bog à l'intérieur du formulaire (Excel 2000) :

Erreur d'exécution 1004
Impossible de lire la propriété Find de la classe Range sur la ligne :
->  [A:A].Find(ChoixNom, LookIn:=xlValues).Select
dans Private Sub ChoixNom_Click()

Les seuls propriétés changées dans la ListBox sont :
ColumnCount -> 4 / ColumnHead -> True / RowSource -> A2:D22

Y-a-t-il un autre paramètre à corriger dans les propriétés ?

Merci

François


François
Le #18310421
Cela marche super !

Ma version d'excel est donc tout à fait compatible ; mais je rencontre une
petite difficulté :
si j'ai des données en colonne 1 et 2 qui sont identiques, et ne se
différencient que par la colonne 3 ou la colonne 4, la sélection faite par
le process reprends toujours la 1ère adresse ...

Est-il possible, lorsque les noms s'affichent et que l'on ait des homonymes,
de les individualiser lors de la sélection dans la ListBox sur les critères
différentiels de la 3 ou 4ème colonne ...
Naïvement, en faisant afficher les autres colonnes, je pensais que la
différenciation par les lignes permettraient d'individualiser la bonne
cible.

Merci encore

François


"JB"

http://cjoint.com/?bfvbw4ikff

JB

On 5 jan, 19:00, "François"
Bonjour JB,

Merci beaucoup pour ton aide et la qualité de tout ce que tu nous mets sur
ton site.

J'ai remplacé le contenu du Userform par ce que tu m'a renvoyé, mais j'ai
un
bog à l'intérieur du formulaire (Excel 2000) :

Erreur d'exécution 1004
Impossible de lire la propriété Find de la classe Range sur la ligne :
-> [A:A].Find(ChoixNom, LookIn:=xlValues).Select
dans Private Sub ChoixNom_Click()

Les seuls propriétés changées dans la ListBox sont :
ColumnCount -> 4 / ColumnHead -> True / RowSource -> A2:D22

Y-a-t-il un autre paramètre à corriger dans les propriétés ?

Merci

François


François
Le #18310541
Pardon 'ai oublié de mettre le fichier en Cjoint ...

http://cjoint.com/?bfwUlIyD0D

François

"JB"

http://cjoint.com/?bfvbw4ikff

JB

On 5 jan, 19:00, "François"
Bonjour JB,

Merci beaucoup pour ton aide et la qualité de tout ce que tu nous mets sur
ton site.

J'ai remplacé le contenu du Userform par ce que tu m'a renvoyé, mais j'ai
un
bog à l'intérieur du formulaire (Excel 2000) :

Erreur d'exécution 1004
Impossible de lire la propriété Find de la classe Range sur la ligne :
-> [A:A].Find(ChoixNom, LookIn:=xlValues).Select
dans Private Sub ChoixNom_Click()

Les seuls propriétés changées dans la ListBox sont :
ColumnCount -> 4 / ColumnHead -> True / RowSource -> A2:D22

Y-a-t-il un autre paramètre à corriger dans les propriétés ?

Merci

François


JB
Le #18310821
http://cjoint.com/?bfxEjArZXM

JB

On 5 jan, 22:00, "François"
Pardon 'ai oublié de mettre le fichier en Cjoint ...

http://cjoint.com/?bfwUlIyD0D

François

"JB"

http://cjoint.com/?bfvbw4ikff

JB

On 5 jan, 19:00, "François"


> Bonjour JB,

> Merci beaucoup pour ton aide et la qualité de tout ce que tu nous met s sur
> ton site.

> J'ai remplacé le contenu du Userform par ce que tu m'a renvoyé, mai s j'ai
> un
> bog à l'intérieur du formulaire (Excel 2000) :

> Erreur d'exécution 1004
> Impossible de lire la propriété Find de la classe Range sur la lign e :
> -> [A:A].Find(ChoixNom, LookIn:=xlValues).Select
> dans Private Sub ChoixNom_Click()

> Les seuls propriétés changées dans la ListBox sont :
> ColumnCount -> 4 / ColumnHead -> True / RowSource -> A2:D22

> Y-a-t-il un autre paramètre à corriger dans les propriétés ?

> Merci

> François- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


François
Le #18313431
Bonjour JB,

Merci beaucoup pour ton aide (ou plutôt le travail que tu as fait pour moi)
C'est exactement ce que j'essayais de faire et cela marche parfaitement.

Merci encore et bonne journée

François

"JB"

http://cjoint.com/?bfxEjArZXM

JB

On 5 jan, 22:00, "François"
Pardon 'ai oublié de mettre le fichier en Cjoint ...

http://cjoint.com/?bfwUlIyD0D

François

"JB"

http://cjoint.com/?bfvbw4ikff

JB

On 5 jan, 19:00, "François"


> Bonjour JB,

> Merci beaucoup pour ton aide et la qualité de tout ce que tu nous mets
> sur
> ton site.

> J'ai remplacé le contenu du Userform par ce que tu m'a renvoyé, mais
> j'ai
> un
> bog à l'intérieur du formulaire (Excel 2000) :

> Erreur d'exécution 1004
> Impossible de lire la propriété Find de la classe Range sur la ligne :
> -> [A:A].Find(ChoixNom, LookIn:=xlValues).Select
> dans Private Sub ChoixNom_Click()

> Les seuls propriétés changées dans la ListBox sont :
> ColumnCount -> 4 / ColumnHead -> True / RowSource -> A2:D22

> Y-a-t-il un autre paramètre à corriger dans les propriétés ?

> Merci

> François- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Publicité
Poster une réponse
Anonyme