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

Excel Discussion :

boite de dialogue qui renvoie la valeur dans une cellule


Sujet :

Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 161
    Points : 155
    Points
    155
    Par défaut boite de dialogue qui renvoie la valeur dans une cellule
    Bonjour j'aimerai si une personne peut m'aider cree une boite de dialogue avec une liste (combobox ou listbox??)
    vierge dans laquelle lorsque la boite est ouverte je tape un texte dans la liste(vierge)et ce texte s'inscrit dans une cellule je referme la boite et lorsque que je recommence le prochain texte s'inscrit dans la cellule sous le precedent et ainssi de suite
    voila je sais pas si c'est tres clair mais merci d'avance

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonsoir


    j'espère que ces liens pourront t'aider

    Utiliser les UserForm en VBA Excel

    Utiliser les contrôles dans un UserForm
    (D'après la description de ton message, utilise plutot le controle TextBox)

    Comment retrouver les numéros des dernières lignes et dernières colonnes renseignées dans une feuille ?



    bonne soirée
    michel

  3. #3
    Membre confirmé
    Avatar de Bigalo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    445
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 445
    Points : 563
    Points
    563
    Par défaut
    Bonjour,

    Voici 3 contrôles différents que l’on peut utiliser pour entrer du texte dans une boite de dialogue un UserForm) :
    1. Un TextBox est une zone de saisie destinée à l'entrée de texte.
    2. Un ListBox permet d'effectuer un choix à partir des éléments d'une liste.
    3. Un ComboBox combine les 2 contrôles précédents en permettant le choix dans une liste, ou la saisie d'un texte absent de la liste.

    A priori, un TextBox suffit dans ton cas, car une liste vierge n'apporte aucune fonctionnalité supplémentaire.

    Tu pourrais même te contenter d'un InputBox (pas de UserForm), mais personnellement, c’est une technique que je déconseille

    Quant au report avec une ligne de décalage, 2 options sont possibles :
    1. Donner un nom à la cellule où reporter la première information saisie, "RéceptionDonnées" par exemple, et dans le traitement reportant le texte saisi, mettre à jour la référence associée au nom en la décalant d’une cellule vers le bas.
    2. Utiliser la propriété End de l'objet Range, pour repérer la dernière ligne non vide de la colonne où reporter le texte.

    Pour illustrer les 2 techniques, j'ai créé un classeur avec un bouton qui affiche 1 UserForm avec 2 TextBoxes, TNom et TPrenom, et 2 CommandButtons, BOK et BAnnuler.

    Un clic sur BOK déclenche un contrôle de saisie, et si les 2 TextBoxes contiennent tous les 2 quelque chose, le report du nom et du prénom, avec un décalage d'une ligne à chaque fois.

    Pour le report du nom, j'ai utilsé la première option :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub ReportNom()
        With FData.Range("RéceptionDonnées")
            .Value = TNom
            .Parent.Names.Add "RéceptionDonnées", .Offset(1)
        End With
    End Sub
    La faiblesse de ce système est que si quelqu’un supprime la ligne contenant la cellule nommée "RéceptionDonnées", la macro plante. Plusieurs solutions sont possibles, heureusement, pour traiter ce problème.

    Le prénom est reporté en utilisant la seconde option :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub ReportPrenom()
    Dim DerLigne As Long
        DerLigne = Range("B65536").End(xlUp).Row
        Range("B" & DerLigne + 1) = TPrenom
    End Sub
    Ce code est plus concis, mais plus difficile à comprendre.

    Tu trouveras le classeur de test en pièce jointe. Si tu as besoin d'un complément d'info, n'hésite pas.

    Cordialement,

    Michel Gaboly
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD17] Combo qui affiche les valeurs dans une liste
    Par ameura1 dans le forum WinDev
    Réponses: 7
    Dernier message: 02/09/2014, 10h11
  2. Réponses: 2
    Dernier message: 02/02/2011, 11h14
  3. [XL-2007] Combo box et renvoie valeur dans une cellule!
    Par bedoch dans le forum Excel
    Réponses: 1
    Dernier message: 15/03/2010, 23h59
  4. Inserer des valeurs dans une cellule
    Par azerty53 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/09/2006, 16h27
  5. [VBA-PP]fonction qui écrit un chiffre dans une cellule excel
    Par alpking dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 26/04/2006, 19h34

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