Userform et Combobox

L

L'Albatros

Guest
Bonsoir à toutes et à tous du Forum

Je ne suis pas très douée en VBA 'c'es le moins que l'on puisse dire), mais j'ai des idées, et pour me faciliter la tâche dans mon job de commerciale, j'aimerais réaliser quelques aides.
Pour certaines, j'y suis arrivée seule (j'en suis fière.... sourire)
mais j'ai besoin de votre aide pour :

J'aimerais à partir d'une sélection d'une feuille de calcul, réaliser dans un userform, une sorte de récapitulatif et d'état.
J'aimerais également éviter les doublons dans la Combobox utilisée.

Pour mieux comprendre, je vous joins mon fichier exemple.

Merci si vous pouvez m'aider, celà me ferait gagner beaucoup de temps, et me permettrais de savoir le faire pour d'autres choses...

Dans l'attente, Je vous souhaite à tous une bonne soirée.

Josianne [file name=EssaiCombo1.zip size=12152]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/EssaiCombo1.zip[/file]
 

Pièces jointes

  • EssaiCombo1.zip
    11.9 KB · Affichages: 16

Hervé

XLDnaute Barbatruc
Bonsoir josiane, le forum

En pièce jointe ton fichier modifié.

J'ai remplacé les textbox par des listbox bien plus 'maniable'.

salut
[file name=EssaiComboV2.zip size=17230]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/EssaiComboV2.zip[/file]
 

Pièces jointes

  • EssaiComboV2.zip
    16.8 KB · Affichages: 40

Hervé

XLDnaute Barbatruc
re josiane,

c'est moi, Hervé, juste pour corriger un petit truc qu'a laissé trainé mon clone :)

dans la macro :private Sub ComboBox1_Change()

rajoute la déclaration de variable pour bon : Dim bon As Boolean

merci et désolé.

salut

PS : cherche pas pour l'histoire du clone, c'est une histoire entre pascal76 et moi.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Hervé, l'Abatros, le Forum

Hervé, j'ai regardé ton travail en buvant mon Café et je n'ai pas pu résister d'y ajouter deux ou trois barbatrucs, tu sais les UserForm et moi c'est une longue histoire !!!

Mais sinon je tiens à signaler que ta version est très bien et amplement suffisante car probablement plus claire pour notre ami Albatros qui débute.

Moi c'était juste pour faire l'exercice en ce beau dimanche matin ;) du coup ça réduit même la taille du zip pourtant il devrait être plus gros, mais c'est les mystères des versions ! (fait sous 2000)

Bon Dimanche à vous tous et toutes
[ol]@+Thierry[/ol]
[file name=USF_ComboBox_Synchro_ListBox.zip size=16019]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/USF_ComboBox_Synchro_ListBox.zip[/file]
 

Pièces jointes

  • USF_ComboBox_Synchro_ListBox.zip
    15.6 KB · Affichages: 52
L

L'Albatros

Guest
Bonjour à toutes et tous
Bonjour Thierry
Bonjour Hervé

QUel plaisir en ouvrant son PC le matin de voir que le père Noël était déjà passé.
Votre aide m'est précieuse et répond pleinement à ce que je souhaitais.
De plus je vais essayer de bien comprendre le code pour pouvoir l'adapter à d'autres petits besoins pour mon application .
Bonne journée à vous tous et merci encore pour votre coup de pouce.

Josianne
 

laurent45

XLDnaute Occasionnel
Bonjour, le Fil, le Forum,

Je m'imisse dans le fil pour une question à Hervé.

Je voulais savoir comment fonctionnait le système data As Collection, dans le code suivant :

Private Sub UserForm_Initialize()
Dim data As Collection
Dim data1 As Collection
Dim i As Integer

Set data = New Collection
Set data1 = New Collection

Tablo = Range('a1').CurrentRegion

