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 :

Interface de remplissage de classeur (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
    Août 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2012
    Messages : 30
    Par défaut Interface de remplissage de classeur (Userform)
    Bonjour à tous,

    Je travaille sur une tableau de plusieurs milliers de lignes et de quelques dizaines de colonnes sur lequel j'effectue des tries relativement compliqués pour générer des rapports.

    La lecture de ce tableau étant peu pratique et son écriture encore plus (j'ai du rajouter des caractère de formatage pour découper des chaînes etc)

    Je souhaite créer une interface pour lire les données d'une ligne que je pourrais mettre en forme en retirant le formatage et aussi une interface pour pouvoir écrire une nouvelle ligne et modifier une existante.

    Est-ce que je pourrais bien faire ceci avec les userforms ? Quelqu'un aurait-il déja une base pour ce type d'interface (j'imagine que c'est commun et que quelqu'un à déja du se pencher dessus.)

    Cordialement,
    FanTasTik

  2. #2
    Membre confirmé
    Homme Profil pro
    Developpeur
    Inscrit en
    Novembre 2011
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Developpeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 196
    Par défaut SDISPRO
    Bonjour,

    Oui tu peux exploiter le tout avec un userform.

    Cependant, pour ton projet, il me semble qu'un TCD est peu être mieux adapté.

    Si toutefois tu veux passer par un USF, regarde le controle listview, tu fais une présentation a ta sauce et tu peux y joindre des actions à ta guise.

    a+

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Le userform est bien adapté. Si tu as de longues chaînes de caractères, tu as intérêt à mettre le contenu de ces cellules dans textbox qui te permettra de faire du multilignes. Je mets en pièce jointe un petit exemple simple. Le code de l'userform est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub ComboBox1_Change()
        Dim Ligne As Integer
        Ligne = Application.Match(Me.ComboBox1.Value, [BD!A:A], 0)
        Me.TextBox1.Text = Application.Index([BD!B:B], Ligne)
    End Sub
     
    Private Sub UserForm_Activate()
        With Sheets("BD")
            Me.ComboBox1.RowSource = "BD!" & _
            .Range(.[A2], .Cells(.Rows.Count, 1).End(xlUp)).Address
        End With
    End Sub
    Fichiers attachés Fichiers attachés

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2012
    Messages : 30
    Par défaut
    @ sdispro

    Merci je vais regarder le controle listview

    @ Daniel.C

    Super, je vais pouvoir regarder ce que ça fait et m'en inspirer.

    Je vais commencer à m'attaquer à cette partie du code donc j'ai quelques questions :

    - est-il possible de charger le texte dans le userform avec sa mise en forme (exemple certains mots en gras etc...)

    - est-il possible de modifier le contenu de la textbox et lors de l'appui sur un bouton, de transférer son contenu dans la cellule du classeur.

    - où-puis je trouver les options de mise en forme du userform, par exemple mettre une barre de défilement sur le coté pour les longs texte, mettre des onglets en haut etc...

    Merci bien

    Alors quand j'essaye d'adapter le code de Daniel, j'ai remarqué que si la colonne qui remplie la compobox contient juste des numeros cela fait planter l'USF pour erreur 13 : incompatibilité de type. Je n'arrive pas à comprendre pourquoi. (j'ai essayé de mettre le format de la cellue à texte mais cela ne change rien)

  5. #5
    Membre confirmé
    Homme Profil pro
    Developpeur
    Inscrit en
    Novembre 2011
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Developpeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 196
    Par défaut sdispro
    Salut:

    Tu as un userform, un textbox et un bouton.

    Dans les propriété de ton textbox tu met "multiline" avec "true".
    Dans les propriété de ton textbox tu met "scrolbar" avec "vertical".
    Qaund tu modifie ton textbox pour l'envoyer en a1, a ton bouton tu ajoute le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("a1") = TextBox1.Value
    a+

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Alors quand j'essaye d'adapter le code de Daniel, j'ai remarqué que si la colonne qui remplie la compobox contient juste des numeros cela fait planter l'USF pour erreur 13 : incompatibilité de type. Je n'arrive pas à comprendre pourquoi. (j'ai essayé de mettre le format de la cellue à texte mais cela ne change rien)
    Si tu as des valeurs numériques, remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ligne = Application.Match(Me.ComboBox1.Value, [BD!A:A], 0)
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ligne = Application.Match(CInt(Me.ComboBox1.Value), [BD!A:A], 0)
    Si tu mets le format des cellules à "texte", il faut le faire avant de remplir les cellules.
    est-il possible de charger le texte dans le userform avec sa mise en forme (exemple certains mots en gras etc...)
    Non.
    est-il possible de modifier le contenu de la textbox et lors de l'appui sur un bouton, de transférer son contenu dans la cellule du classeur
    Oui. ajoute le bouton et modifie le code associé au userform :
    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
    Public Ligne As Integer
    Private Sub ComboBox1_Change()
        Ligne = Application.Match(CInt(Me.ComboBox1.Value), [BD!A:A], 0)
        Me.TextBox1.Text = Application.Index([BD!B:B], Ligne)
    End Sub
     
    Private Sub CommandButton1_Click()
        Sheets("BD").Cells(Ligne, 2).Value = Me.TextBox1.Text
    End Sub
     
    Private Sub UserForm_Activate()
        With Sheets("BD")
            Me.ComboBox1.RowSource = "BD!" & _
            .Range(.[A2], .Cells(.Rows.Count, 1).End(xlUp)).Address
        End With
    End Sub
    où-puis je trouver les options de mise en forme du userform, par exemple mettre une barre de défilement sur le coté pour les longs texte, mettre des onglets en haut etc...
    Quand tu affiches le userform dans la fenêtre VB, clique sur le menu "Affichage" et sur "Boîte à outils".
    Fichiers attachés Fichiers attachés

  7. #7
    Membre chevronné Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 352
    Par défaut
    Bonjour FanTasTik,

    Citation Envoyé par FanTasTik Voir le message
    - est-il possible de charger le texte dans le userform avec sa mise en forme (exemple certains mots en gras etc...)
    Oui, cela est tout à fait possible.
    Exemple : pour répliquer la couleur de fond de la cellule A1 sur le Label1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    label1.backcolor = range("A1").interior.color

    Citation Envoyé par FanTasTik Voir le message
    - est-il possible de modifier le contenu de la textbox et lors de l'appui sur un bouton, de transférer son contenu dans la cellule du classeur.
    Oui, cela est possible aussi.
    Exemple : pour répliquer la valeur de la TextBox1 dans la cellule A1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
    range("A1").Value = TextBox1.Value
    End sub

    Citation Envoyé par FanTasTik Voir le message
    - où-puis je trouver les options de mise en forme du userform, par exemple mettre une barre de défilement sur le coté pour les longs texte, mettre des onglets en haut etc...
    Dans l'onglet "développeur", tu bascules sous VBA, puis une fois sous ton Userform, tu cliques sur l'icône "Boite à Outils".

    Bertrand

    Daniel.C a répondu avant moi

    Et différemment pour ta première question ...

    En fait, je parlais du format global de ta cellule - et non du mot à mot.

    Bertrand

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2012
    Messages : 30
    Par défaut
    Super sympa de voir autant de monde prêt à aider si rapidement

    Donc je teste tout ça et je vous tiens au courant.

    Citation Envoyé par Bear the french Voir le message
    Daniel.C a répondu avant moi

    Et différemment pour ta première question ...

    En fait, je parlais du format global de ta cellule - et non du mot à mot.

    Bertrand
    Oui je parlais de mise en forme pour des mots spécifiques. Tant pis ^^

Discussions similaires

  1. [WD-2007] Insertion d'un PDF selon le remplissage d'un UserForm
    Par MrPihey dans le forum VBA Word
    Réponses: 1
    Dernier message: 07/07/2014, 01h36
  2. [XL-2007] Remplissage d'une userform
    Par adamgg dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 19/06/2014, 14h38
  3. Excel : lancement d'un userform à l'ouverture du classeur
    Par repié dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/12/2005, 18h29
  4. Aide userform( insertion données dans classeur)
    Par zouille dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 19/12/2005, 10h16
  5. [Excel] Sauvegarder un classeur sans userform
    Par maketossss dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 10/12/2005, 17h41

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