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 :

Controlsource et mode formulaire [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    R&D laboratoire
    Inscrit en
    Janvier 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D laboratoire
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2008
    Messages : 83
    Par défaut Controlsource et mode formulaire
    Bonjour,
    pour actualiser un fichier de 200 lignes de projets et 80 colonnes, je souhaite créer un formulaire affichant pour chaque ligne d'un projet des champs non contigus sous forme de textboxes dans un userform. Les textbox doivent afficher la valeur des champs et inversement, on doit pouvoir actualiser.
    je pensais utiliser la propriété "Controlsource" des txtbox, mais ce n'est pas possible avec des formules (?). En essayant de renseigner la propriété Controlsource en passant par le code des textbox, j'ai rencontré des bugs que ne n'ai pas compris. Finalement, j'obtiens un code qui me donne le résultat voulu dans mon fichier d'essai...mais dont je me demande s'il est suffisamment sûr pour être appliqué au fichier officiel (par exemple, est-ce que les entrées dans les textbox ne vont pas écraser les formats initiaux des cellules cibles?):
    code pour actualiser les textbox:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim tet As String
    tii = ActiveCell.Row
    tet = Range("G" & tii).Text
    UserForm1.TextBox1 = tet
    tet = Range("CU" & tii).Text
    UserForm1.TextBox3 = tetEnd Sub
    Code pour actualiser la feuille en retour après actualisation dans la txtbox:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
        Dim tet1 As String
        tii = ActiveCell.Row
        tet = UserForm1.TextBox1
        Range("G" & tii).Value = tet
    End Sub
    Merci d'avance pour vos conseils (je pensais que ce type de besoin devait être fréquent mais je n'ai pas trouvé sur le forum)
    LT

  2. #2
    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,

    Vérifie bien ce que tu récupères. Normalement, un textbox retourne une valeur texte. De plus, VBA ne reconnait que le format date US et interprétera les dates comme étant saisies au format mm/jj/aaaa" dans la mesure où les deux premiers caractères son inférieurs à 13. Dans le cas contraire, il retournera du texte.

    Par exemple, pour une date :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    With Me.TextBox1
        If Len(.Value) = 10 Then
            [A1] = DateSerial(Right(.Value, 4), Mid(.Value, 4, 2), Left(.Value, 2))
        Else
            MsgBox "erreur de saisie"
        End If
    End With
    C'est pourquoi, pour une date, il vaut mieux utiliser un contrôle MonthView ou Date and time picker.

  3. #3
    Membre confirmé
    Homme Profil pro
    R&D laboratoire
    Inscrit en
    Janvier 2008
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : R&D laboratoire
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2008
    Messages : 83
    Par défaut
    Merci Daniel, DT picker correspond à mon besoin, par contre il faut sélectionner l'évènement change plutôt que "callbackkeydown" qui est proposé par défaut.
    un grand merci, Serge

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

Discussions similaires

  1. Masquage des données en mode formulaire
    Par benoit13 dans le forum IHM
    Réponses: 4
    Dernier message: 13/07/2007, 10h58
  2. Authentification en mode formulaire et CSS
    Par kinaï dans le forum ASP.NET
    Réponses: 1
    Dernier message: 21/05/2007, 11h01
  3. Réponses: 1
    Dernier message: 10/02/2007, 17h43
  4. Affichage de formulaire en mode "formulaire"
    Par gadjou dans le forum Access
    Réponses: 1
    Dernier message: 25/07/2006, 12h28
  5. Réponses: 1
    Dernier message: 29/11/2005, 12h28

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