Macro copier coller avec tri
Tristan19
-
Tristan 19 -
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 :)
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 :)
A voir également:
- Macro copier coller avec tri
- Historique copier coller - Guide
- Copier coller pdf - Guide
- Copier-coller - Accueil - Informatique
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Style d'écriture a copier coller - Guide
16 réponses
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
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
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+
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+
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
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
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+
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+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ci joint le fichier en XLS
http://www.cijoint.fr/cjlink.php?file=cj201003/cijFUpcNmX.xls
Encore merci pour ton aide.
http://www.cijoint.fr/cjlink.php?file=cj201003/cijFUpcNmX.xls
Encore merci pour ton aide.
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 ?
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 ?
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
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
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 ?
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 ?
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.
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.
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
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
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 ?
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 ?
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
Merci pour tout
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
cordialement
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
En tout cas c'est déjà très sympa
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
Je crois que je suis arrivé je suis trop fier lol :)))))
Mais montre moi quand même pour voir comment toi tu fais :)
Mais montre moi quand même pour voir comment toi tu fais :)
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
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
à moins que tu ne veuilles pas le diffuser ici....
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 ?
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
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 :-)