Macro pour Copier/coller cellules et/ou lignes sur autre feuille [Résolu/Fermé]

Messages postés
23
Date d'inscription
dimanche 27 janvier 2013
Statut
Membre
Dernière intervention
16 mars 2018
- - Dernière réponse : via55
Messages postés
11377
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
21 novembre 2019
- 9 févr. 2015 à 22:49
Bonjour,

J'ai créé un dossier sous excel 2003 pour un ami qui souhaite gérer au plus juste la vente de ses produits à des associations locales afin d'octroyer à chacune d'entre elles une remise dont le taux variera selon le montant des commandes effectuées.
Le dossier comporte plusieurs feuilles pour les besoins de gestion soit :
1) Annuaire des associations (Nom, adresse, téléphone et Taux de remise accordée)
2) Une liste de données où figurent les produits mis en vente et leur prix unitaire
3) feuille d'enregistrement des commandes pour cette dite association qui comporte 19 colonnes qui sont :
> Produit en colonnes G M S Y
(sachant que chaque colonne concerne une catégorie différente de produits qui seront sélectionnés grâce à un ascenseur qui se réfère à la feuille 2 "LISTE". Une ou plusieurs lignes (cellule) pourront être nécessaires pour enregistrer certaine commande)
> Prix unitaire en colonnes I O U AA (ces colonnes font, aussi, référence à la feuille 2 "LISTE" avec syntaxe "INDEX et EQUIV") Prix unitaire selon article choisi.
> Quantité J P V AB Saisie manuelle
> Prix total des marchandises K Q W AC (simple cellule de calcul)
> Total de la commande AE (cellule de simple calcul....)
> Remise accordée AF (la remise est renseignée sur la feuille "annuaire" donc (INDEX et EQUIV) pour retrouver la remise de telle ou telle association
> Net à payer AG (simple cellule de calcul)
Voici comment se présente mon tableau et tout va pour le mieux, c'est tout simple, je ne suis pas très expert mais content de moi tout de même.
Par contre, où je rencontre un big problème c'est lorsque je souhaite automatiser (avec une macro) la confection d'une facture avec la et/ou les dernières lignes/cellules saisies. Le copier/coller est une solution mais dans un dossier où tout est pratiquement automatique, ça pêche !!!!
Si quelqu'un pouvait m'expliquer comment copier/coller ces cellules (la/les lignes concernées seraient marquées par un "X" en dernière cellule, comme point de repaire) sur une autre feuille à l'aide d'une macro, je me chargerai, ensuite, de l'établissement de la facture.
Beaucoup de baratin mais est ce que mon besoin à bien été décrit.??!!
Merci d'avance pour le coup de main que vous pourriez m'apporter.



Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
11377
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
21 novembre 2019
1518
1
Merci
Bonjour,

Pas évident de saisir ton tableau mais peu importe j'ai compris le but

La 1ere chose est à faire est de creer un modele de facture

la macro exemple que j'ai préparé copie unmodele , demande un nom a l'utilisateur et copie les données de la feuille active reperées par un X dans la nouvelle feuille avant d'effacer les X et de se repositionner sur la facture créee

http://cjoint.com/?0ABc5yN0VOE

La macro ne fonctionne que sur 20 lignes et 2 colonnes copiées; c'est juste pour montrer le fonctionnement

A toi de l'adapter selon tes besoins en changeant les valeurs et en rajoutant des lignes

En espérant avoir répondu à ton attente

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 70296 internautes nous ont dit merci ce mois-ci

Georges76540
Messages postés
23
Date d'inscription
dimanche 27 janvier 2013
Statut
Membre
Dernière intervention
16 mars 2018
-
Bonsoir via55
Un grand merci pour la macro que tu m'as transmis, exactement ce que je souhaitai. Mon énoncé pas très clair mais le problème bien compris. Bien entendu il a fallu l'adapter à mes tableaux et travailler sur 600 lignes !! Par contre je n'ai pas automatisé la création de la facture car si plusieurs lignes sont concernées dans le tableaux, certaines cellules peuvent être vides, je conserve la feuille "Modele 2" j'applique un filtre pour pour cacher les cellules vides et là la facture peut être remplie, lors de la validation de cette facture, la feuille "Modele 2" est supprimée.
Encore un grand merci
@+.
Salut via55 pourrais-tu rendre la solution que tu as donné à Georges disponible à nouveau svp, je suis dans la mêm situation. Merci Jenn
via55
Messages postés
11377
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
21 novembre 2019
1518 > Jenn -
Bonsoir Jenn

Hélas je ne retrouve pas cette macro vieille de 2 ans mais voici le principe pour transférer d'une feuille à l'autre les seules lignes marquées d'une croix, la feuille 1 a des valeurs en colonnes A, B, C et D; on met des x en colonne E aux lignes qu'on veut copier et on lance la macro qui recopie à la suite les lignes cochées sur la feuille2 à partir de la ligne indiquée dans la macro puis efface la colonne avec les x en Feuil1

macro à adapter (notamment en changeant les noms Feuil1 et Feuil2 si différents dans ton fichier)

Sub recopie()
Dim Ligne As Long
' desactive raffraischissement ecran
Application.ScreenUpdating = False
' n° de la ligne en Feuil 2 après  laquelle de laquelle recopier à la suite les données
lg = 5 ' ici la recopie commencera donc en ligne 6 - à adapter
' recherche 1ere ligne vide en colonne 1 de la Feuil1 (en fait la cellule remplie en partant du bas et on ajoute 1)
Ligne = Sheets("Feuil1").Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row + 1
' Boucle sur toutes les lignes de Feuil 1
For n = 1 To Ligne
' si x en colonne E on copie la ligne de A à D, on incrémente lg de 1 et on copie en Feuil2
If Sheets("Feuil1").Range("E" & n) = "x" Then - à adapter si x dans une autre colonne
Sheets("Feuil1").Select
 Range("A" & n & ":" & "D" & n).Select  A adapter si plus ou moins de colonnes à copier
Selection.Copy
lg = lg + 1
Sheets("Feuil2").Select
Range("A" & lg).Select ' A adapter si ne commence pas en colonne A
ActiveSheet.Paste
End If
Next n
'selection feuille 1 et effacement des x
Sheets("Feuil1").Select
Columns("E:E").Select' A adapter
Selection.Delete Shift:=xlToLeft

Application.ScreenUpdating = True
End Sub


Fais l'adaptation à ton fichier et si tu as des problèmes reviens me demander en postant d'abord un exemple de ton fichier sur cjoint.com et en indiquant ici le lien fourni

Cdlmnt

Via
Messages postés
16983
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
18 novembre 2019
3680
0
Merci
Salut le fil,

Si j'ai bien tout compris, pas certain qu'une macro soit nécessaire faudrait voir la structure de ton fichier sans notes confidentielles que tu peux joindre avec ce lien

http://www.cjoint.com/

Que nous ne soyons pas obligé de prendre de notre temps pour en créer un

Messages postés
16983
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
18 novembre 2019
3680
0
Merci
Re,

Serait il possible d'avoir des nouvelles ou doit on abandonner cette discussion.
Messages postés
23
Date d'inscription
dimanche 27 janvier 2013
Statut
Membre
Dernière intervention
16 mars 2018
0
Merci
Bonsoir Mike 31

Désolé pour le retard pour ma réponse, mais famille oblige (désolé....).
Merci d'avoir étudié mon dossier. J'aurai pu t'envoyer mon fichier mais ce matin j'ai eu une réponse de via55 avec un exemple de macro qui conviend parfaitement à mes attentes, bien entendu avec quelques modif par rapport à mon classeur.

Je te remercie pour ton intervention
@+