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 :

Problème collage spécial sur nouveau classeur via macro


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Controleur de gestion
    Inscrit en
    Février 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Controleur de gestion

    Informations forums :
    Inscription : Février 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Problème collage spécial sur nouveau classeur via macro
    Bonsoir,

    je découvre excel depuis peu et je me permets de solliciter votre aide en matière de macro VBA sur excel.

    Voila l'idée,
    Je travaille actuellement en coopération avec des comptables et après avoir eu ouïe de l'import/export possible de données sur le logiciel comptable,
    j'ai eu pour idée de concevoir un tableau excel regroupant l'intégralité des informations qu'on trouve sur une feuille de caisse et relativement simple à remplir, de sorte que le remplissage reviennent directement aux manageurs des différents sites sans que cela nécessite une quelconque connaissance comptable.
    La finalité étant que ce tableau génère automatiquement les écritures comptables adéquates de manière à pouvoir les importer sur Sage (logiciel comptable) et soulager les comptables en questions de la saisies de 2 grands journaux (caisse, vente)pour qu'il se penche d'avantage sur le contrôle des sites.

    Tout marche au top, sauf que j'aurais souhaité mettre en place un bouton, qui, une fois le tableau complété, copie la plage de cellules ou se trouve mes écritures (sur la même feuille en dessous du tableau), ouvre une nouveau classeur, et colle ces écritures via un collage spécial (format et valeur), puis enregistre le tout sous un format .txt qui est le format nécessaire à l'import.

    Pour cela j'ai fais la manip via la fonction "enregistrer" dans développeur, et j'ai essayer de l'exécuté à nouveau une fois terminé, sauf que sa bloque au niveau du collage spécial (mais pas en copier/coller tout simple déja testé), voila le code utilisé :

    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
    Sub MacroVente()
    '
    ' MacroVente Macro
    '
     
    '
        Application.Goto Reference:="Vente"
        Selection.Copy
        ExecuteExcel4Macro "WINDOW.SIZE(398,53,"""")"
        ExecuteExcel4Macro "WINDOW.MOVE(2,-43,"""")"
        Workbooks.Add
        Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
            xlNone, SkipBlanks:=False, Transpose:=False
        Range("A1:I527").Select
        ActiveWorkbook.SaveAs Filename:= _
            "Macintosh HD:Users:geoffreyohayon:Desktop:Vente2.txt", FileFormat:=xlText, _
            CreateBackup:=False
        ActiveWindow.Close
    End Sub
    A savoir que j'ai renommé ma plage de cellules "ventes"

    Et voila l'erreur qui apparâit :

    Erreur 1004, la méthode PastSpecial de la classe Range à échoué..
    Si quelqu'un est en mesure de me fournir un peu d'aide, j'apprécierai énormément.

    En vous remerciant,
    Ohayon Geoffrey

  2. #2
    Membre averti Avatar de pasdechances
    Homme Profil pro
    Alternant, Ingénieur en systèmes Informatiques et Industriels
    Inscrit en
    Septembre 2015
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Alternant, Ingénieur en systèmes Informatiques et Industriels
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 218
    Points : 403
    Points
    403
    Par défaut
    Bonjour,

    Pourquoi ne pas faire un copier coller simple puis une mise en forme durant l'enregistrement ?
    N'oublier pas de cliquer sur quand vous avez trouvé une solution qui vous convient.
    Si mon intervention vous a été utile un petit serait sympatique.
    Et si vous avez du temps à consacrer, pensez a venir aider sur le forum.
    C'est en aidant que l'on découvre certaines choses

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    L'enregistreur automatique de macro est un outil formidable mais il ne faut pas prendre le code qu'il génère tel quel. Ca permet de savoir quels objet à utiliser mais il faut retravailler le code ensuite pour le rendre plus "présentable".
    Cet outil a, entre autre, le défaut d'abuser des select/Selection qui, la plupart du temps, compliquent et ralentissent le code.

    Pense aussi à supprimer dans certaines méthode (comme ton PasteSpécial) les options dont tu utilises les valeurs par défaut (à moins d'avoir une raison de vouloir montrer que tu utilises ces valeurs). Par exemple, inutile de dire que tu ne veux pas de transposée.

    Il ne faut pas non plus oublier d'effacer les actions "parasites" qu'on a pu faire au cours de l'enregistrement comme tes redimensions de fenêtres.

    Par exemple, pour ton code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub MacroVente()
        Range("Vente").Copy
        Workbooks.Add
        Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
        ActiveWorkbook.SaveAs Filename:="Macintosh HD:Users:geoffreyohayon:Desktop:Vente2.txt", FileFormat:=xlText, CreateBackup:=False
        ActiveWorkbook.Close
    End Sub
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

Discussions similaires

  1. [XL-2007] Problème collage spéciale sur hauteur de ligne
    Par VITALTH dans le forum Excel
    Réponses: 0
    Dernier message: 31/10/2012, 15h30
  2. [VBA-E] collage spécial sur cellules fusionnées
    Par doringen dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/06/2010, 20h02
  3. Problème de boot sur nouveau noyau
    Par Grett dans le forum Administration système
    Réponses: 1
    Dernier message: 20/11/2007, 18h02
  4. UserForm + Extraction de données sur nouveau classeur
    Par tpcforever dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/06/2007, 12h17
  5. Problème de lettre sur nouveau serveur
    Par gobs dans le forum Langage
    Réponses: 2
    Dernier message: 19/01/2006, 23h31

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