On Error Resume Next
For i = 2 To UBound(Tablo)
data.Add CStr(Tablo(i, 1)), CStr(Tablo(i, 1))
data1.Add CStr(Tablo(i, 2)), CStr(Tablo(i, 2))
Next i
On Error GoTo 0
J'ai voulu voir l'aide mais il me renvoit :

ErrObject (Explorateur d'objets)
Le module ErrObject contient des propriétés et des procédures permettant d'identifier et de traiter les erreurs d'exécution à l'aide de l'objet Err. Ces constantes peuvent être utilisées partout dans votre code.

Pour obtenir de l'aide sur une propriété ou une procédure spécifique

1 Sélectionnez la propriété ou la procédure dans la liste Membres de 'ErrObject'.
2 Cliquez sur le bouton '?'.
Mais je vois pas se que le modul eErrObject vient faire là !

Merci @+
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Laurent, le Fil, le Forum

Pour la petite histoire cette méthode 'New Collection' détournée pour ne construire qu'une liste sans doublon des Items a été introduite par 'Hurricane' dans le Forum XLD dans ce Fil : Lien supprimé

En résumé c'est assez simple, bien plus simple que de faire un algo pour trier puis ensuite éliminer les items en double...

Etape 1 = Compréhension du Principe
La méthode New Collection comporte deux champs virtuels :
Le premier l'Item Lui-Même
Le Second sa Clef unique d'enregistrement.
Cette clef ne peut être qu'unique ou bien nous buggons.

Etape 2 = Application détournée du Principe
En clair dans ce genre d'exercice, nous forçons pour rentrer en enregistrement :
l'Item en tant qu'Item
l'Item encore mais en tant que Clef d'enregistrement.
Par conséquent, VBA refusera catégoriquement d'ajouter un Item déjà contenu en Clef d'enregistrement.

Je pense que c'est assez clair, il suffit maintenant d'interpréter la syntax d'ajout de données dans une New Collection :

Data.Add CStr(Tablo(i, 1)),CStr(Tablo(i, 1))

La Partie Verte étant l'intégration en Collection de l'Item
La Partie Rouge étant l'intégration en Collection de la Clef Unique d'Enregistrement
Les deux parties séparées par une Virgule

A partir du moment où nous avons et connaissons ces éléments il suffit d'encadrer ces instructions par une gestion d'erreur 'Resume Next' et les doublons ne seront pas inclus dans notre Collection.

C'est souvent par des principes aussi simples comme celui-ci qu'un développeur s'évitera bien des lignes de codes qui en plus n'amélioreront en rien l'optimisation de la procédure.

Bon Dimanche
[ol]@+Thierry[/ol]

EDITION !!!
PS Ah zut c'était un exercice pour Hervé, ce n'était pas à moi de répondre, bon j'efface tout LOL !!!

Message édité par: _Thierry, à: 16/10/2005 12:28
 

laurent45

XLDnaute Occasionnel
Bonsoir _Thiery, Hervé,
Bonsoir le Forum,

Merci à vous deux pour :
1. l'exemple
2. l'explication

Comme je le suposais, je vais pouvoir intégrer ce style comme d'autre déjà emprunté à votre savoir faire pour optimiser mon projet.

Bonne Nuit
 
D

DESTRUKTOR

Guest
:wohoo: Bonsoir,
J'ai passé du temps pour trouver une solution et donner un coup de main pour changer mais vous allez vraiment trop vite et très technique... :eek: Je pense que je vais dder de l'aide pendant encore un moment....
:evil:
 

laurent45

XLDnaute Occasionnel
Bonsoir le Fil, DESTRUKTOR,

Rassures toi, je faisais pareil, quand mon Excel à planté, et que j'ai vu que je m'était fait doubler.

En attendant, fait comme moi : Continues d'essayer et prends des cours sur ce qui sort avant qu'on puisse le sortir lol. ;)

@+
 

Discussions similaires

Réponses
2
Affichages
320
Réponses
10
Affichages
381

Statistiques des forums

Discussions
312 327
Messages
2 087 314
Membres
103 515
dernier inscrit
Cherbil12345