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 :

Ajouter une piece jointe vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 108
    Par défaut Ajouter une piece jointe vba
    Bonjour,

    j'ai trouvé le code qui permet de renvoyer le chemin du fichier sélectionner mais il m'est très difficile d'adapter ce code à mon besoin, je suis encore débutant. pas très facile à ce stade de mes compétences sur le sujet. je pense qu'ici des experts sont là pour m'aider.

    Ce que je voudrais c'est pouvoir garder le fichier sélectionné dans mon userform comme dans une boite de messagerie lorsqu'on veut ajouter une pièce jointe.

    Code :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
     
        'Declare a variable as a FileDialog object.
        Dim fd As FileDialog
     
        'Create a FileDialog object as a File Picker dialog box.
        Set fd = Application.FileDialog(msoFileDialogFilePicker)
     
        'Declare a variable to contain the path
        'of each selected item. Even though the path is aString,
        'the variable must be a Variant because For Each...Next
        'routines only work with Variants and Objects.
        Dim vrtSelectedItem As Variant
     
        'Use a With...End With block to reference the FileDialog object.
        With fd
     
            'Use the Show method to display the File Picker dialog box and return the user's action.
            'The user pressed the button.
            If .Show = -1 Then
     
                'Step through each string in the FileDialogSelectedItems collection.
                For Each vrtSelectedItem In .SelectedItems
     
                    'vrtSelectedItem is aString that contains the path of each selected item.
                    'You can use any file I/O functions that you want to work with this path.
                    'This example displays the path in a message box.
                    MsgBox "The path is: " & vrtSelectedItem
     
                Next vrtSelectedItem
            'The user pressed Cancel.
            Else
            End If
        End With
     
        'Set the object variable to Nothing.
        Set fd = Nothing
    Merci par avance

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut,voir dans la FAQ http://excel.developpez.com/faq/?page=FenetresExcel
    ce qui devrait donner qqch comme ceci ,à adapter à ton contexte
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    Option Explicit
    Dim Ar() As String
     
    Sub Utilisation_FileDialog_SelectionFichier()
    Dim x As Long
     
        With Application.FileDialog(msoFileDialogFilePicker)
            'Définit un titre pour la boîte de dialogue
            .Title = "Le tite de la fenêtre:"
            'Autorise la multi-sélection
            .AllowMultiSelect = True
     
            'Définit un nom de fichier par défaut
            .InitialFileName = ThisWorkbook.Path & "\"
     
            'Efface les filtres existants.
            .Filters.Clear
            'Définit une liste de filtres pour le champ "Type de fichiers".
            .Filters.Add "Classeurs Excel", "*.xls; *.xlsx; *.xlsm"
            'La valeur 1 permet de spécifier que ce filtre est positionner en premier dans la liste de choix.
            .Filters.Add "Documents Word", "*.doc; *.docx; *.docm", 1
            'Définit le filtre qui s'affiche par défaut dans le champ "Type de fichiers".
            .FilterIndex = 2
     
            'Indique le type d'affichage dans la boîte de dialogue (exemple visualisation des propriétés)
            .InitialView = msoFileDialogViewProperties
            'Affiche la boîte de dialogue
            .Show
     
            If .SelectedItems.Count > 0 Then
                Erase Ar
                'Boucle sur les fichiers sélectionnés
                For x = 1 To .SelectedItems.Count
                    ReDim Preserve Ar(x)
                    Ar(x) = .SelectedItems(x)
                Next x
                Liste
            End If
        End With
     
    End Sub
     
    Private Sub Liste()
    Dim i As Long
        For i = 1 To UBound(Ar)
            Debug.Print Ar(i)
        Next i
    End Sub
    Si j'ai bien décrypté ta demande,si l'on ne veut sélectionner qu'un fichier .AllowMultiSelect = False et passer .SelectedItems(x)
    à la TextBox de ton UserForm si plusieurs fichiers utiliser une ListBox

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 108
    Par défaut
    Pour plus de précision je voudrais pouvoir reouvrir le fichier qui est stocker dans mon fichier excel.Donc cela passe par la selection de mon fichier et l'enregistrement de ce fichier dans le fichier excel.

  4. #4
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Re,via des liens hypertextes ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Option explicit
     
    Private Sub Liste2()
    Dim i As Long
        Feuil1.Cells.Clear
        For i = 1 To UBound(Ar)
            Feuil1.Hyperlinks.Add Anchor:=Feuil1.Range("A" & i), _
                               Address:=Ar(i), TextToDisplay:=CStr(Ar(i))
        Next i
    End Sub

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 108
    Par défaut
    Oui tout à fait sous forme de lien hypertexte par contre le fichier Excel se baladera de pc en pc et le fichier que je veux stocker dans mon fichier Excel n'est pas forcement disponible dans chaque pc. c'est pourquoi je veux stocker le fichier dans ce fichier Excel au travers d'un Userform.

  6. #6
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Re,voir sur http://www.developpez.net/forums/d10...lles-classeur/ ou faire une recherche plus approfondie sur le site

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 108
    Par défaut
    Bonjour,

    Après analyse je ne trouve rien qui corresponde à ce que je recherche. Je ne veux absolument pas enregistrer le fichier excel dans le pc mais sélectionner un fichier quelconque depuis un pc et pouvoir le stocker dans mon userform.

    @kiki29 : Pourrais tu rre-expliquer le code ci-dessus je ne sais pas dans quel control je dois les mettre, merci.

    Es ce possible tout d'abord ?

    Merci

Discussions similaires

  1. [AC-2007] Ajout automatique du nom d'une piece jointe
    Par jd69001 dans le forum VBA Access
    Réponses: 10
    Dernier message: 20/06/2013, 10h48
  2. [AC-2010] Ajouter un enregistrement avec une piece jointe
    Par docjo dans le forum VBA Access
    Réponses: 1
    Dernier message: 08/08/2012, 23h27
  3. faire une piece jointe?
    Par mbouzouita dans le forum Wildfly/JBoss
    Réponses: 8
    Dernier message: 16/05/2007, 13h36
  4. [Indy] attachement d'une piece jointe ne marche pas
    Par pierrot67 dans le forum Composants VCL
    Réponses: 11
    Dernier message: 08/03/2006, 19h07
  5. [ASP 3] Envoyer un Mail avec une piece jointe générer
    Par soltani.slim dans le forum ASP
    Réponses: 4
    Dernier message: 15/02/2006, 10h16

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