IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Modifier une feuille du classeur avec un userform


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2016
    Messages : 17
    Par défaut Modifier une feuille du classeur avec un userform
    Bonjour à tous,

    Je souhaite créer un userform me permettant de modifier une liste sur ma feuille.
    J'ai créer le userforme mais pour le code VBA je ne sais pas trop comment m'y prendre. Dans mon userfom j'ai une listbox qui doit afficher une liste de personne avec tout leur information (nom,prenom,identifient,statut). Et une fois que je selectionne dans ma listbox une personne dans la liste, les donnée nom,prenom,identifient et statut doivent aller respectivement dans les textbox1, txtbox2,textbox3 et textbox4.

    Ensuite, les modification devront être inscrite dans les textbox5,textbox6,textbox7 (respectivement, nom prenom et statut). Une fois que l'on clic sur le bouton modifier du userform, les valeur inscrite dans les textbox5, textbox6, textbox7 devront respectivement remplacer les valeurs des textbox1, textbox2 et textbox4.

    et lorsque l'on clic sur Fin les valeur des textbox1, textbox2 et textbox4 devront s'inscrire dans les cellules de la feuille correspondant à la personne selectionné dans la listbox.

    Je remercie ceux qui pourront m'aider à codé ce userform. Un fichier peut être joint si besoin.

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour debutant033,

    Bienvenu sur le Forum!

    Remarque préalable : préfixe les noms de contrôles par des caractères indiquant leu nature
    Cbx_personne, Txt_Nom...

    Si tu choisis une personne, selon moi, un contrôle Combobox est plus approprié.
    Reste à en définir les occurrences (RowSource).

    Si j'ai bien compris ton processus, alors tu peux le simplifier par l'évènement Change de ta Combobox.
    Celui-ci te retournerait les valeur statut... dans les Textbox correspondants en allant chercher ces données sur ta feuille de travail.
    Lors de la validation, après modification éventuelle, celles-ci iraient modifier les données de cette feuille.

    Qu'en penses-tu?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2016
    Messages : 17
    Par défaut modifier une feuille avec un userform
    Bonjour MarcelG,

    Merci pour ton aide mais j'ai préféré garder l'idée d'une listbox qui affiche la lise des personnes. Ce que j'ai réussi a faire jusque'ici c'est fair en sorte que lorsque je clic sur une personne dans la liste son apparaisse dans ma textbox1.voici les codes que j'ai taper :

    à l'ouvertur du userform ma listbox1 affiche la liste des personnes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub UserForm_initialize()
    ListBox1.RowSource = "Bilan"
     
    End Sub
    pour que dans textbox1 s'affiche le nom de la personne concerné.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub ListBox1_Click()
     
    TextBox1.Value = ListBox1.List(ListBox1.ListIndex)
    TextBox2.Value = ListBox1.List(ListBox1.ListIndex)
    TextBox3.Value = ListBox1.List(ListBox1.ListIndex)
    TextBox4.Value = ListBox1.List(ListBox1.ListIndex)
     
    End Sub
    pour que les valeur de ma textbox5 (pour modifier le nom de la personne) remplace celle de ma textbox1 ect :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Private Sub Cmdvalider_Click()
     
    If TextBox5.Value <> "" Then
    TextBox1.Value = TextBox5.Value
    End If
     
    If TextBox6.Value <> "" Then
    TextBox2.Value = TextBox6.Value
    End If
     
    If TextBox8.Value <> "" Then
    TextBox4.Value = TextBox8.Value
    End If
     
    TextBox5 = ""
    TextBox6 = ""
    TextBox8 = ""
    maintenant ce que je n'arrive pas a faire c'est lorsque je clic sur mon bouton "ok" les nouvelles valeurs inscrites dans ma textbox1,2 et 4, se retrouve sur la feuille et remplace les cellule correspondant à la personne sélectionne dans ma listbox. Pouvez-vous m'aidez à résoudre ce problème svp?

    NB :
    j'ai nommé l'ensemble de ma lise de personne(Bilan) pour la rowsource de ma listbox.

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut,
    Désolé d'insister mais ton code est redondant.
    Ce que je voulais signifier en termes de processus :
    - Rechercher dans tes données les caractéristiques de la personne
    - Les afficher en "proposition" dans les 1ères Textbox
    - Les modifier éventuellement
    - Reporter ces modifications (ou non) dans tes données

    Par ailleurs, si tu gères une personne, alors je persiste à dire que le type de contrôle adéquat reste la zone de liste modifiable (Combobox)

    Pour le report des données, tu peux , et même "tu dois", consulter les tutoriels adéquats, notamment ceux de Silkyroad à ce sujet
    Espace précieux de Silkyroad

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/06/2010, 22h44
  2. ruban excel avec lien sur une feuille du classeur excel 2007
    Par corbisier dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/09/2007, 15h00
  3. [VBA E] affichage d une feuille a partir d un userform
    Par patbou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/03/2007, 21h55
  4. affichage d'une image du classeur dans un userform
    Par sebù des bois dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 19/09/2006, 15h33
  5. [VBA] Comment savoir si une feuille est protégée avec mdp ?
    Par JulienCEA dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 06/04/2006, 16h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo