Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Apprentissage userform...

  • Initiateur de la discussion martin13
  • Date de début
M

martin13

Guest
Bonjour à tous

Comme le titre l'indique je débute....ben vi , même à 53 ans faut bien s'y mettre..
Bon, soyons sérieux;
Sur une feuille, j'ai une liste de nom-prénom- âge par exemple.
J'ai créé une Userform(liste déroulante modifiable)
Ca fonctionne, je choisis un nom et il s'affiche dans une cellule.
Je refais l'expérience, et bien sûr ça marche, maisq à la place du résultat précedent.
Comment faire pour conserver les résultats, et qu'ils s'inscrivent chause fois comme nouvel enregistrement d'une feuille excel?

Merci pour vos réponses.
Martin
 
@

@+Thierry

Guest
Re à tous,

Aie Eric, bon courage en tout cas...

Pour Martin, "Full Comments" consiste pour moi à faire des commentaires explicatifs des codes entre chaque ligne (qui sera en vert dans un module VB comme étant du commentaire et non une ligne de code.

Si tu Copies/Colles intégralement mon text entre "Option Explicit" et le second "End Sub" dans le Private Module du UserForm qui contient une ListBox et un CommandButton, tu verras ce que je veux dire.

Pour le reste, il m'est difficile d'extrapoler plus sur les codes utilisés, mais une fois que tu auras ces lignes de code dans un module, sélectionne un mot qui te semble barbarre, par exemple "ListIndex" et tu presses la touche de fonction [F1] une fenêtre d'aide te donnera toutes les explications (exemple : excuse-moi je travaille en version amricaine au bureau)




ListIndex Property

Identifies the currently selected item in a ListBox or ComboBox.

Syntax
object.ListIndex [= Variant]

The ListIndex property syntax has these parts:

Part Description
object Required. A valid object.
Variant Optional. The currently selected item in the control.


Remarks

The ListIndex property contains an index of the selected row in a list. Values of ListIndex range from –1 to one less than the total number of rows in a list (that is, ListCount – 1). When no rows are selected, ListIndex returns –1. When the user selects a row in a ListBox or ComboBox, the system sets the ListIndex value. The ListIndex value of the first row in a list is 0, the value of the second row is 1, and so on.

Note If you use the MultiSelect property to create a ListBox that allows multiple selections, the Selected property of the ListBox (rather than the ListIndex property) identifies the selected rows. The Selected property is an array with the same number of values as the number of rows in the ListBox. For each row in the list box, Selected is True if the row is selected and False if it is not. In a ListBox that allows multiple selections, ListIndex returns the index of the row that has focus, regardless of whether that row is currently selected.

The ListIndex value is also available by setting the BoundColumn property to 0 for a comb@+Thierryo box or list box. If BoundColumn is 0, the underlying data source to which the combo box or list box is bound contains the same list index value as ListIndex.


Voilà qui devrait te faire un peu avancer, savoir utiliser l'aide VBA, ne pas hésiter à voir les exemples aussi...

Sinon reviens-nous et pose des questions précises sur ce que tu ne comprends pas.

Bon Courage
@+Thierry
 
M

martin13

Guest
Coucou, encore moi

Pardon, je manique un peu, et du coups suis allé prendre un bol d'air...
Thierry, tes explications me semblent simplent, et pour toi aussi surement, ais quand je veux les appliquer, je bloque... Parfois un petit exemple vaut mieux que des explications éctites (que j'apprécie, rassure toi)

Merci
Philippe Maritn
 
@

@+Thierry

Guest
Re: Apprentissage userform... Démo Rudiments Basics ListBox

Re Martin,

Voici dans la lignée des "Démos Rudiments Basics" voici une spéciale pour toi, afin que tu ne "maniques" plus !!!

Bonne Soirée
@+Thierry
 

Pièces jointes

  • USF_ListBox_Rudiments_Basics_V02.xls.zip
    16.2 KB · Affichages: 65
E

Eric C

Guest
Re le forum
Re Bonjour Thierry & Martin


Me revoilou, plus de peur que de mal (Réinstallation de Win & c'est reparti...). Eh bien Martin devrait être au top avec cette appli ? N'hésites surtout pas Martin mais essaies de joindre dans la mesure du possible un exemple avec description de ce que tu désires.
@ ++ Eric C
 
M

martin13

Guest
Bonsoir tout le monde

Tout en regardant le Foot à la TV, j'ai attrapé un virus (donnez moi une solution pour calmer VBA, ce virus de M.... (malice...hihi) m'a touché..
Bon soyons sérieux après ce pénalty vu en direct... (no comment)

Eric: Suis content de re.isntall et que tou fonctionne. Je ne te connais pas, mais je ne me faisais aucun soucis pour toi... qoui que ..tout peut arriver.
A l'avenir essaye d'arriver dans tes réponses en mme temps que Thierry et pas après..........(Te fache pas, je rigole, c mon humour..oki!)

Pour Thierry: J'ai pas vu et je vais voir ce que tu me proposes. Je ne manquerai pas de faire me s commentaires ensuite.
Merci à tous de vos réponses; J'apprécie cet esprit d'entraide.
A plus
Philippe Martin
 
M

martin13

Guest
Merci les mecs

Je découvre, analyse me fais une idée et ensuite, je vous soumettrai à la question..... (tu parles...)
Si je comprends pas tout, je demanderai, rassurez vous.
Merci à plus et bonne soirée à vous
Philippe Martin
 
M

martin13

Guest
Thierry

Merci pour cet exemple

soyons sérieux, je me permets faire mes commentaires en fonction mon attente (et n'y vois aucun mal)

- Il ne s'agit pas 'une liste déroulante modifiable ( nouveau nom non admis)
- Accepte les doublons!!!

Je sais je pinaille, mais ca va dans le sens de ce que je recherche. J'y arriverai (....heur grace à vous les mecs)

Vous êtes Géniaux (et c vrai, j'apprends, je progresse)
Philippe Martin
 
@

@+Thierry

Guest
Bonsoir Philippe

Ouh là là 2:2 et ciao Italia !!!

Bon sinon moi je fais ce que tu veux, mais attention ton sujet est très judiscieux et raisonnable, car les doublons impliquent des connaissances un peu plus avancées... Il faut procéder par étapes...

Autant pour moi en ce qui concerne "Zone de Liste Modifiable" c'est en effet une ComboBox et pas une ListBox....... Cependant pour commencer une "aventure USF" ce que je préconise c'est de maîtriser les "ListBox" et les "TextBox"...... Puis de se lancer dans les ComboBox qui, en fait son un Hybride entre les deux et reprenant pratiquement toutes les propriétés des deux Controls (TextBox / Listbox)... M'enfin on peut toujours passer son permis de conduire sur une Porsche, mais il est conseillé de s'entrainer sur une 2 chevaux...

Donc pour adapter "Texto" ma démo précédente, tu remplaces la "ListBox1" par une "ComboBox1" et tu changes le code comme suit :



Option Explicit '<<<<<<<< Option pour obliger à déclarer les variables !!!

'INITIALISATION DU USERFORM
Private Sub UserForm_Initialize()
Dim L As Integer '<<<<<<<< Déclartion de Variable de Type numérique entier

'ICI j'initialise "L" comme étant la première ligne non vide de la colonne A en partant du bas
L = Sheets("FeuilleSource").Range("A65536").End(xlUp).Row

'ICI je donne à la pripriété RowSource de la Liste, la Valeur de la Plage Source "A1:A x"
ComboBox1.RowSource = "FeuilleSource!A2:A" & L


CommandButton3.Visible = False 'Ici c'est pour jouer à cache cache... (lol)
End Sub



'CLICK SUR LE BOUTON VALIDER
Private Sub CommandButton1_Click()
Dim L As Integer '<<<<<<<< Déclartion de Variable de Type numérique entier

'ICI pareil que plus haut, mais "Plus 1" pour avoir la ligne Vide
L = Sheets("FeuilleCible").Range("A65536").End(xlUp).Row + 1

'ICI Je teste qu'il y a bien une sélection faite dans la ListBox
If ComboBox1.ListIndex <> -1 Then

'Si Oui :
'ICI Je reporte dans la première ligne vide de la Feuille "Source" la donné séléctionée
Sheets("FeuilleCible").Range("A" & L) = ComboBox1
End If

End Sub

'CLICK SUR LE BOUTON VOIR FEUILLECIBLE
Private Sub CommandButton2_Click()
'Ici une partie de cache avec les boutons
CommandButton2.Visible = False 'je cache CE Bouton
CommandButton3.Visible = True 'Je Montre l'AUTRE Bouton
Sheets("FeuilleCible").Activate
End Sub


'CLICK SUR LE BOUTON VOIR FEUILLECIBLE (idem que précédemment)
Private Sub CommandButton3_Click()
CommandButton2.Visible = True
CommandButton3.Visible = False
Sheets("FeuilleSource").Activate
End Sub

'CLICK SUR LE BOUTON VOIR EXIT
Private Sub CommandButton4_Click()
Unload Me 'je décharge le UserForm
End Sub

'DOUBLE CLICK SUR LA LISTEBOX
'(à noter que c'est la même macro que le CommandButton1 sans test puisqu'on est sûr qu'on a cliqué)
Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim L As Integer '<<<<<<<< Déclartion de Variable de Type numérique entier

'ICI pareil que plus haut, mais "Plus 1" pour avoir la ligne Vide
L = Sheets("FeuilleCible").Range("A65536").End(xlUp).Row + 1

'ICI Je reporte dans la première ligne vide de la Feuille "Source" la donné séléctionée
Sheets("FeuilleCible").Range("A" & L) = ComboBox1
End Sub


Maintenant ci-joint une démo qui chasse les doublons et trie les items sur une ComboBox... Mais comme son nom l'indique "USF_ComboBox_Tableau_Collection" on est sorti de la série des démos du type "Rudiments_Basics"... Enfin Just For The Fun !!! et sorry pour nos amis Italiens !!! (vont faire la gueule demain !!!)

Bonne nuit
@+Thierry
 

Pièces jointes

  • USF_ComboBox_Tableau_Collection.zip
    19 KB · Affichages: 48
M

martin13

Guest
Bonjour tout le monde
Thierry
Merci pour toutes ces explications que je suis en train de décortiquer.
Dans ton exemple démo, il manque quelque chose à mon sens. Un nouveau nom ne figurant pas sur la liste est bien pris en compte sur l'autre feuille, mais je voudrais qu'en mme temps il s'ajoute à la liste existante.
J'en demande des choses....hein!!!! )

Par avance merci
Philippe Martin
 
@

@+Thierry

Guest
En attendant voici encore une autre démo...

=> Démo Téléchargeable Lien supprimé (15k)

=> Fil de Discussion DEMO UserForm ComboBox Gestion de Database (MAJ Doublon/Supression etc)

Ici, pour cette démo je gère donc :
1) les nouveau Items ajoutés depuis le ComboBox
2) les Doublons sont détectés et automatiquement Supprimés
3) La possibilité de supprimer un item sélectionné depuis la ComboBox

Je te laisse le soin d'adapter avec les infos que tu as déjà pour faire ton report en FeuilleCible...

Bonne Journée
@+Thierry
 
M

martin13

Guest
Merci Thierry.

La demo dont je parle, c'est l'exemple que tu m'a adressé hier soir à 23H21.
Et maintenant je vais exploiter ton nouvel envoi.
A plus tard
Philippe Martin
 
M

martin13

Guest
Re bonjour à tous

Pour Thierry: ci joint une maquette de ce que je voudrais obtenir. C'est succint, mais je pense plus clair que des phrases.

Merci pour ton aide. Pourquoi suis pas tombé dedans quand j'étais petit...
Philippe Martin
 

Pièces jointes

  • monsouhait.zip
    6.9 KB · Affichages: 39
@

@+Thierry

Guest
Re Philippe, le Forum

Désolé, depuis la WorkStation d'où je me trouve, il m'est formellement interdit de télécgarger quoique ce soit... Donc je verrai çà de chez moi plus tard si j'ai le temps, sinon tu t'expliques un peu sur un post...

Et puis là je m'en vais déjeuner ...

Bon Appétit
@+Thierry
 
M

martin13

Guest
Re Thierry, le forum

En fait sur le fichier que je t'adresse il ya :

- une feuille source qui contient des champs : nom - age - ville - dpt.
Ce sont mes données source, qui peuvent évoluer (ajout, suppression de nom, voire modif de certains éléments.

-Une feuille "destination" (Date- montant- nom-age-ville-dpt)qui se remplira par une userform.
Cette feuille me permettra par la suite de faire des tris pour éditer des états et des mailings.

J'ai dessiné sur cette même feuille un exemple de boite dialogue.
En fait sur cette userform, je rentre la date, le montant. Dans une combobox je choisi le nom qui m'intéresse, et automatiquent les autres éléments afférents à ce nom s'affichent aussi sur le USF.
Ensuite en validant par la touche "valider", l'ensemble des données vont s'inscrire dans la feuille "destination".

Voilà, ce à quoi je voudrais arriver à faire. C'est pour ça que je t'avais fait un crobar, plus facile à digérer.....

Bon appétit et à plus tart.

Philippe MArtin
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…