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 :

select file instead of creating one in custom VBA code


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    consultant environnemental
    Inscrit en
    Mars 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Belgique

    Informations professionnelles :
    Activité : consultant environnemental

    Informations forums :
    Inscription : Mars 2022
    Messages : 5
    Par défaut select file instead of creating one in custom VBA code
    Yo, je voudrais qu'au lieu de me créer un nouveau document word, l'explorateur des fichiers s'ouvre et me laisse choisir dans quel document je souhaite copier mon excel. J'ai essayé Application.Getopenfilename à la place de Documents.Add() sans grand succès.

    Merci d'avance !

    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
    Sub ExcelToWord()
     
       'Using Early Binding
     
        Dim wordApp As Word.Application
     
        Dim mydoc As New Word.Document
     
     
     
     
     
        'Creating a new instance of word only if there no other instances
     
       Set wordApp = Word.Application
     
     
     
     
     
        'Making word App Visible
     
        wordApp.Visible = True
     
     
     
        'Creating a new document
     
     
        Set mydoc = wordApp.Documents.Add()
     
     
     
     
        'copying the content from excel sheet
     
     
        ThisWorkbook.Worksheets("Feuil1").Range("A1:g20").Copy
     
     
        'Pasting on the document
     
     
        mydoc.Paragraphs(1).Range.PasteExcelTable _
     LinkedToExcel:=False, _
     WordFormatting:=False, _
     RTF:=False
    End Sub

  2. #2
    Membre confirmé
    Homme Profil pro
    Automaticien
    Inscrit en
    Octobre 2019
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Automaticien

    Informations forums :
    Inscription : Octobre 2019
    Messages : 75
    Par défaut
    Beuhaaaar aussi,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    Dim NomduFichier
    NomduFichier = Application.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)

  3. #3
    Membre à l'essai
    Homme Profil pro
    consultant environnemental
    Inscrit en
    Mars 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Belgique

    Informations professionnelles :
    Activité : consultant environnemental

    Informations forums :
    Inscription : Mars 2022
    Messages : 5
    Par défaut
    Du coup j'essaie ça, mais j'ai l'erreur "utilisation incorrecte de la propriété" quand je veux attribuer mon document choisi à la variable mydoc

    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
    Sub OpenDocFromExcel1()
        Dim wordapp
        Dim mydoc As Word.Document
     
        Set wordapp = CreateObject("word.Application")
      mydoc = Application.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)
     
        wordapp.Visible = True
     ThisWorkbook.Worksheets("Feuil1").Range("A1:g20").Copy
     
     
     mydoc.Paragraphs(1).Range.PasteExcelTable _
     LinkedToExcel:=False, _
     WordFormatting:=False, _
     RTF:=False
     
    End Sub

  4. #4
    Membre à l'essai
    Homme Profil pro
    Technicien d'essai mais bon vivant avant tout
    Inscrit en
    Février 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Technicien d'essai mais bon vivant avant tout
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2022
    Messages : 4
    Par défaut
    Coucou,
    Je ne suis pas expert mais j'ai l'impression que tu dimensionnes mal ta variable.
    Application.GetOpenFilename te renvoie un lien complet du style "C:\Users\SamidouMidou\Desktop\tondocument.docx"

    il faut donc que tu passes par une variable string
    Dim mydoc As String

    Et pour ton doc word, tu ouvres l'application, mais si tu n'ouvres pas le fichier word tu ne pourras pas écrire dedans, il te manque un :
    wordapp.Documents.Open mydoc

    Pour la suite je ne sais pas comment coller directement dans word.
    En espérant avoir un peu participé à la solution.

  5. #5
    Membre à l'essai
    Homme Profil pro
    consultant environnemental
    Inscrit en
    Mars 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Belgique

    Informations professionnelles :
    Activité : consultant environnemental

    Informations forums :
    Inscription : Mars 2022
    Messages : 5
    Par défaut
    Hello Samidou, ta solution démarre correctement mon Word mais cela ne résout pas le problème d'attribution. J'ai besoin d'un attribut document pour pouvoir utiliser .Paragraphs(1).Range.PasteExcelTable. J'arrive à définir la variable en créant un nouveau document via Documents.Add() mais pas via Documents.Open :/

  6. #6
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    Bonjour,

    Essaye comme ça:
    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
    Sub OpenDocFromExcel1()
        Dim wordapp
        Dim mydoc As Word.Document
     
        Set wordapp = CreateObject("word.Application")
    Application.GetOpenFilename FileFilter, FilterIndex, Title, ButtonText, MultiSelect
     
        wordapp.Visible = True
      Set mydoc = ActiveDocument
     
     ThisWorkbook.Worksheets("Feuil1").Range("A1:g20").Copy
     
     
     mydoc.Paragraphs(1).Range.PasteExcelTable _
     LinkedToExcel:=False, _
     WordFormatting:=False, _
     RTF:=False
     
    End Sub

  7. #7
    Membre à l'essai
    Homme Profil pro
    consultant environnemental
    Inscrit en
    Mars 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Belgique

    Informations professionnelles :
    Activité : consultant environnemental

    Informations forums :
    Inscription : Mars 2022
    Messages : 5
    Par défaut
    J'ai réussi avec
    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
    Sub OpenDocFromExcel1()
        Dim wordapp As Word.Application
        Dim dir As String
        Dim mydoc As Word.Document
     
     
        Set wordapp = CreateObject("word.Application")
        dir = Application.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)
     
        wordapp.Visible = True
        wordapp.Documents.Open dir
        Set mydoc = wordapp.Documents.Open(dir)
        ThisWorkbook.Worksheets("Feuil1").Range("A1:g20").Copy
     
        mydoc.Paragraphs(1).Range.PasteExcelTable _
     LinkedToExcel:=False, _
     WordFormatting:=False, _
     RTF:=False
     End Sub

Discussions similaires

  1. <a href="<xsl:value-of select='file'>">
    Par gedeon555 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 28/07/2011, 13h54
  2. [Select] File descriptor "virtuel"
    Par plaristote dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 25/02/2011, 11h02
  3. SELECT du type many to one to many
    Par Ni;co) dans le forum Requêtes
    Réponses: 8
    Dernier message: 13/10/2009, 23h42
  4. Select into #temp ou Create table #temp
    Par soazig dans le forum Développement
    Réponses: 2
    Dernier message: 04/07/2009, 19h10
  5. html:select et hibernate many-to-one
    Par davdou dans le forum Struts 1
    Réponses: 1
    Dernier message: 05/07/2006, 14h56

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