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 :

Récupération d'une selection de texte d'un UserForm


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Février 2015
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage

    Informations forums :
    Inscription : Février 2015
    Messages : 126
    Par défaut Récupération d'une selection de texte d'un UserForm
    Bonjour,

    Malgré de nombreuse recherche , je ne trouve pas ma solution a mon problème ... C'est pour cela que je fais appelle à vous !
    Voici mon problème:
    J'ai, dans une textbox de mon userform , une date , écrite comme cela : " JJ/MM/AAAA "
    Ce que j'aimerais faire , c'est récupérer l'année ( AAAA ) et la transformer en variable ...
    J'ai réussi à faire quelques lignes mais cela ne fonctionne pas ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Ladate As String
        TextBox4.SelStart = 7
        TextBox4.SelLength = Len(TextBox4.Text)
        TextBox4.SetFocus
        Ladate = TextBox4.SelFocu
    Cette variable devra ensuite être implémenté dans une variable pour ouvrir un dossier dans lequel un dossier se créer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    im FSO As Object, sNomDossier As String
        Set FSO = CreateObject("Scripting.FileSystemObject")
        sNomDossier = "HYD" & LeParcours
        sChemin = "C:\Users\nathan\Dropbox\HYD" & Ladate & "\" & sNomDossier & "/"
          If Not FSO.FolderExists(sChemin) Then FSO.CreateFolder (sChemin)
         Set FSO = Nothing

    Ici par exemple , si dans ma textbox4 , j'ai 22/08/2016 , Ladate devrait être " 2016 " ,
    et le dossier dans lequel se trouvera le dossier crée sera : HYD2016




    Merci de votre aide ,
    Cordialement ,

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonsoir,

    ton textbox possède une propriété texte du type chaîne , travaille directement avec des fonctions de traitement de chaînes ( Left, Right, Mid , Len ... ou split )

    un exemple avec split :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       Dim tb() As String
       tb = Split(TextBox1.Text, "/")
       If UBound(tb) <> 2 Then
         MsgBox "saisir date sous la forme dd/mm/aaaa"
       Else
        MsgBox tb(2)
       End If

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Ladate As String
        TextBox4.SelStart = 7
        TextBox4.SelLength = Len(TextBox4.Text)
        TextBox4.SetFocus
        Ladate = TextBox4.SelFocu
    Je trouve le cheminement intéressant mais c'est trop compliqué pour mes pauvres neurones!
    Ladate = format(TextBox4,"yyyy")

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    Bonsoir
    je ne vois pas l'interet d'utiliser les fonctions string

    il te suffit de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    madate=cdate(textbox1.value)
    année=year(madate)
    Robert on s'est croisé je suis ton raisonnement
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre confirmé
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Février 2015
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage

    Informations forums :
    Inscription : Février 2015
    Messages : 126
    Par défaut
    Bonjour,
    Merci à tous de vos réponse , mais j'ai utilisé qu'une seule solution , celle de rdurupt , qui me semblait être la plus simple ,
    Celle-ci fonctionne à merveille !
    Mais , j'avais oublié un petit détail..
    J'ai un bouton "rechercher " qui me permet de rechercher les différents HYD ( c'est le nom de mes intervention ) .
    Ici , lorsque que je double click , il m'ouvre le dossier de l'HYD concerné .
    Pour récupérer le n° d'HYD , j'utilise cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LeParcours = Me.ListBox1.Column(1, I)
    Mais comment puis-je faire pour récupérer , de même , uniquement l'année de l'HYD ?
    J'ai essayé cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    If Me.ListBox1.Selected(I) = True Then 'condition 1 : si la ligne est sélectionnée
            For J = 2 To NL 'boucle 2 : sur toutes les lignes du tabelau TC
                If TC(J, 2) = Me.ListBox1.Column(1, I) Then 'condition 2 : si les numéros de HYD sont égaux
                    O.Rows(J).Select 'sélecionne la ligne J de l'onglet O
                    Ladate = Me.ListBox1.Column(9, I)("yyyy")
                    LeParcours = Me.ListBox1.Column(1, I)
                    Chemin = "C:/Users/nathan/Dropbox/HYD" & Ladate & "/HYD" & LeParcours & "\"
               Application.DisplayFullScreen = False
    Mais ça ne fonctionne pas ( incompatibilité de type , pour ("yyyy") ) ...
    Ps: la colone dans laquelle se trouve la date est la 9 .
    Merci !

  6. #6
    Invité
    Invité(e)
    Par défaut
    bonjour,
    si dans ta liste ce trouve de date il faut faire la même chose!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If format(TC(J, 2),"yyyy") = format(Me.ListBox1.Column(1, I),"yyyy")
    confirme si il s'agit bien de date!

  7. #7
    Membre confirmé
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Février 2015
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage

    Informations forums :
    Inscription : Février 2015
    Messages : 126
    Par défaut
    Merci , cela fonctionne à merveille !
    Mais dernier soucis , si il n'y a aucune date , cela ne marche plus , donc, j'aimerais que si aucune date n'est présente , se soit l'année actuelle qui soit utilisé ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ladate = Format(TextBox4, "yyyy")
    If Ladate n'existe pas
    Then Ladate = 2015 ( puisqu'on est en 2015 )
    Merci à vous !

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

Discussions similaires

  1. Sauvegarder une selection de texte avant blur ?
    Par blackmario dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 06/07/2012, 14h43
  2. [AC-2003] Récupération d'une zone de texte en format numérique
    Par tarnx dans le forum IHM
    Réponses: 2
    Dernier message: 18/01/2010, 11h19
  3. Copier une selection de texte automatiquement
    Par didier.aucun dans le forum VBA Word
    Réponses: 23
    Dernier message: 27/06/2007, 20h27
  4. Faire une selection de texte et la travailler
    Par simou37000 dans le forum Flash
    Réponses: 3
    Dernier message: 19/07/2006, 04h44

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