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 :

{VBA-Excel}Création de macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut {VBA-Excel}Création de macro
    Comme toujours un soucis

    je n'arrive pas du tout a créer une macro qui va lire dans un fichier excel une valeur dans une cellule
    et qui va recopier cette valeur dans un autre fichier excel dans une cellule

    le nom de mon fichier ou se trouve la valeur
    A180_PROD_1_LOT_7083004.xls
    la cellule est A14

    le nom du fichier dans laquelle je veux copier
    thomas.xls
    la cellule est A1

  2. #2
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Mmm sur ce coup la une petite recherche sur le forum t'aurait donne la reponse, c'est une des questions recurrentes...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Workbooks("thomas.xls").Sheets("Feuil1").Range("A1").value = Workbooks("A180_PROD_1_LOT_7083004.xls
    ").Sheets("Feuil1").Range("A14").value
    Adapte les feuilles bien sur

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    ben justement c'est ce que j'avais fait dans la macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub recopie()
    Dim A180_PROD_1_LOT_7083004 As Workbook
    Dim fl As Worksheet
    Dim Cell As Range
        Set newwb = Workbooks.Add("C:\Documents and Settings\S8746037\Bureau\Etude\Programme Excel Stephane\JB\Archivage\A180_PROD_1_LOT_7083004.xls")
        Set fl = Worbook.Worksheets("5")
        For Each Cell In fl.Range("A14")
          Set Workbooks("thomas.xls").Sheets("Feuil1").Range("A1").Value = _
          Workbooks("A180_PROD_1_LOT_7083004.xls").Sheets("Feuil1").Range("A14").Value
        Next
     
    End Sub
    et mon erreur c'est

    erreur d'execution
    objet requis pour la ligne en rouge

  4. #4
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set newwb = Workbooks.Add("C:\Documents and Settings\S8746037\Bureau\Etude\Programme Excel Stephane\JB\Archivage\A180_PROD_1_LOT_7083004.xls")
        Set fl = newwb.Worksheets("5")
    Il faut lui dire quel workbooks tu utilises sinon il veut pas.

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    au quel c*** que je suis une boulette si stupide

    merci
    mais la j'ai une nouvelle erreur

    l'indice n'appartient pas a la selection

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Set Workbooks("thomas.xls").Sheets("Feuil1").Range("A1").Value = _
          Workbooks("A180_PROD_1_LOT_7083004.xls").Sheets("Feuil1").Range("A14").Value

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set fl = Worbook.Worksheets("5")
    ou ta feuille s'appelle réelement 5 ou tu confond avec son index et dans ce cas, il te faut utiliser sheets(5).

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    alsimbad j'ai deja eut ma reponse au -dessus de toi
    merci du coup de main

  8. #8
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Citation Envoyé par Thomas69
    l'indice n'appartient pas a la selection
    Cela veut dire que tu essayes de selectionner un objet qui n'existe pas, alsimbad t'as donne une bonne piste

  9. #9
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    ok

    j'ai compris il faudrait que je dise ou je copie la cellule car mon fichier thomas n'est pas dans le meme repertoire

    comment je pourrais faire?

  10. #10
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Ca n'a pas de rapport (enfin ca ne devrait pas en avoir...). j'utilise ce type de syntaxe tous les jours avec des fichiers qui sont sur plusieurs disques reseaux et ca marche. Il faut juste que le fichier soit ouvert.

    Par contre je suis moins sur du set, si tu l'enleves ca fait quoi ?

  11. #11
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    j'ai enlever le SET et ca m'affiche toujours la meme erreur
    mon fichier thomas est ouvert et ca ouvre bien mon autre fichier

    donc je vois pas pk la selection n'est pas prise

  12. #12
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Pour ouvrir un fichier existant, ce n'est pas Add mais Open
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Set newwb = Workbooks.Open filname:="C:\Documents and Settings\S8746037\Bureau\Etude\Programme Excel Stephane\JB\Archivage\A180_PROD_1_LOT_7083004.xls"
    Et tout ça ne rime à rien. Tu n'as qu'une seule cellule. Supprime les ligne en rouge, non seulement elles ne riment à rien mais elles nuisent à ta ligne.
    For Each Cell In fl.Range("A14")
    Workbooks("thomas.xls").Sheets("Feuil1").Range("A1").Value = _
    Workbooks("A180_PROD_1_LOT_7083004.xls").Sheets("Feuil1").Range("A14").Value
    Next
    Enfin, une fois ton fichier ouvert, tu dois utiliser newwb comme on te l'a dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Workbooks("thomas.xls").Sheets("Feuil1").Range("A1").Value = _
          newwb.Range("A14").Value
    Et je crois te l'avoir déjà dit.
    A+

    Edit
    Effectivement, relis ce que je t'ai mis ici

  13. #13
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    desolé ouskel j'avais completement zappe ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub recopie()
    Dim A180_PROD_1_LOT_7083004 As Workbook
    Dim fl As Worksheet
    Dim Cell As Range
        Set newwb = Workbooks.Open("C:\Documents and Settings\S8746037\Bureau\Etude\Programme Excel Stephane\JB\Archivage\A180_PROD_1_LOT_7083004.xls")
        Set fl = newwb.Worksheets("5")
        Workbooks("thomas.xls").Sheets("Feuil1").Range("A1").Value = _
          newwb.Range("A14").Value
     
    End Sub
    voici le code
    mais maintenant j'ai une erreur qui apparait

    propriéte ou methode non gérée par cette objet sur la ligne en rouge.

    J'ai essayer de rajouter un set et cela ne change rien toujours la meme erreur

  14. #14
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Resumons pour que tu comprennes bien:
    newwb est un Workbook et "vaut"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    workbooks("A180_PROD_1_LOT_7083004.xls")
    fl est une Worksheet et "vaut"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    newwb.Worksheets("5")
    'equivalent a
    workbooks("A180_PROD_1_LOT_7083004.xls").Worksheets("5")
    Tu as donc ecrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    workbooks("A180_PROD_1_LOT_7083004.xls").range("A14")
    Tu comprends ?

  15. #15
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Autant pour moi. newwb est ton classeur, tu dois utiliser la feuille : FL1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Workbooks("thomas.xls").Sheets("Feuil1").Range("A1").Value = _
          FL1.Range("A14").Value
    Désolé
    A+

  16. #16
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    merci tonton pour ton explication

    ouskel tu as fait une faute c'est fl et non FL1
    mais maintenant ca marche

    je vous remercie beaucoup encore une fois de plus vous m'avez beaucoup aider

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

Discussions similaires

  1. [VBA-Excel] Création d'une boîte de dialogue interactive
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/07/2006, 11h55
  2. [VBA-excel]Probleme de macro pour creer un graphique.
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/07/2006, 15h42
  3. [VBA Excel] Une même macro pour plusieurs CheckBox
    Par Choupett' dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 16/06/2006, 13h54
  4. VBA Excel - Création de graphique
    Par sat478 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/01/2006, 16h11
  5. [VBA/Excel] Formule via macro
    Par UNi[FR] dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/10/2005, 15h11

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