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 :

[Excel] Methode de copie rapide?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Par défaut [Excel] Methode de copie rapide?
    Bonjour,

    Je cherche un moyen de copier rapidement le contenu d'un classeur ouvert à partir d'une xlt sur un classeur "classique" (xls) caché.
    Les 2 fichiers ont exactement la même apparence (même nombre de feuille, même nom de feuille, même range sur les feuilles...) et je dois juste copier les valeurs des cellules de la xlt vers le classeur xls.
    La feuille xls étant invisible je ne peux pas utiliser de "selection.copy" '(ou alors je dois rendre visible la xls mais je suis pas fan...).

    Le coup du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim wsh as Worksheet
    For each wsh in ThisWorkbook.Sheets
    wsh.Cells.Copy AutreWorkbook.Sheets(wsh.name)
    est vraiment trop lent (et bourrin)

    Si qqn à une idée plus fine, je suis preneur

  2. #2
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 66
    Par défaut
    Au moment de la copie tu rend la feuille visible et une fois que celle si est copié tu la remet invisible, ca restera transparent pour l'utilisateur

  3. #3
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Par défaut
    Merci Gerard j'essaye d'eviter d'utiliser des selections et je pense qu'il est possible de faire un copier/coller d'un classeur à un autre sans rendre le dernier visible.

    Mais ce n'est peut qu'un rêve...

    j'essaye en ce moment d'utiliser qqch comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim wsh As Worksheet
    For Each wsh In ThisWorkbook.Worksheets
         wsh.UsedRange.Copy
         Workbooks("Correlations.xls").Sheets(wsh.Name).PasteSpecial Paste:=xlPasteValues
    Next
    Mais ca marche pas

  4. #4
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 66
    Par défaut
    Hum pourquoi ne ferait tu pas une copie de ton classeur xlt au format xls, aucun autre classeur n'est ouvert, et l'ensemble de ton classeur xlt sera ainsi copie au format xls

    PS: j'ai peut être pas tout à fait compris ce que tu voulais faire exactement.

  5. #5
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Par défaut
    Desolé c'est moi qui ne suis pas tres clair.
    En fait l'utilisateur n'a accés qu'à une xlt (pour des raisons pratiques) et je dois transferer des données sur un classeur xls ouvert (mais caché) assez régulierement (dès que l'utilisateur initialise ses données). les 2 feuilles (xls et xlt) sont rigoureusement identiques et par conséquent le plus simple pour moi aurait été de copié toute la feuille et de la coller sur la feuille de l'autre classeur mais la methode copy appliquée à une feuille ne permet que de l'inserer avant ou apres une autre...
    La technique des usedrange n'est pas terrible non plus parcque j'ai besoin que les données soient copiées au bon endroit

  6. #6
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 66
    Par défaut
    Je me demande si excel est l'application qu il te faut pour une gestion "client-serveur" (enfin c'est a quoi me fait penser ton application de la facon don t tu m'en parle), il aurait été peut etre plus simple d utiliser Access et les requetes sql. Genre tes clients sont sur Excel et quand il modifie des champs, la valeurs de ceux-ci sont directement mis à jour dans une base Access

    Mais je ne suis vraiment pas un pro d'excel, peut être qu'une personne plus calé que moi pourra venir à ton aide

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    Essaie : (à mettre dans le module ThisWorkbook)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    	Target.Copy Workbooks("Correlations.xls").Sheets(Sh.Name).Range(Target.AddressLocal(False, False))
    End Sub

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

Discussions similaires

  1. [Interop.Excel] method copy pour feuilles excel
    Par geeksideofme dans le forum C#
    Réponses: 3
    Dernier message: 22/12/2009, 12h24
  2. Methode WorkBooks copie dans le même classeur
    Par lilp1 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 26/05/2009, 15h57
  3. Fichier excel corrompu apres copie
    Par jaudurier dans le forum Maven
    Réponses: 6
    Dernier message: 03/07/2007, 10h57
  4. [VB-Excel]-pb de copy
    Par captaine93 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/01/2007, 14h01
  5. Requête pour copie rapide d'une ligne dans la table ?
    Par renaud26 dans le forum Requêtes
    Réponses: 1
    Dernier message: 17/10/2006, 09h52

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