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 :

userform - lancer une macro à partir du userform d'un autre classeur


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 51
    Points : 34
    Points
    34
    Par défaut userform - lancer une macro à partir du userform d'un autre classeur
    Bonjour à tous
    voila mon souci

    bonjour j ai 3 classeur le premier avec un userform le deuxième avec une macro ( procédure copy() )qui copie des valeurs de cellules de la feuille1 du classeur2 pour les coller dans la feuille1 du classeur 3

    alors dans le userforme j'ai crée deux boutons et deux textebox, les boutons c'est des boutons du genre parcourir de windows qui donne à l utilisateur la possibilité de parcourir son ordi pour choisir un fichier excel dont le nom complet (nom absolu avec chemin) apparaît dans la zone de texte correspondante au bouton. la ce que je veux faire c donner la possibilité a l utilisateur de choisir les deux classeurs excel (classeur2 et 3) et sans pour autant les ouvrir et via un troisième bouton que je vais ajouter à mon userforme lancer la macro du classeur 2. deja je veux savoir si c possible. après votre aide sera la bienvenue (pour faire le 3ieme bouton qui appel la macro).

    voila le code du userform (le code des deux boutons)

    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
    Private Sub CommandButton1_Click()
    Dim monfichier As Long
    With Application.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = False
        .Show
            For monfichier = 1 To .SelectedItems.Count
            Me.TextBox1.Value = (.SelectedItems(monfichier))
            Next monfichier
        End With
    End Sub
     
    Private Sub CommandButton2_Click()
    Dim monfichier As Long
    With Application.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = False
        .Show
            For monfichier = 1 To .SelectedItems.Count
            Me.TextBox3.Value = (.SelectedItems(monfichier))
            Next monfichier
        End With
    End Sub
    et dans le module thisworkbook j'ai mis ce bout de code pour que mon userform se lance à l'ouverture du classeur1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Workbook_Open()
    Application.Visible = False
    Load UserForm1
    UserForm1.Show
    End Sub

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Salut.

    Utiliser la macro d'un classeur sans l'ouvrir n'est pas possible.

    De plus, que se passe-t-il si l'utilisateur ouvre comme classeur2 un classeur qui ne contient pas la macro?

    Il serait plus intéressant de copier la macro du classeur2 dans Classeur1 et de l'adapter pour qu'elle copie de classeur2 vers Classeur3

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 51
    Points : 34
    Points
    34
    Par défaut
    ok merci Pierre ... je crois que meme avec ta proposition de mettre (et adapter) la macro du classeur 2 dans classeur 3 il faut que mes trois classeurs soient ouverts ?

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Oui. Tes classeurs doivent être ouverts.

    Dans certains cas, il y a moyen de travailler avec des classeurs fermés, mais c'est souvent se compliquer la tâche pour rien.

    En quoi le fait de devoir ouvrir tes classeurs pose problème? Tu peux les ouvrir via du VBA et les refermer après le copier/coller.

Discussions similaires

  1. Lancer une macro à partir d'une validation List
    Par Stifoun dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/04/2015, 18h24
  2. Modifier une cellule et lancer une macro à partir d'un point donné
    Par mathilde13870 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/03/2014, 08h58
  3. Lancer une macro à partir d'une valeur de cellule
    Par arkorrigan dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/06/2008, 10h03
  4. Lancer une macro à partir d'une cellule
    Par marc56 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/09/2007, 16h58
  5. [Script] Lancer une macro à partir d'un script
    Par bitardo dans le forum VBScript
    Réponses: 7
    Dernier message: 22/06/2007, 08h11

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