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-E]copie de .xls et formulaires


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut [VBA-E]copie de .xls et formulaires
    bonjour

    j'espere que le titre convien..enfait voila..

    je fai la copie de certaine cellule d'un .xls a un autre...

    mais certaine de ces cellules renvoi du texte saisie dans un formulaire

    exemple..

    un formulaire avec "nom direction" dans le quel on rentre SG renvoi SG dans la cellule a travers une variable "=libdirection"

    du coup a la copie de mes cellules excel ouvre une fenetre ou il me demande en gros si je veu renommer cette variable... si je dit non il me met a la place de "SG " "#REF" et si je dit oui que je lui donne un nom au hasar meme si c'est "fzeafz" il l'accepte et affiche bien "SG" comment evité tout sa ( se n'est pas tres amusant pour un utilisateur...)???

    merci

    ps: si vous comprenez pas hesitez pas a demander

  2. #2
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Salut
    As-tu fait une copie via le menu Collage spécial qui permet de ne copier que les valeurs? (en code vba, je veux dire...)

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    oui j'avai essayé le collage special mais sa n'avais rien donné...

    j'ai peu etre utilisé un code qui n'etait pas bon.. si tu pouvai donné le code auquel tu pense stp..

    Tu dors quand, ogenki ?
    entre 3h du matin et midi...

    ps: on doit pas etre sur le meme fuseau horaire

  4. #4
    Expert éminent


    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
    Par défaut
    montre nous ton code de copier... on rajoutera le pastespecial... à la place du past...

  5. #5
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Workbooks.Open Filename:= _
                "C:\Documents and Settings\avaysse\Mes documents\" & XlsFiles(i)
                'ActiveWindow.Visible = False
                Range("A1:N6").Select 'selection des cellules a copier
                Selection.Copy ' copie des cellules
                Windows("test2.xls").Activate ' active la fenetre de test2
                ActiveWorkbook.Worksheets(1).Select 'active la fenetre de test2
                Range("A" & lastline).Select 'selectionne la dernier ligne
                ActiveSheet.Paste 'colle les cellules recuperées
    voila

  6. #6
    Expert éminent


    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
    Par défaut
    tu aurai pu avoir facilement le code avec l'enregistreur de macro..., change la derniére ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveSheet.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False

  7. #7
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    desolé bbil

    mais sa me renvoi mon erreur preferé

    Erreur defini par l'application ou par l'objet
    je te met le code...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Workbooks.Open Filename:= _
            "C:\Documents and Settings\avaysse\Mes documents\" & XlsFiles(i)
    'ActiveWindow.Visible = False
    Range("A1:N6").Select 'selection des cellules a copier
    Selection.Copy ' copie des cellules
    Windows("test2.xls").Activate ' active la fenetre de test2
    ActiveWorkbook.Worksheets(1).Select 'active la fenetre de test2
    Range("A" & lastline).Select 'selectionne la dernier ligne
    ActiveSheet.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False 'colle les cellules recuperées

  8. #8
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveSheet.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
                False, Transpose:=False 'colle les cellules recuperées

  9. #9
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Il ne faudrait pas remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.Worksheets(1).Select
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.Worksheets(1).Activate
    ?

  10. #10
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    salut ouskel..

    je vien de testé ton bout de code mais il me renvoit toujour la meme erreur je commence a desesperé avec cette erreur lol

    erreur defini par l'application ou pas l'objet
    EDIT: erf puisque son post a disparu je met le code qu'il avait donné

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Workbooks("test2.xls").Activate ' active la fenetre de test2
    Worksheets(1).Select 'SÉLECTIONNE la fenetre de test2
    Range("A" & lastline).Select 'selectionne la dernier ligne
    ActiveSheet.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False 'colle les cellules recuperées
    voila

    merci de votre aide

  11. #11
    Expert éminent


    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
    Par défaut
    Citation Envoyé par bbil
    ... et comme cela ... 2 lignes en une...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("A" & lastline).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False

  12. #12
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    toujour la meme erreur... je ne comprend pas... sa marche chez vous ?

  13. #13
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bon...

    Et ça,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A" & lastline).PasteSpecial Paste:=xlValues
    Tout simplement?

    Inutile de passer les arguments qui sont par défaut.
    Ca évite de mettre, éventuellement, un espace devant un paramètre qui n'en accepte peut-être pas.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  14. #14
    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
    sa marche chez vous ?
    Oui ! Les trois syntaxes fournies fonctionnent.

    Nouvelle question :
    As-tu essayé de faire un "Collage spécial" -> "valeurs" manuel ?
    Tu devrais le faire, peut-être une dll n'est-elle pas activée...
    Tu nous dis

    A+

  15. #15
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    bonjour

    je vien de testé la valeur de lastline elle est de 1 donc sa selectionne bien la cellule A1 pour lancé la copie...




    Nouvelle question :
    As-tu essayé de faire un "Collage spécial" -> "valeurs" manuel ?
    Tu devrais le faire, peut-être une dll n'est-elle pas activée...
    Tu nous dis
    tu pourais etre plus precis sur se que je devrais faire stp

    EDIT : je vien de testé en selectionant exactement toute les cellules dont j'ai besoin
    j'ai donc fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A" & lastline:"N"&lastline+6).PasteSpecial Paste:=xlValues
    mais la sintaxe ne lui plait pas si vous avez une solution...merci

  16. #16
    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
    A la recherche de Application.caller, j'ai trouvé ça. Tu as réglé ce problème

    Avant de connaître les autres syntaxe, j'utilisais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Worksheets("Feuil1").Select
        Range("A1:A17").Select
        Selection.Copy
        Worksheets("Feuil2").Cells(33, 1).PasteSpecial Paste:=xlValues
    où 33 est le N° de la dernière ligne renseignée + 1

    A bientôt

  17. #17
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut


    tu peu expliqué stp

    eeeeu je fait la copie entre 2 .xls...pas entre 2 feuille de classeur... enfin si j'ai bien compris le code

  18. #18
    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
    Je reprends ton code du début
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Workbooks.Open Filename:= _ 
                "C:\Documents and Settings\avaysse\Mes documents\" & XlsFiles(i) 
                'ActiveWindow.Visible = False 
                Range("A1:N6").Select 'selection des cellules a copier 
                Selection.Copy ' copie des cellules
    Et je remplace les quatre dernières lignes par celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                Workbooks("test2.xls").Worksheets(1).Cells(lastline, 1).PasteSpecial Paste:=xlValues
    Pour aller ensuite dans test2.xls, si tu en as "envie", ensuite, tu fais simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(("test2.xls").activate
    Ton fichier Test2.xls doit être ouvert, c'est tout.

    A+

    Bon je retourne à "Application.caller"

  19. #19
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    je vien de tester en fesant sa..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      Workbooks.Open Filename:= _
                "C:\Documents and Settings\avaysse\Mes documents\" & XlsFiles(i)
                Range("A1:N6").Select 'selection des cellules a copier
                Selection.Copy ' copie des cellules
                Workbooks(("test2.xls")).Worksheets(1).Cells(lastline, 1).PasteSpecial Paste:=xlValues
                Workbooks(("test2.xls")).Activate
    bin sa plante avant la copie

  20. #20
    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
    bin sa plante avant la copie
    Attends, je n'avais pas vu ça. Ça veut dire que Range("A1:N6").select n'est pas accepté...
    Essaie de sélectionner la feuille avant de sélectionner la plage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Workbooks.Open Filename:= _ 
                "C:\Documents and Settings\avaysse\Mes documents\" & XlsFiles(i)
    Worksheets("NomDeLaFeuille").select
    Range("A1:N6").select
    Tu dis

    A+

Discussions similaires

  1. [VBA-E] copie d'un formulaire dans un Base de données
    Par bigbozz dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 05/02/2007, 20h26
  2. [VBA-E] copie d'1 .xls à un autre (besoin de vos lumières)
    Par teaRz dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 07/06/2006, 16h22
  3. Réponses: 2
    Dernier message: 03/11/2005, 19h48
  4. [VBA-E] Copie et renomage de feuilles
    Par cbonnard dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/10/2005, 15h55
  5. [VBA] Changer le nom d'un formulaire
    Par lbourlet dans le forum Access
    Réponses: 2
    Dernier message: 05/11/2004, 11h54

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