Problème de programmation d'un USERFORM

  • Initiateur de la discussion Initiateur de la discussion Hugues
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Hugues

XLDnaute Impliqué
Bonjour le Forum

J'ai deux userform :
1°) Suppression
2°) Suppression_liste

Je souhaiterais :
- Lorsque le bouton est actionné dans la feuille accueil « suppression d’une fiche »
Le userform suppression_liste apparaisse
Dans ce userform il y a un menu déroulant renseigné à partir d'une matrice contenu dans une feuille du classeur appelé 'liste' (colonne a : code ; colonne b : dénomination) (je suis arrivé à la mettre en place)
A partir du choix d'un code de structure fait dans la liste déroulante, je souhaiterais renseigné la textbox (par le biais d’une recherche de la dénomination de la structure ) ( je n’arrive pas à le faire)
Puis on peut actionner 2 boutons :
Bouton non : fin de la procédure, retour à la feuille accueil
Bouton oui : affichage du userform suppression avec toutes les coordonnées de la structure

Le userform suppression nous donne deux choix :
Valider : la fiche à l’écran est détruite ainsi que les variables contenu dans la feuille fichier
Fermer : pas de suppression de la fiche ; retour au menu accueil

Je débute dans la programmation . Je n'arrive pas à renseigner le textbox et je ne sais pas comment donner les instruction aux boutons.

Pouvez-vous m'aider ? je joins le fichier

Merci par avance,
[file name=agenda_bis.zip size=19721]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/agenda_bis.zip[/file]
 

Pièces jointes

Salut Hugues, le forum

il y a eu bataille dans ce fichier!
j'ai fait quelques modifs dans ton fichier:

avec l'évènement ''After_Update' j'ai mis TBX1 à jour (personnelement je trouve ce tbx inutile : deux informations identiques sur le même USF).

le bouton valider recherche la ligne sélectionnée et la charge en mémoire (Option Explicit)

chaque colonne de de la ligne en question doit être chargée dans les tBx de l'USF 'suppression'.

cil va y avoir du ménage à faire (je te le laisse, vu ce que tu as déjà écrit comme code, cela ne devrait pas te poser de problème).

la ligne en question est supprimée.

Personnellement - si je peux me permettre - je supprimerai l'USF suppression_Liste et je contrôlerai tout à partir du combobox1 de suppression.

LE bouton 'valider' de cette usf s'appellerai 'supprimer' avec un message d'avertissement 'toutes les données de la ligne vont être supprimées et ne seront pas récupérable ...'

ç évite les clics de partout!

A+
😉
[file name=agenda_3.zip size=25014]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/agenda_3.zip[/file]
 

Pièces jointes

Bonjour Hugues, ZZR09, le forum,

Je vous apporte ma modeste contribution, peut-être pourras-tu y trouver une idée pour continuer ton projet.

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

Bonne journée à tous et à toutes.
 

Pièces jointes

Bonjour ZZR09,
Bonjour Gibson 94,
Bonjour le Forum,

Merci pour le travail. Je prends en compte vos remarques et je vais retravailler le projet.

J'ai une petite demande à vous faire.

Dans le premier USERFORM, je souhaiterais que la valeur qui s'affiche dans le textbox,
- ne reprenne pas la valeur du combobox
- mais tienne compte de cette valeur et inscrit la dénomination

Exemple :

Dans la liste déroulante : xxx001
Dans le textbox : Bureau Paris

Comment faire cette modification ?

Merci encore pour votre aide,

Hugues
 
re,

On recherche la valeur (code)
et on utilise la fonction offset pour décaler d'autant de lignes et colonnes que nécessaire. (dans notre cas : 0 ligne, 1 colonne)

dans combobox1_AfterUpdate
code :

Code:
dim z as range

with worksheets('fichier')

for each z in range('a1:a' & range('a65536').end(xlup).row)
     if z.value = me.combobox1.value then
          textbox1.value=range(z.address).offset(0,1).value
          exit sub
     end if
next z
 et voilà
A+
;)
 
Bonjour ZZR09,
Bonjour Gibson 94,
Bonjour Le Forum,

Exuse-moi de te solliciter à nouveau mais j'ai appliquez la formule, mais rien ne s'affiche.
Que faire ?

Merci d'avance,

Hugues

Private Sub ComboBox1_AfterUpdate()
Dim z As Range

With Worksheets('fichier')

For Each z In Range('a1:a' & Range('a65536').End(xlUp).Row)
If z.Value = Me.ComboBox1.Value Then
TextBox1.Value = Range(z.Address).Offset(0, 1).Value
Exit Sub
End If
Next z
End With

End Sub
 
J'ai effectivement oublié de dire que c'est un procédure du genre Private
on va essayer un truc :
en mode création (visualbasic)
affiche to USF suppression_liste
doubleClic sur ton combobox1; ils va alors basculer sur une Private sub xxx_Change ().

va sélectionner l'événement _AfterUpdate.

et colle le contenu de la macro dans cette procédure.
C'est en fait une procédure qui se lance après l'évènement mise à jour du contenu du control en question.

En cas de problème, je le ferrai, mais le mieux c'est de pratiquer un peu soi même ... on apprend mieux.

A+
🙂
 
Ok, j'ai fait qqs modifs dans le fichier joint.
En fait, combobox1 fonctionnait déjà avec AfterUpdate.

voici le code que je te propose :
Code:
Private Sub ComboBox1_AfterUpdate()
Dim z As Range
Me.TextBox1 = Me.ComboBox1.Value

On Error Resume Next 'pour ne pas que ça plant si 'fichier est déjà activé
Application.ScreenUpdating = False 'pour que l'affichage reste sur la feuille active
Sheets('fichier').Activate
For Each z In Range('a1:a' & Range('a65536').End(xlUp).Row)
    If z.Value = Me.ComboBox1.Value Then
        TextBox1.Value = Range(z.Address).Offset(0, 1).Value 'offset = décaler la référence
        Exit Sub
    End If
Next z

End Sub

A+
😉 [file name=agenda_3_20050906144321.zip size=20264]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/agenda_3_20050906144321.zip[/file]
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2019 User Form
Réponses
9
Affichages
320
Retour