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 cellule depuis une autre workbook dans la feuille source


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 21
    Points : 10
    Points
    10
    Par défaut Copier une cellule depuis une autre workbook dans la feuille source
    Salut tout le monde,

    je n arrive pas a copier une cellule depuis un autre workbook.

    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
    Sub copier()
    Dim tmp As Integer
    Dim wb, wb1 As Workbook
     
    Set wb1 = ActiveWorkbook
     
    Set wb = Workbooks.Open("a") ' le workbook d ou je vais copier la cellule 
    With wb.Worksheets("160")' la feuille d ou je vais copier la cellule 
     
                tmp = Range("N2").Value
     
    End With
     
    With wb1.Worksheets("b") ' ou je vais coller la Cellule
     
        Range("I21").Value = tmp
     
    End With
     
    wb.Close
    End Sub
    Avez vous une idee ou l erreur dans mon code ?
    Merci

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour,

    peut-être qu'un point est manquant devant une propriété,

    sinon à quoi bon utiliser l'instruction With ? Revoir l'aide et son exemple …


    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  3. #3
    Invité
    Invité(e)
    Par défaut Bonjour,
    With a pour objet de réduire l'écriture du code
    Code Exemple : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With wb1.Worksheets("b")
    .range("a1")="toto"
    .range("a2")="toto"
    .range("a3")="toto"
    .range("a4")="toto"
    toi tu as une instruction et en plus tu transit par la variable tmp?????
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wb1.Worksheets("b").Range("I21").Value= wb.Worksheets("160").Range("N2").Value
    il y a moins à écrire
    Dernière modification par AlainTech ; 27/06/2014 à 20h31. Motif: Suppression de la citation inutile

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    et bien j ai alleger mon code et j ai laisser "with"
    sinon l erreur est : Erreur Automation

    je viens de redemarrer Excel et Le message d'erreur qui s'affiche est le suivant: "Erreur d'Exécution 9' : L'indice n'appartient pas à la selection "

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour

    C'est quoi "a" ?

    Si c'est une variable avec le nom et le chemin du fichier il faut enlever les doubles quotes.

    Philippe

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    "a" est le chemin du fichier excel

    Voici le code maintenant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim wb, wb1 As Workbook
     
     
    Set wb1 = ActiveWorkbook
     
    Set wb = Workbooks.Open("chemin")'chemin est le chemin di fichier excel
     
    wb1.Worksheets("160").Range("I21").Value = wb.Worksheets("160").Range("N2").Value
     
    wb.Close
    et j ai toujours la meme erreur

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Philippe JOCHMANS Voir le message
    Si c'est une variable avec le nom et le chemin du fichier il faut enlever les doubles quotes.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    non c'est le chemin c'est pas une variable.

  9. #9
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par Haikel22 Voir le message
    non c'est le chemin c'est pas une variable.
    ??? et ton fichier "a" existe bien ????

    pour quoi un coup il se nomme "a" et le coup d'avant "chemin" ???

  10. #10
    Invité
    Invité(e)
    Par défaut
    Re

    Citation Envoyé par Haikel22 Voir le message
    non c'est le chemin c'est pas une variable.
    Lorsque tu utilises l'instruction Workbooks.Open il faut le chemin du fichier (son emplacement sur le disque dur et son nom).

    Merci de consulter l'aide, car "Chemin" ne veut rien dire, sinon c'est Chemin est c'est une variable qui contient le chemin et le nom du fichier.

    Philippe

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    et bien j ai bien tout ecrit avec le chemin complet mais je les ai enlever avant de poster
    Voici le code comme il est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set wb1 = ActiveWorkbook
     
    Set wb = Workbooks.Open("C:\import.xlsx")
     
    wb1.Worksheets("160").Range("I21").Value = wb.Worksheets("160").Range("N2").Value
     
    wb.Close

  12. #12
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    c'est mieux avec un code plus complet

    plusieurs questions :

    - est tu sur du classeur actif au lancement de ta macro ? (utiliser ActiveWorkbook est rarement une bonne idée !! )
    - dans quel classeur est placé ton code ??? un 3° classeur ?
    - que ce passe-t-il au lancement de ton code .?


    ...

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    oui je vais copier une cellule depuis un autre classeur dans mon classeur qui est deja ouvert, actif et ou se trouve la macro.
    J ai essayer avec un 3eme classeur et cela ne marche toujours pas.
    Au lencement du code le classeur s ouvre et se plante dans la ligne:
    wb1.Worksheets("160").Range("I21").Value = wb.Worksheets("160").Range("N2").Value
    et comme erreur j ai " "Erreur d'Exécution 9' : L'indice n'appartient pas à la selection ""

  14. #14
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    le classeur contenant ta macro s'utilise grâce à l'objet "ThisWorkbook" et pas "ActiveWorkbook" ...

    ensuite as tu bien une feuille nommée "160" sur chacun de tes 2 classeurs ?

  15. #15
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    J ai trouver l'erreur
    c'est tout bete
    La feuille en faite est nommer "160 " et non "160"

    Ce foutu espace ma fait perder une journee

    Merci pour ton aide

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 16/04/2015, 16h41
  2. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  3. [XL-2010] Copier les cellules d'une colonne dont la valeur à changé dans une autre colonne
    Par caeruleum dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/09/2012, 22h01
  4. Ecrire dans une cellule depuis une autre?
    Par noel45 dans le forum Excel
    Réponses: 5
    Dernier message: 10/01/2008, 16h00
  5. [VBA]Copier le contenu d'une cellule d'un autre classeur
    Par dudu59 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 01/02/2006, 17h08

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