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 :

copier données sur un fichier fermé


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    361
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 361
    Par défaut copier données sur un fichier fermé
    Bonjour,

    je cherche tout simplement à aller sur un fichier fermé pour copier une plage de données et ensuite la coller sur le fichier sur lequel je suis.

    pour l'instant la portion de code sur laquelle je travaille pour arriver à cette réalisation est celle-ci

    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
            With Worksheets(NomFeuille)
     
                'coller le contenu copié dans la nouvelle feuille créé a` partir de la cellule A1
                plage_JSem.Copy .Range("A1")
     
                 Select Case JSem(Cells(1, 6))
     
                Case Is = "lundi"
                     Chemin = "C:\Users\\Desktop\semaine.xlsm"    ' boucler sur toutes les feuilles du fichier
     
                    ThisWorkbook.Names.Add "plage_a_copier", _
                                           RefersTo:="='" & Chemin & "Feuil1'!$A$1:$F$10"
     
                    With Sheets("Feuil1")
                        .[A1:F10] = "=plage_a_copier"
                        .[A1:F10].Copy
                    End With
     
                    .Range("A2").PasteSpecial xlPasteValues
     
     
             Case Is = "dimanche"
                              MsgBox ("c'est dimanche")
                End Select
     
            End With
    j'ai essayé d'adapter des bouts de ce que j'ai pu trouver sur le net mais en vain...

    Merci infiniment

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par awa123 Voir le message
    je cherche tout simplement à aller sur un fichier fermé pour copier une plage de données et ensuite la coller sur le fichier sur lequel je suis.
    A part attaquer directement l'écriture sur des secteurs de disque, je ne vois pas trop comment on pourrait lire ou écrire sur un fichier qui n'est pas ouvert.
    L'ouverture peut être automatique, masquée, invisible, etc. mais le fichier sera forcément ouvert si tu veux traiter son contenu.

    j'ai essayé d'adapter des bouts de ce que j'ai pu trouver sur le net
    Effectivement, on ressent bien à la lecture de ce code, l'assemblage façon patchwork.

  3. #3
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    C'est le genre de choses qui se font de la même manière, en gros, qu'avec une base de données:

    Voir:

    Le tutoriel de silkyroad

  4. #4
    Membre très actif Avatar de Citrax
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2014
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2014
    Messages : 188
    Par défaut
    Bonsoir, sans vouloir contredire les pro, il semble que lire sur classeur fermé par code est impossible, par contre par liaison c'est assez facile :

    Il est parfois intéressant d'extraire des informations d'un fichier fermé :
    - pour gagner du temps (éviter d'ouvrir, lire puis fermer le fichier)
    - et quand le fichier est "corrompu" et refuse de s'ouvrir.

    La méthode la plus simple consiste à établir un lien entre une feuille Excel et le fichier fermé :
    Il suffit pour cela d'inscrire dans une cellule la référence à une cellule du fichier fermé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ='C:\MES DOCUMENTS\[fichier_corrompu.xls]Feuil1'!A1
    (cliquer ici pour plus de détails)

    Il est par contre impossible de lire directement un classeur fermé par macro.
    - On peut bien sur l'ouvrir, le lire puis le fermer en mode "masqué".
    - Mais on peut aussi utiliser la technique précédente, c'est à dire inscrire dans une feuille de calcul un lien pointant sur une plage du classeur fermé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(1) = "='c:\mes documents\[zaza.xls]Feuil1'!R3C5"
    - Une autre technique, qui évite d'utiliser une feuille Excel, consiste à mettre en œuvre la fonction Excel 4 équivalente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox ExecuteExcel4Macro("'c:\mes documents\[zaza.xls]feuil1'!R3C5")
    (source : Jacxl, merci a lui)

Discussions similaires

  1. [XL-2007] Importation des données sur plusieurs fichiers fermés
    Par starid dans le forum Excel
    Réponses: 8
    Dernier message: 18/07/2009, 17h54
  2. enregistrer les données sur un fichier excel
    Par thunderpat dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 29/05/2007, 17h00
  3. donné sur un fichier word
    Par jekeclo dans le forum Access
    Réponses: 2
    Dernier message: 05/12/2005, 19h16
  4. Importation de données venant de fichier fermé ( *.xls)
    Par stormless dans le forum Macros et VBA Excel
    Réponses: 31
    Dernier message: 08/11/2005, 21h21
  5. Extraction de données sur des fichiers excel
    Par iupgeii dans le forum MFC
    Réponses: 3
    Dernier message: 23/01/2004, 13h53

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