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
    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
    si il est accepté puisque sur ma page elle sont entouré et tout... c'est vrement la copie.. je croi..

  2. #2
    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
    Bon, j'ai une idée pour tester ce que tu dis
    Mets exit sub après la ligne de copy
    Là, si la copie est réalisée, les cellules sont dans leBloc-Notes.
    Sorti de la macro, place-toi dans une cellule d'une autre feuille de calcul et fait coller manuellement
    Si la copie a marché, le collage se réalise. J'ai fait l'essai en créant un nouveau classeur.

    Tu dis

    A toi

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    desolé du temp de reponse mais nous ne vivons vrement pas au meme heure.. lol

    bon alors
    je vien de faire ton test et la copie se fait sans probleme



  4. #4
    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 regardé les erreurs possible sur un #REF.. et je trouve sa..

    L'exécution d'une macro qui entre une fonction renvoyant la valeur #REF!

    Vérifiez la fonction pour voir si un argument fait référence à une cellule ou à une plage de cellules non valide. Par exemple, si la macro entre une fonction qui fait référence à une cellule située au-dessus de la fonction et que la cellule contenant la fonction se trouve sur la ligne 1, la fonction renvoie la valeur d'erreur #REF! parce qu'aucune cellule ne peut se trouver au-dessus de la ligne 1.
    si quelqun peu m'explique comment reglé sa..

    ou encore..
    La suppression des cellules auxquelles d'autres formules font référence ou le collage de cellules déplacées dans des cellules auxquelles d'autres formules font référence

    Modifiez les formules ou rétablissez-les dans la feuille de calcul en cliquant sur le bouton Annuler immédiatement après avoir supprimé ou collé les cellules.
    le reste n'a pas l'air de corespondre a mon probleme...

  5. #5
    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
    Ok, je crois que j'ai une piste pour ton copier/coller. si c'est ça, je vais en Guadeloupe te mettre la tête dans le sable...
    N'as-tu pas des cellules fusionnées, soit dans la feuille de copie, soit dans la feuille où tu colles ?

    Allez, avoue !

    A+

  6. #6
    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... Je te parle la tête dans le goudron...
    J'ai une erreur impardonnable dans le code que je t'ai donné
    Workbooks(("test2.xls").Worksheets(1).Cells(lastline, 1).PasteSpecial Paste:=xlValues
    Mets à la place
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                Workbooks("test2.xls").Worksheets(1).Cells(lastline, 1).PasteSpecial Paste:=xlValues
    J'avais une parenthèse de trop...
    J'ai trouvé ça en cherchant une solution... Mais entre nous, tu aurais pu le voir non ? Ça m'aurait évité de me ridiculiser...

    Tu essaies et tu dis

    A+

  7. #7
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    ton code "marche" bien effectivement j'ai plus de #REF mais j'ai plus rien du tout...

    lool enfait la page que je copie ressemble a une feuille A4 c'est a dire plus de cellule tout est blanc et on voit le texte en entier dans les cellules.. apres ton code bien.. il y a juste le texte dans les cellule les redimentionnement n'est pas fait et pas de couleur...

    mais effectivement plus de #REF

  8. #8
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    N'as-tu pas des cellules fusionnées, soit dans la feuille de copie, soit dans la feuille où tu colles ?

    oui surement dans ma feuille de copie.. mais faut que je les garde...si possible..

  9. #9
    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
    Une question à la fois
    Oui, effectivement, la copie de "valeurs" seules ne copie pas la mise en forme
    Tu peux réitérer la copie : Une fois tu copies tout (valeurs et cellules éventuellement fusionnées) et la seconde, tu copies les valeurs seules
    Par très élégant mais puisque je n'ai pas d'autre solution, je fais ce que je peux avec ce que j'ai...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    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
                Workbooks("test2.xls").Worksheets(1).Cells(lastline, 1).Paste
                Selection.Copy   'Tu recopies les cellules collées sur place
                Selection.PasteSpecial Paste:=xlValues
                Workbooks("test2.xls").activate
    Tu essaies et tu dis.
    Il est possible que tu aies un problème de liaisons à supprimer mais on verra après (ce peut n'être qu'une question de paramètres dans "PasteSpecial")

    N'as-tu pas des cellules fusionnées, soit dans la feuille de copie, soit dans la feuille où tu colles ?
    oui surement dans ma feuille de copie.. mais faut que je les garde...si possible..
    Pour ce deuxième problème, t'as un problème...
    Dans ma version (VBA97) tu n'obtiendras jamais le même format sur une plage de cellules.
    Pour la fusion de plusieurs cellules, la méthode que je t'ai donnée fonctionne. Pour le format (largeur de colonnes, hauteur de lignes...) il dépend du format de la FEUILLE.
    Or comme tu copies des plages, la mise en forme générale de la feuille dans laquelle tu colles ne peut pas correspondre à celle de la feuille où tu copies.
    Si tu veux tout faire par soft, alors il te faudra régler les largeurs de colonnes et les hauteurs de lignes... Bon courage. De déjà pas mal tordu, ton "truc" va vite devenir une usine à gaz. J'espère que tu structures...

    Tu me réponds pour la première partie ?

    A+

  10. #10
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    Tu me réponds pour la première partie ?
    oui.. sa marche pas... lol

    j'ai fait un copier coller iolent je regarde si il n'y a pas des chose a modifier


    edit sous l'emprise d'une angine et d'une fievre horible je rentre chez moi.. je te previen quand je revien

  11. #11
    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
    Qu'est-ce qui ne marche pas ? Quelle ligne ton erreur ?

    A+

    Edit
    sous l'emprise d'une angine et d'une fievre horible je rentre chez moi
    Soigne-toi bien et reviens-nous en pleine forme, on bouge pas...

  12. #12
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    coucou me revoila.. pas en forme mais pas le choix non plus..

    le code plante ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Workbooks("test2.xls").Worksheets(1).Cells(lastline, 1).Paste
                Selection.Copy   'Tu recopies les cellules collées sur place
    plus precisement sur le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.Copy   'Tu recopies les cellules collées sur place
    voila merci encore de ton aide ousk

    [EDIT]
    'Tu recopies les cellules collées sur place
    pourquoi tu fai sa ?

    rectification... il plante sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("test2.xls").Worksheets(1).Cells(lastline, 1).Paste
    il plante me renvoi une erreur
    propriete ou methode non geré par cet objet

  13. #13
    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 t'ai retrouvé...
    Malheureusement, le code que je t'ai passé fonctionne chez moi et je ne vois pas pourquoi il déraille chez toi.

    Je vais te passer la syntaxe la plus scolaire qui soit. Tu l'essaies sur un autre micro. Si ça ne marche pas, alors je ne vois pas.
    Ne crée pas la macro sur ton poste mais sur un autre poste.
    Soit deux fichiers Excel, Fichier1.xls et Fichier2.xls
    Dans Fichier2 , tu crées un tableau avec certaines cellules fusionnées et tu enregistres le fichier dans "C:\Documents and Settings\Mes documents\"

    Ensuite, dans fichier1, tu crées un module où tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Copierfichier()
    Workbooks.Open Filename:= "C:\Documents and Settings\Mes documents\" & "Fichier2.xls" 
         Range("A1:N6").Select 'selection des cellules a copier 
         Selection.Copy ' copie des cellules 
         Workbooks("Fichier1.xls").select
         Worksheets(1).Select
         Cells(1,1).select
         ActiveSheet.Paste 
         Selection.Copy   'Tu recopies les cellules collées sur place 
         Selection.PasteSpecial Paste:=xlValues 
         Workbooks("Fichier2.xls").activate
    end sub
    Ta question :
    'Tu recopies les cellules collées sur place
    pourquoi tu fai sa ?
    Parce que lors du premier collage, pour avoir le format (couleur, caractères, fusions de cellules etc..., j'ai fais un collage total. mais tu peux avoir des formules, or si elle font référence à d'autres feuilles, tu auras une liaison avec le classeur dans lequel elles ont été copiées.
    Donc, je recopie ce que j'ai collé et je ne colle que les valeurs. Ce que te donne "PasteSpecial Paste:=xlValues"
    Ok ?

    J'attends les résultats de ton essai.

    A+

    Edit
    Attention j'ai corrigé la macro (encore plus scolaire)
    Avant d'essayer sur un autre poste, tu peux l'essayer sur le tien...

  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
    Si tu n'ajoutes pas l'extension . xls au nom de ton fichier, ça ne peut pas marcher... Tu es sûr que XlsFiles(i) contient l'extension .xls ?

    Essaie ça avant d'aller à la recherche d'un autre pc...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Workbooks.Open Filename:= "C:\Documents and Settings\avaysse\Mes documents\" & XlsFiles(i) & ".xls"
                'ActiveWindow.Visible = False 
                Range("A1:N6").Select 'selection des cellules a copier 
                Selection.Copy ' copie des cellules 
                Workbooks("test2.xls").Worksheets(1).Cells(lastline, 1).Paste 
                Selection.Copy   'Tu recopies les cellules collées sur place 
                Selection.PasteSpecial Paste:=xlValues 
                Workbooks("test2.xls").activate
    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
    question surement stupide mais comment on fusionne les cellules.. j'ai pas trouvé dans le clic droit

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

    j'ai modifié le code en consequence mais il bloque sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("test2.xls").Worksheets(1).Cells(lastline, 1).Paste

  17. #17
    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 me suis absenté... je t'explique par mp

    Bon, ça marche pas... Essaie en mettant 1 à la place de lastLine

    Tu me dis

    A tout'

  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
    Fusionner les cellules ? Tu sélectionnes les cellules à fusionner, tu vas dans format, cellules, onglet alignement, fusionner

    C'est bon?

    A+

    Edit
    Essaie avec le dernier code que je t'ai donné, le collage après avoir sélectionné la feuille puis la cellule.

  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 testé ton code... comme je l'avais dit au dernier post il marche pas.. j'ai donc changer lastline par 1 mais rien non plus.. j'essaye le code donné a coté avec les feuille 1 et 2..

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