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 Coller cellules vers autre classeur [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2014
    Messages : 77
    Par défaut Copier Coller cellules vers autre classeur
    Bonjour,

    J'ai un classeur central qui ouvre différent classeurs excel et j'aimerais copier de ce classeur central deux cellules dans chaque classeur excel qu'il ouvre (dans deux onglets). J'ai fais le plus dur à savoir ouvrir chaque classeurs...

    J'ai souligné la ou il y avait un soucis...

    Merci beaucoup pour votre aide

    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
    Option Explicit
    Sub Test()
    Dim Plage As Range, InpRng As Range
    Dim Cel As Range
    'On Error GoTo Err_Read
    Dim Derl As Long
    Derl = ThisWorkbook.Worksheets("Mensuel").Range("A" & Cells.Rows.Count).End(xlUp).Row
    Set InpRng = ThisWorkbook.Worksheets("Mensuel").Range("A2:A" & Derl)
    Debug.Print InpRng.Address, InpRng.Cells.Count
    For Each Cel In InpRng
        If Trim("" & Cel) <> "" Then Histo CStr(Cel) Else MsgBox Cel.Address & " invalide"
    Next
    End Sub
    Sub Histo(Fichier As String)
    Dim Sh As Worksheet
    Dim wb As Workbook
    Application.DisplayAlerts = False
    Set wb = Workbooks.Open(Fichier)
    Application.DisplayAlerts = True
    For Each Sh In wb.Sheets
        TraitementSheet Sh
    Next
    wb.Save
    wb.Close
    End Sub
    Sub TraitementSheet(Sh As Worksheet)
    Dim Plage As Range
    Dim Cel As Range
     
    Sh.Range("D1:D2").ThisWorkbook.Worksheets.Copy Destination:=Sh.Valorisation and Sh.Histo Range.Activate("B3:B4")
    
    
     
    End Sub

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    c'est quoi ce And dans destination ?
    Si tu as 2 copies à faire et bien c'est 2 lignes.
    Et si c'est juste la valeur qui t'intéresse tu peux faire cellB.value=cellA.value*(avec classeurs et feuilles d'indiquées bien sûr)
    eric

    PS :oulaaaa, je n'avais pas tout vu...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sh.Range("D1:D2").ThisWorkbook.Worksheets.Copy
    Regarde les tutos pour ler B.A.BA, ça ne veut rien dire ta ligne
    Il faut partir du plus grand au plus petit.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    workbooks("machin").sheets("truc").range("A1")
    Mais de toute façon si sh a été bien correctement initialisé il connait son parent (le workbook)

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2014
    Messages : 77
    Par défaut
    J'ai mis and pour copier du fichier central (ThisWorkbook.Worksheets) les cellules ("D1:D2")
    vers en destination les onglets "Valorisation" (Sh.Valorisation) et "histo" (and Sh.Histo Range.Activate) , cellules B3 à B4 ("B3:B4") du classeur ouvert

    J'ai essayé avec votre aide Eric mais ca ne marche pas..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sh.Range("D1:D2").ThisWorkbook.Worksheets.Copy Destination:=Sh.Valorisation and Sh.Histo Range.Activate("B3:B4")

  4. #4
    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,
    Citation Envoyé par gilles171 Voir le message
    J'ai essayé avec votre aide Eric mais ca ne marche pas..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sh.Range("D1:D2").ThisWorkbook.Worksheets.Copy Destination:=Sh.Valorisation and Sh.Histo Range.Activate("B3:B4")
    Citation Envoyé par Eriiic
    Si tu as 2 copies à faire et bien c'est 2 lignes.
    Où as tu suivi les conseils d'Eriiic c'est exactement la même ligne de code que tu remet ...


    Sinon tu peux aussi l'aide en ligne sur la méthode copy: range-copy-method-excel

  5. #5
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2014
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2014
    Messages : 77
    Par défaut
    J'ai repris les BABA mais au niveau du passage souligné cela me mets "l'indice n'appartient pas à la sélection...
    ThisWorkbook.Worksheet est le nom du nouveau classeur ouvert mais mon code initial ouvre et rerferme de nombreux classeur donc je ne sais pas comment appeler ce nouveau classeur (qui est déjà ouvert)

    En clair ligne 5 est mon classeur source dont les cellules vont etre copiées
    Et ligne 8 mon nouveau classeur qui est ouvert et qui va recevoir les cellules copiées (je ne sais pas comment le nommer p/r à mon code plus haut....)

    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 TraitementSheet(Sh As Worksheet)
    Dim Plage As Range
    Dim Cel As Range
     
      ThisWorkbook.Worksheets("Feuil1").Range("B3:B4").Copy
     
      'Activation du classeur cible
      ThisWorkbook.Worksheets("Valorisation").Activate
     
      'Sélection de la cellule de debut de copie
      [B3].Select
     
      'Collage de la plage de cellule
      Selection.Paste
    
    
     
    End Sub

  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
    L'erreur te dit que la feuille n'existe pas dans thisworkbook.
    Thisworkbook est le classeur qui contient la macro.
    Si le classeur sur lequel tu veux copier est le classeur actif, tu peux utiliser activeworkbook
    Sinon utiliser une variable pendant la macro: a la création/ouverture du classeur MonClasseur = activeworkbook.name puis au moment opportun Workbooks(MonClasseur).Worksheets("Valorisation").Activate

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

Discussions similaires

  1. [XL-2013] Copier/coller sur un autre classeur sous condition(s)
    Par Snakoct dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/01/2018, 14h10
  2. [XL-2007] Copier Coller Ligne vers autre feuille de même classeur
    Par pasterlouis dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/06/2013, 09h58
  3. copie de cellule vers autre classeur
    Par pilcar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/12/2012, 10h42
  4. pb macro copie cellule vers autre classeur
    Par pilcar dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 18/12/2012, 16h15
  5. [XL-2003] Copier Coller dans un autre classeur
    Par Lucho84 dans le forum Excel
    Réponses: 2
    Dernier message: 12/11/2011, 17h42

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