Macro copier coller avec tri

Tristan19 -  
 Tristan 19 -
Bonjour

Voilà je me lance dans le monde de la macro et après quelques macros réussi je me retrouve fasse à une montagne.
Je suis en train de réaliser un fichier de rappro et sur une feuille excel j'ai des données extraite de mon logiciel comptable avec sur la colonne A la donnée de la banque (car j'ai plusieurs banques) et de C à G mes données à copier.
Cependant j'ai plusieurs banques à redispascher dans la feuille correspondante à la banque mais dans cette feuille il y a des données que je ne veux pas écraser.

Pour résumer :
. Comment copier des données et les recoller dans la bonne feuille
. Et comment recopier dans une plage vide et non pas écraser les données existantes

Merci pour votre aide car je commence à me noyer :)

16 réponses

Résumé de la discussion

On cherche à automatiser un rapprochement sous Excel via macros pour copier des données d'un logiciel comptable, la colonne A identifiant la banque et les colonnes C à G utilisées. Le problème est que plusieurs banques nécessitent une répartition vers des feuilles dédiées sans écraser les données existantes, et que l'opération doit pouvoir recoller dans une plage vide. Différentes propositions évoquent d'utiliser du code qui insère des lignes plutôt que de remplacer, d'analyser la valeur de la banque pour choisir la feuille ciblée et d'ajouter une vérification. En pratique, les échanges aboutissent à une macro fonctionnant sur deux fichiers et à une gestion conditionnelle des colonnes et du format, avec des ajustements selon le nommage et le volume.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. anto
     
    Bonjour,
    je m'incruste un peu dans la discussion!
    En effet je dois réaliser une macro assez similaire et ça m'intéresserais d'avoir le code.

    Serait il possible de commenter un minimum le code, que je comprenne et puisse adapter à mon cas?

    D'avance, merci
    2
    1. zebulon2503 Messages postés 1229 Date d'inscription   Statut Membre Dernière intervention   110
       
      Tu veux qu'on commente quel code ? On a pas posté de code ici :-)
      0
    2. anto
       
      le code que tu as fait pour Tristan19, je disais ça en prévision
      à moins que tu ne veuilles pas le diffuser ici....
      0
    3. zebulon2503 Messages postés 1229 Date d'inscription   Statut Membre Dernière intervention   110
       
      Pas de soucis de mon côté mais c'est assez spécifique.
      Si tu me dis ce que tu veux faire, je peux le retoucher pour que ca colle avec ce que tu veux et t'expliquer point par point comment ca marche ?
      0
    4. anto
       
      Et bien pourquoi pas! je ne voulais pas abusé mais puisque tu proposes....

      Tout d'abord voici mon document :
      http://www.cijoint.fr/cjlink.php?file=cj201004/cij6vadK8h.xls

      Il s'agit d'un tableau recensant différentes opérations commerciales en cours (ligne) avec différentes infos pour chacune (colonnes) J'aimerais, grâce à une macro, obtenir un tableau synthétique reprenant chaque opération avec seulement quelques informations.
      Je ne sais pas encore lesquelles mais prend 2-3 colonnes au hasard, j'adapterais le moment voulu.
      Ce tableau doit être dans un document séparé (genre synthese.xls)

      Concernant les macros en général, où dois-je les enregistrer? est ce que les 2 documents (tableau original + tableau synthétique) devront être ouvert? depuis lequel des deux dois-je exécuter la macro?

      J'espère avoir été assez clair dans mes explications

      merci d'avance
      0
    5. zebulon2503 Messages postés 1229 Date d'inscription   Statut Membre Dernière intervention   110
       
      Tu veux dire quoi par 2 documents séparés ? 2 fichiers Excel différents ou les 2 feuilles que tu as dans ton doc (tu as une feuille SYNTHESE, donc ca porte à confusion) ?
      Ta macro tu la mets dans un module et tu la lances depuis un bouton dans ta premiere feuille par exemple.

      Le plus simple pour tes colonnes est de les sélectionner (en précisant une ligne de début et de fin) et copier/coller.
      Je te met le code quand tu auras éclairci les points ci dessus :-)
      0
  2. zebulon2503 Messages postés 1229 Date d'inscription   Statut Membre Dernière intervention   110
     
    Salut

    Désolé de répondre après 2 jours.
    Peux tu préciser ce que tu veux faire ? C'est assez flou pour le moment...
    Le mieux serait aussi de poster ton fichier Excel sur ce site : http://www.cijoint.fr/ et de donner le lien généré.

    A+
    0
  3. Tristan19
     
    Merci pour ce premier retour

    Voici le lien ci joint :
    http://www.cijoint.fr/cjlink.php?file=cj201003/cijIofxTBv.xlsx

    Ci dessous une réexplication peut être je serais plus claire :)
    Voilà j'ai une extraction de mon logiciel comptable sur Excel de l'ensemble de mes mouvements "feuill données de Ross" problème j'ai plusieurs banques qui sont affichés dans la colonne A (dans l'ordre heureusement)

    Je voudrais copier cette donnée et la mettre dans la bonne feuille de mon rappro (chaque banque à sa propre feuille) et en plus je ne veux pas écraser les données existantes sur ces feuilles bien sur.

    Y a-t-il un moyen de remonter des cellules je m'explique j'ai une plage fixe de 20 lignes dedans rappro oblige j'ai des données qui disparaissent je voudrais remonter l'ensemble des données en haut de ma plage.

    Merci en tout cas pour toute aide
    0
  4. zebulon2503 Messages postés 1229 Date d'inscription   Statut Membre Dernière intervention   110
     
    Re salut

    Bon, je pense avoir compris :-)
    Par contre, tu dois tourner sous Excel 2007 non ? Comme j'ai Excel 2003, je peux pas lire ton fichier... Tu peux l'enregistrer en .xls et le reposter stp ?
    A+
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Tristan19
     
    Ci joint le fichier en XLS

    http://www.cijoint.fr/cjlink.php?file=cj201003/cijFUpcNmX.xls

    Encore merci pour ton aide.
    0
  7. zebulon2503 Messages postés 1229 Date d'inscription   Statut Membre Dernière intervention   110
     
    Bon finalement, en voyant ton fichier, c'est pas si clair que ca ^^
    Je résume pour que tu confirmes si c'est bien ce que tu veux.

    Les données présentes dans "Données de Ross" doivent être copiées soit dans SG soit dans SG2116 (juste les crédits et débits ?) en respectant la banque correspondante.

    par contre pour ton histoire de remonter des cellules, lesquelles, dans quelles feuilles et comment exactement ?
    0
  8. Tristan19
     
    Alors la première étape est bien comprise. En effet c'est cela en sachant que d'une journée sur l'autre le nombre de ligne va varié bien évidemment.

    Cependant prenons l'exemple du SG tu copies l'ensemble des lignes SG et tu vas les collées dans la feuille SG entre la collone B:G et la ligne 8 à 29. Cependant tu as desfois des données dans ces champs qui ne doivent pas être éffacées comment faire du coup pour copier les nouvelles données sans effacer les anciennes.
    Donc je me suis dis pourquoi ne pas remonter l'ensemble des veilles données au top des cellules et de copier les nouvelles juste en dessous.

    J'espère avoir été plus claire.
    Cordialement
    0
  9. zebulon2503 Messages postés 1229 Date d'inscription   Statut Membre Dernière intervention   110
     
    Oui c'est clair.
    Mais tu veux fixer la liste de SG entre les lignes 8 à 29 ou on agrandit au fur et à mesure ?
    Dans ce cas, un coup d'insertion de ligne et c'est bon, avec un tri pour mettre les plus récentes au début. Tout ca en automatique :-)
    Ca t'irait ?
    0
  10. zebulon2503 Messages postés 1229 Date d'inscription   Statut Membre Dernière intervention   110
     
    Bon, j'ai fini le code de copie en triant SG de SG2116.
    J'ai fait une fonction d'insertion de nouvelle ligne pour ne pas effacer tes anciennes valeurs.
    Je te poste ca demain suivant ta réponse concernant le tri.

    Les cons peuvent avoir l'air intelligent à première vue... Heureusement pour eux que la vitesse de la lumière est supérieure à celle du son.
    0
  11. Tristan19
     
    Waouuh j'ai hate de voir.

    Pour répondre à ta question oui je dois fixer lal iste entre 8 et 29 car derrière j'ai une autre macrio qui tourne (que j'ai faite :) hihi) qui tourne dans ce périmètre.

    Je te remericie sincèrement pour ton aide
    0
  12. zebulon2503 Messages postés 1229 Date d'inscription   Statut Membre Dernière intervention   110
     
    Pas de quoi :-)

    Mais si ta liste ne peut pas être plus grande que la ligne 29, tu devras supprimer les anciennes données...
    Et donc l'insertion ne marche plus dans ce cas là...
    Alors on fait comment ?
    0
  13. Tristan19
     
    Re en faiteentre lal igne 8 et 29 il ya des données qui disparraissent au fur et à mesure car j'ai effectué une macro qui si elle trouve une donnée similaire avec le tableau du dessous la fait disparaitre donc j'ai toujours assez de place entre 8 et 29 d'où la non nécessité de rajouter des lignes mais plutôt de combler les trous c'est pour cela que j'avais comme idée que lorsque le rapprochement est fait remonter l'ensemble des données au top pour laisser la place le lendemain au nouvelle données entre par exemple 11 et 29 ou 10 et 29............. la taille de la place dépend des données restantes mais je me répète il y atoujours assez de place.

    Merci pour tout
    0
    1. zebulon2503 Messages postés 1229 Date d'inscription   Statut Membre Dernière intervention   110
       
      Ok mais tu as des trous bizarres parfois (par exemple pas de nom d'opération mais un crédit ou débit effectué). tu peux pas leur mettre un nom ?
      Ca serait plus simple, sinon, ca sera effacé...
      0
  14. Tristan19
     
    Oui tu as tout a fait raison normalement il y a mais comme c était un fichier de test. J ai rempli au plus vite mais je suis d' accord avec toi il doit y avoir qq chose. Donc si c est mieux c est parfait
    cordialement
    0
    1. zebulon2503 Messages postés 1229 Date d'inscription   Statut Membre Dernière intervention   110
       
      voici le fichier : http://www.cijoint.fr/cjlink.php?file=cj201004/cijAf7lhzZ.xls :-)
      0
  15. Tristan19
     
    Merci ^pour ton fichier mais j'ai une question tu insère des lignes il n'es pas possible de rester dans le même format (le même nombre de ligne)
    En tout cas c'est déjà très sympa
    0
    1. zebulon2503 Messages postés 1229 Date d'inscription   Statut Membre Dernière intervention   110
       
      Réparé :-)
      Désolé, j'avais oublié d'enlever tout ca.
      Voici le nouveau fichier :

      http://www.cijoint.fr/cjlink.php?file=cj201004/cij6ouFEEu.xls
      0
    2. Tristan19
       
      tu es un chef Merci énormément pour ton aide je vais regarder plus en détail lal macro mais ca à tout l'air d'être ca.

      Merci encore
      0
    3. zebulon2503 Messages postés 1229 Date d'inscription   Statut Membre Dernière intervention   110
       
      Pas de quoi !
      Et passe ton sujet en Résolu si c'est bon :-)

      A+
      0
    4. Tristan19
       
      j'ai une dernière question promis c'est la dernière :) si au lieu de débit credit dans la première feuille j'ai tout sur la même avec en débit les chiffres négatifs et en credit les chiffres positifs que je dois envoyer sur l'autre feuille et que sur cette deuxième feuille (FG600) tous est bien recasser en valeur absolue j'ai essayer un truc à travers ta macro mais il me mets vrai ou faux dans la deuxième feuille lol
      0
    5. zebulon2503 Messages postés 1229 Date d'inscription   Statut Membre Dernière intervention   110
       
      Recommences, j'ai pas tout compris...
      Tu veux mettre en négatif tes débits et les mettre en valeur absolue pour le décompte dans les auters feuilles ?
      Et c'est quoi cette histoire de VRAI ou FAUX ?
      0
  16. Tristan 19
     
    Je crois que je suis arrivé je suis trop fier lol :)))))
    Mais montre moi quand même pour voir comment toi tu fais :)
    0
    1. zebulon2503 Messages postés 1229 Date d'inscription   Statut Membre Dernière intervention   110
       
      repostes ton fichier avec les modifications alors :-)
      0
    2. zebulon2503 Messages postés 1229 Date d'inscription   Statut Membre Dernière intervention   110
       
      UP
      0
    3. Tristan 19
       
      Voila la macro et elle fonctionne très bien avec mon fichier merci pour tout !

      Sheets("données SG").Select
      Range("A5").Select
      Do Until ActiveCell.Value = ""
      ActiveCell.Offset(1, 0).Select
      Loop
      Derniere_Ligne = ActiveCell.Row - 1

      For i = 5 To Derniere_Ligne
      Cells(i, 1).Select
      Select Case ActiveCell.Value
      Case "FR7630003014300002009019122"
      Date_Operation = Cells(i, 10).Value
      Informations = Cells(i, 12).Value
      Montant = Cells(i, 13).Value

      Sheets("FG 0600").Select
      Cells(40, 1).Activate
      Do Until ActiveCell.Value = ""
      ActiveCell.Offset(1, 0).Select
      Loop
      If ActiveCell.Row = 67 Then
      MsgBox ("Error, not enough place. Please delete entries")
      GoTo FIN
      ElseIf ActiveCell.Row < 67 Then
      If Montant < 0 Then

      ActiveCell.Value = Date_Operation
      ActiveCell.Offset(0, 3).Select
      ActiveCell.Value = Informations
      ActiveCell.Offset(0, 1).Select
      ActiveCell.Value = Montant * -1
      Else
      ActiveCell.Value = Date_Operation
      ActiveCell.Offset(0, 3).Select
      ActiveCell.Value = Informations
      ActiveCell.Offset(0, 2).Select
      ActiveCell.Value = Montant
      End If
      End If

      Sheets("données SG").Select
      0