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 :

Copy / Paste de Range d'un fichier à un autre


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 18
    Par défaut Copy / Paste de Range d'un fichier à un autre
    Bonjour,

    J'ai un problème très étrange et donc très énervant sur excel:

    En vba depuis un fichier excel, j'ouvre un autre fichier. Je veux copier des Ranges déterminés dans le fichier "externe" pour les coller à des endroits précis dans le fichier qui contient le code:

    Mon problème est que je souhaite désigner des Ranges via les coordonnées des cellules, comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(a,b),Cells(a',b'))
    et non pas comme celà: Le truc étrange c'est que les deux types de sélection fonctionnent dans le workbook du fichier qui contient le code mais pas pour celui du fichier externe, où je suis visiblement obligé de passé par les coordonnées lettrées des cellules...

    mon code: (wbSource est la variable workbook désignant le fichier externe)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Range(Cells(1, 1), Cells(3, 3)).Copy 'Fonctionne!
     
    wbSource.Worksheets(1).Range(Cells(1, 1), Cells(3, 3)).Copy  ' Ne fonctionne pas
     
    wbSource.Worksheets(1).Range("A1:B3") 'Fonctionne

    Etrange non? Quelqu'un peut m'aider à faire ce fichu copier collé à partir des coordonnées?

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 8
    Par défaut
    Est-ce que cela change quelquechose si tu mets dans ton code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application.ReferenceStyle = xlR1C1
    C'est supposé fixer le style en mode R1C1 au lieu de A1.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 18
    Par défaut
    Non ça ne change rien... D'une manière générale j'arrive à désigner une cellule par ses coordonnées mais là c'est juste le range(...) qui déconne quand je le fais pour la worksheet du fichier externe.

    Quelqu'un a t'il un morceau de code qui ferait ça:

    (-ouverture d'un fichier externe)
    -sélection d'un range (par les coordonnées de deux cellules) dans une feuille du fichier externe
    -Copy du range
    -Paste à un endroit dans le fichier d'origine

    Ce serait bien gentil!!

  4. #4
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    bonjour

    si ce n'est pas un pastespecial :
    le classeur source est le deuxieme ouvert il porte donc l'index 2

    Le classeur de reception est le classeur 1 le premier ouvert, je place la copie dans la feuille 1 cellule A1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(2).Sheets(1).Range(Cells(1, 1).address & ":" & Cells(3, 3).address).Copy destination:= workbooks(1).sheets(1).range("A1")
    bonne soirée

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir

    Tu peux aussi tester

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    wbSource.Worksheets(1).Range( _
        wbSource.Worksheets(1).Cells(1, 1), _
        wbSource.Worksheets(1).Cells(3, 3)).Copy

    michel

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Par défaut
    Bonsoir Hochimi, Tinnou, Wilfried, mon cher Michel ;-)

    pour utiliser cells(x,y) il faudrait que le classeur externe soit le classeur actif (je découvre le fait avec ce post).

    ce code fonctionne à partir de classeur1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Workbooks("essai.xls").Activate
    tablo = Range(Cells(1, 1), Cells(3, 3))
    Workbooks("classeur1").Activate
    Range("D10:F13") = tablo
    bonne soirée

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

Discussions similaires

  1. [XL-2000] insert > copy > paste - formules avec liaisons vers un fichier source
    Par coyote90 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/07/2014, 11h24
  2. [WD-2003] Copie d'une sélection d'un fichier à un autre
    Par naunau31 dans le forum VBA Word
    Réponses: 1
    Dernier message: 22/04/2012, 18h19
  3. Objet Range d'un fichier à l'autre
    Par malouxa dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/12/2008, 21h20
  4. Réponses: 8
    Dernier message: 25/01/2008, 11h48
  5. Copy/paste dans un fichier xml en VB .Net
    Par RaphTIM dans le forum VB.NET
    Réponses: 2
    Dernier message: 25/05/2007, 21h07

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