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 :

Macro fonction d’une saisie dans une textbox


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
    Apprenti ingénieur
    Inscrit en
    Juillet 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 81
    Par défaut Macro fonction d’une saisie dans une textbox
    Bonjour,

    J’ai une macro qui va chercher un fichier dans un dossier grâce, entre autre, à l’emplacement de ce dossier.
    Je voudrais créer une textbox qui exécute cette macro et qui en fonction de la saisie dans cette textbox modifie l’adresse du dossier où aller chercher le fichier.

    Si ce n'est pas clair, ou incomplet, n'hésitez pas à me poser des questions.
    Merci.

    Thomas

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Salut,

    Il est probablement inutile de créer ton propre système de sélection de dossier.
    Regarde du côté de Application.FileDialog(msoFileDialogFolderPicker).Show .
    voir FAQ : Comment utiliser la boîte de dialogue FileDialog ?

    A+

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 171
    Billets dans le blog
    53
    Par défaut
    Bonjour BlueMonkey,
    C'est également ce que j'avais proposé à Thomas dans cette discussion mais justement il ne souhaite pas cette solution.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Bonjour Philippe,

    Merci de m'avoir averti du doublon, et que je m'égarais

    En lisant l'autre sujet, il y a tout de même une chose qui ressort :
    le but du projet est de corriger le problème :
    perdent du temps à cherché dans le réseau vaste et mal organisé, à mélanger tous les fichiers et dossiers qu’ils ouvrent
    Rajouter une surcouche à quelque chose de mal organisé, c'est un peu comme un cache misère :
    on ne la voit plus, mais la misère est toujours là.
    Et il est très probable que sur le long terme, ces problèmes rattrapent les utilisateurs.
    Il est très probablement plus profitable sur le long terme de revoir l'organisation de ces dossiers avec le responsable.

    Sinon peut être que des solutions d'indexation existantes et qui permettent de faire des recherches sur des fichiers et leur contenu comme copernic ferait l'affaire.

    Bon courage.

  5. #5
    Membre confirmé
    Homme Profil pro
    Apprenti ingénieur
    Inscrit en
    Juillet 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 81
    Par défaut
    Bonjour et merci à vous,

    Comme je l'avais dis à Philippe mon problème avec ces boîtes c'est que le réseau dans lequel elle vont aller chercher est très mal organisé et des personnes qui vont utiliser mon fichier sont allergiques à la moindre espèce de chose qui ressemble à de l'informatique. Donc je préférerais une solution dans ce style:
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub CommandButton1_Click()
     Const FileSource As String = "Sport"
     Const FolderSource As String = "C:\Users\thomas\Documents\"
     Dim wkbSrce As Workbook
     Set wkbSrce = Application.Workbooks.Open(FolderSource & FileSource & ".xlsx")
     wkbSrce.Sheets(1).Copy before:=ThisWorkbook.Sheets(1)
     wkbSrce.Close
     Set wkbSrce = Nothing
    End Sub
    Comme vous le voyez ici c'est un bouton qui active la copie d'un fichier "Sport" se trouvant dans un dossier "C:\Users\thomas\Documents\".
    Et je voudrais que vous me montriez, si c'est possible, comment écrire ce code si je veux que ce soit une textbox qui l'active. Exemple: si la saisie est "A" le fichier "Sport" est cherché dans "C:\Users\thomas\A\.

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Par défaut
    Re,

    Si la textBox s'appelle TB_NomDeSousDossier, un changement de valeur dans ce composant déclenchera une recherche dans un dossier pour voir si le fichier FileSource est présent.
    S'il le trouve, le premier onglet de ce fichier est copié dans le classeur courant, et l'USF se ferme

    Rmq :
    - Ca peut ramer s'il y a beaucoup de fichier dans le dossier.
    - si un sous-dossier contenant le fichier cherché commence avec les même lettre
    qu'un autre sous dossier plus court, seul le sous-dossier le plus cours sera accessible..

    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
    18
    19
    20
    21
    22
    23
    24
    25
    Private Sub TB_NomDeSousDossier_Change()
        Const FileSource As String = "Sport"
        Const FolderSource As String = "C:\Users\thomas\Documents\"
     
        Dim wkbSrce As Workbook
        Dim FoundFile As String
        Dim SubFolder As String
     
        SubFolder = TB_NomDeSousDossier.Text
        FoundFile = Dir(FolderSource & SubFolder & "\" & FileSource & ".xlsx")
        Do While FoundFile <> ""
            If FoundFile <> "" Then
                Application.ScreenUpdating = False
                Set wkbSrce = Application.Workbooks.Open(FolderSource & SubFolder & "\" & FileSource & ".xlsx")
                wkbSrce.Sheets(1).Copy before:=ThisWorkbook.Sheets(1)
                wkbSrce.Close
                Set wkbSrce = Nothing
                Hide
                Application.ScreenUpdating = True
                Exit Do
            End If
            FoundFile = Dir
        Loop
     
    End Sub

  7. #7
    Membre confirmé
    Homme Profil pro
    Apprenti ingénieur
    Inscrit en
    Juillet 2013
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 81
    Par défaut
    Bonjour,
    Merci c’est exactement ça.
    Votre seconde remarque n’est pas un problème dans mon cas.
    Question concernant en partie la seconde remarque :
    Comment peut-on modifier cette macro pour dire : si la saisie est « A » va chercher le dossier « A » dans les emplacements « E1 » et « E2 », si la saisie est « B » va le chercher en « E3 » et « E4 » ? (Un dossier ne peut pas être à deux emplacements simultanément dans mon cas).

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 02/05/2014, 15h30
  2. Réponses: 4
    Dernier message: 21/05/2009, 01h59
  3. Réponses: 9
    Dernier message: 11/03/2009, 15h01
  4. validation de saisie dans une textbox
    Par filtep dans le forum VB.NET
    Réponses: 8
    Dernier message: 24/06/2007, 09h12
  5. connaitre le type saisi dans une textbox
    Par r83 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 16/01/2007, 21h36

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