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 une zone de cellules d'une feuille d'un classeur dans une feuille d'un autre classeur [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2014
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Copier une zone de cellules d'une feuille d'un classeur dans une feuille d'un autre classeur
    Bonjour,

    Dans le premier fichier qui ne comporte qu'une feuille protégée par mot de passe je sélectionne une zone de cellules "A1:X407", cellules verrouillées ou pas.Cette feuille comporte 2 volets

    J'ouvre un second fichier qui a la même structure que le premier (c'est un enregistrement sous..) pour coller la zone sélectionnée dans une zone identique ("A1:X407").

    Je remercie d'avance ceux qui pourrons m'aider

    Cordialement

    zikey

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 761
    Points : 28 619
    Points
    28 619
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je n'ai pas très bien compris ce que tu entends pas deux volets mais voici une procédure qui copie les cellules A3:C12 de la feuille nommée [Feuil1] d'un classeur nommé 20140722 WorkBookProtect.xlsx vers la cellule A1:C10 de la feuille nommée [Feuil1] du classeur où se trouve le code VBA.
    La feuille et les cellules du classeur source sont protégées et les deux classeurs sont ouverts.
    Le code ci-dessous se trouve dans le classeur cible (ThisWorkbook)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Copy()
     Dim rng As Range
     Set rng = Workbooks("20140722 WorkBookProtect.xlsx").Worksheets("Feuil1").Range("A3:C12")
     MsgBox rng.Cells(1, 1)
     rng.Copy ThisWorkbook.Worksheets("Feuil1").Range("A1")
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2014
    Messages : 12
    Points : 7
    Points
    7
    Par défaut XL-2010 Copier une zone de cellules d'une feuille d'un classeur...
    Merci d'avoir répondu à ma demande dans laquelle je n'ai pas apporté suffisamment de précisions.
    Je vais essayer de le faire:
    2 fichiers ouverts:
    Fichier "Présences Bénéficiaires" comportant entre autres une feuille nommée "Saisir les Présences" et une zone de cellules à copier "A1:X407".
    Fichier "Relevé des Présences" comportant une feuille nommée aussi "Saisir les Présences" dans laquelle je veux coller la zone de cellules sélectionnées dans la zone "A1:X407".
    Ce sont des fichiers xlsm.

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 761
    Points : 28 619
    Points
    28 619
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Et bien sauf erreur de ma part, il me semble que ma réponse reflète exactement ce que tu exposes ici. Il faut juste adapter le nom des feuilles de chaque classeurs, la référence aux cellules et le nom du classeur source le classeur cible étant je suppose le classeur où doit se trouver le code VBA sera également ThisWorkbook
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2014
    Messages : 12
    Points : 7
    Points
    7
    Par défaut [XL-2010] Copier une zone de cellules d'une feuille d'un classeur dans une feuille d'un autre classeur
    Bonsoir,

    Excusez-moi de vous relancer mais est-il possible de savoir si mes messages vous parviennent?

    En effet la réponse que j'ai eu ne correspond pas exactement à mon problème.

    J'ai ouvert un fichier 1 et sélectionné la feuille 1.

    Ensuite j'ai sélectionné la feuille 1 qui contient les cellules à copier.

    Cette feuille appartient à un fichier 2 déjà ouvert.

    La macro est dans le fichier 2

    Je vous remercie.

    Cordialement

    zikey

  6. #6
    Inactif  

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

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par zikey Voir le message
    Bonsoir,

    Excusez-moi de vous relancer mais est-il possible de savoir si mes messages vous parviennent?

    zikey
    Oui, c'est possible, oui, ils sont visibles.

    Philippe a répondu qu'il faut peut-être adapter un peu.

    Ceci dit, en complément des réponses de Philippe, Thisworkbook n'est pas forcément le classeur actif, (ni même le classeur sur lequel agit la macro, tant qu'à y être) mais, c'est toujours le classeur qui contient la macro en cours.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2014
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Clotûre de cette discussion
    Bonsoir,

    Tout d'abord merci de l'attention que vous avez portée à ma demande.

    C'est la première fois que j'utilise votre site et je me rends compte que je ne suis pas à la hauteur, en effet je ne suis qu'un vieux de 70 ans bafouillant les macros.

    En conclusion je n'ai pas compris votre solution et donc je considère cette discussion close pour moi.

    Encore merci

    Cordialement

    zikey

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2014
    Messages : 12
    Points : 7
    Points
    7
    Par défaut [XL-2010] Copier une zone de cellules d'une feuille d'un classeur dans une feuille d'un autre classeur
    Bonjour,

    Voulant arriver à résoudre mon problème je viens solliciter votre aide à nouveau.

    Ci-dessous une partie de la macro qui se trouve dans le fichier "Présences_Bénéficiaires.xlsm"


    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
    '     Ouverture du fichier "Relevé des Présences"
    '     Sélection de la feuille "Saisir les Présences"
    '     Déverrouillage
    '     Copie des données
     
            ChDir "C:\Les Restos du coeur hiver 2014-2015"
            Workbooks.Open Filename:="C:\Les Restos du coeur hiver 2014-2015\Relevé des Présences.xlsm"
            Sheets("Saisir les Présences").Activate
            ActiveSheet.Unprotect Password:="restos"
     
     
    '02)  Retour au fichier "Présences Bénéficiaires"
    '     Déverrouillage
    '     Sélection de la zone à copier
     
            Windows("Présences_Bénéficiaires.xlsm").Activate
            Sheets("Saisir les Présences").Select
            ActiveSheet.Unprotect Password:="restos"
            Dim rng As Range
            SetRange = ThisWorkbook.Worksheets("Saisir les Présences").Range("A1:X407")
            MsgBox rng.Cells(1, 1)
            rng.Copy Workbook("Relevé des Présences").Worksheets("Saisir les Présences").Range("A1")
    J'ai une erreur au niveau de "MsgBox rng.Cells(1,1)

    Vous remerciant par avance

    zikey

  9. #9
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 761
    Points : 28 619
    Points
    28 619
    Billets dans le blog
    53
    Par défaut
    Bonjour Joël,
    Comme répondu le 22 juillet
    Et bien sauf erreur de ma part, il me semble que ma réponse reflète exactement ce que tu exposes ici. Il faut juste adapter le nom des feuilles de chaque classeurs, la référence aux cellules et le nom du classeur source le classeur cible étant je suppose le classeur où doit se trouver le code VBA sera également ThisWorkbook
    Le code que je t'ai donné dans ma réponse du post #2 est exactement ce dont tu avais besoin.

    A titre exceptionnel je veux bien l'adapter à ton besoin décrit ci-dessous
    Merci d'avoir répondu à ma demande dans laquelle je n'ai pas apporté suffisamment de précisions.
    Je vais essayer de le faire:
    2 fichiers ouverts:
    Fichier "Présences Bénéficiaires" comportant entre autres une feuille nommée "Saisir les Présences" et une zone de cellules à copier "A1:X407".
    Fichier "Relevé des Présences" comportant une feuille nommée aussi "Saisir les Présences" dans laquelle je veux coller la zone de cellules sélectionnées dans la zone "A1:X407".
    Ce sont des fichiers xlsm.
    La procédure ci-dessous copie la plage A1:X407 de la feuille nommée [Saisir les présences] du classeur Présences Bénéficiaires.xlsm vers la feuille du même nom du classeur Relevé des Présences.xlsm
    Les classeurs 'Source' et 'Cible' doivent être ouverts
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Copy()
     Dim rng As Range
     Set rng = Workbooks("Présences Bénéficiaires.xlsm").Worksheets("Saisir les Présences").Range("A1:X407") ' Attribuer la référence à la plage source
     rng.Copy Workbooks("Relevé des Présences.xlsm").Worksheets("Saisir les Présences").Range("A1") ' Copie de la plage source vers la plage cible
    End Sub
    Remarque : Si la plage source est protégée il n'est pas obligatoire de la déprotéger pour lal copier en revanche si la plage cible est protégée, il faut la déprotéger avant la ligne de copie.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2014
    Messages : 12
    Points : 7
    Points
    7
    Par défaut [XL-2010] Copier une zone de cellules d'une feuille d'un classeur dans une feuille d'un autre classeur
    Bonjour,

    J'ai un message d'erreur au niveau de l'instruction ci-dessous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rng.Copy Workbooks("Relevé des Présences.xlsm").Worksheets("Saisir les Présences").Range("A1")
    D'avance merci

    zikey

  11. #11
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 761
    Points : 28 619
    Points
    28 619
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'ai un message d'erreur au niveau de l'instruction ci-dessous.
    En général, un message d'erreur s'accompagne d'un n° et ce n° ainsi que le contenu du message aide souvent pour dépanner.
    N'ayant que ma boule de cristal pour deviner, plusieurs possibilités s'offrent à nous dans cette ligne.
    Soit le nom du classeur n'est pas le bon, soit le nom de la feuille n'est pas correct, soit encore la variable objet rng n'est pas initialisée, soit etc.
    Tu vois cela laisse beaucoup de possibilités
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2014
    Messages : 12
    Points : 7
    Points
    7
    Par défaut [XL-2010] Copier une zone de cellules d'une feuille d'un classeur dans une feuille d'un autre classeur
    Bonjour,

    J'ai relancé la macro pour relevé l'erreur:

    Erreur 91

    "Variable objet ou variable de bloc non définie"

    Cette erreur concerne l'instruction:

    "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rng.Copy Workbooks("Relevé des Présences").Worksheets("Saisir les Présences").Range("A1")
    TOUTES MES EXCUSES

    En effet j'ai trouvé ma bêtise

    J'ai tapé "Set Range" au lieu de "Set rng"

    La macro fonctionne

    Je vous remercie pour votre patience et votre disponibilité

    Cordialement

    zikey

  13. #13
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 761
    Points : 28 619
    Points
    28 619
    Billets dans le blog
    53
    Par défaut
    Bonjour Joël,
    Cela prouve que la lecture du message d'erreur envoyé par l'éditeur aide beaucoup
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/06/2015, 20h56
  2. Réponses: 12
    Dernier message: 20/03/2015, 10h27
  3. Réponses: 1
    Dernier message: 16/06/2014, 09h22
  4. [XL-2007] Entrée la valeur d'une cellule d'un autre classeur dans une variable
    Par Coco_O dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/05/2011, 16h25
  5. Réponses: 7
    Dernier message: 25/09/2008, 14h51

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