Copier/coller une plage de cellules sous conditions

Bonjour,

Je suis nouvelle sur le forum et je n'ai jamais fait de programmation VBA.

Après de longues heures de recherches sur internet, je bloque toujours sur mon code pour réussir à obtenir ce dont j'ai besoin.

Je dispose d'un fichier excel avec deux onglets.

Onglet "CLIENTS" avec une base de données clients (colonne A à M)

Onglet "BILAN"

Je désire copier les cellules de A à J en fonction de la condition suivante : s'il est écrit "Commande" dans la colonne M

Il faudrait que les cellules soit copiées dans l'onglet "BILAN" à partir de la ligne 18.

J'ai réussi cette opération, le problème c'est que lorsque je mets à jour mon fichier régulièrement en fonction des commandes, et bien la macro me recopie toutes les lignes : je voudrais donc éviter les doublons et ne recopier que les dernières lignes dont le critère "commande" ait été ajouté...

Merci beaucoup d'avance pour votre aide !

Bonjour et bienvenue sur le forum

Tu écris :

Je dispose d'un fichier excel avec deux onglets.

Peux-tu joindre ce fichier quitte à le rendre anonyme au besoin ?

Bye !

Bonjour gmb et merci pour votre réponse !

Je vous joint le fichier très simplifié.

Dans l'onglet bilan, j'ai mis ce que j'aimerais obtenir : c'est à dire la copie des plages de cellules pour les deux clients ayant commandé par exemple.

Merci d'avance pour votre aide !

92vba.xlsx (28.21 Ko)

Un essai à tester.

La mise à jour du tableau de la feuille "BILAN" se met à jour chaque fois que cette feuille est activée.

Et pour éviter de reporter plusieurs fois la même ligne, la macro met un indice sur celle-ci en colonne N qui est masquée car elle ne sert qu'à ça.

Cela te convient-il ?

Bye !

210vba-v1.xlsm (21.88 Ko)

Merci beaucoup pour votre aide et pour l'intérêt que vous portez à mon problème !

Sur le fichier simplifié, ça marche parfaitement : c'est exactement ce que je voulais obtenir !

Le seul problème, c'est que je n'arrive pas à lancer votre macro sur mon vrai fichier (j'ai remplacé mon "script VBA" qui ne marchait pas par le vôtre, mais c'est comme si je n'avais plus de macro dans mon fichier...) Je vais réessayer (je suis vraiment novice et pas douée :p)

En core merci beaucoup !!!!

loxam a écrit :

je n'arrive pas à lancer votre macro sur mon vrai fichier

As-tu bien collé la macro sur la feuille VBA attachée à la feuille de calcul "BILAN" ?

Pour activer cette feuille, tu fais un clic droit sur l'onglet "BILAN" et tu choisies "Visualiser le code"

Ou encore, tu joins ton "vrai" fichier à ton prochain message.

Bye !

Je l'avais collé sur le code "ThisWorkBook" et non le code associé à la feuille "BILAN", maintenant la macro se lance automatiquement, c'est bon

Par contre, cela ne marche plus comme sur le fichier test :/ les données sont écrasées à chaque mise à jour (rajout du critère commande pour un client).... je pense que c'est dû à une manipulation que j'ai faite en supprimant une ligne collée dans la feuille "BILAN" qui avait été copiée par la macro (je teste donc une fois que c'est copié je suis obligée de faire supprimer la ligne...)

Je ne sais pas si c'est très clair :/

Malheureusement je ne peux pas mettre le "vrai" fichier en PJ, il y a des données confidentielles dessus...

Merci d'avance !!!

loxam a écrit :

il y a des données confidentielles dessus...

Tu les remplaces en mettant dans la ou les colonnes concernées, en première ligne, quelque chose comme :

"Nom 1" et tu tires vers le bas .

Tu n'auras plus qu'à refaire un copier coller des vrais colonnes quand tu auras le retour...

A te relire.

Bye !

Très bien je vais faire ça dès que possible, mais ça ne change rien au fait que si l'on vient à supprimer une ligne du fichier excel, la macro "plante" et les cellules copiées viennent écraser celles déjà copiées...

Comment-faire pour résoudre ce souci ?

Merci beaucoup !!

loxam a écrit :

mais ça ne change rien au fait que si l'on vient à supprimer une ligne du fichier excel, la macro "plante" et les cellules copiées viennent écraser celles déjà copiées...Comment-faire pour résoudre ce souci ?

Mais quelle ligne supprimes-tu ? sur quelle feuille ? et pourquoi ?

Bye !

En fait, j'ai fait l'essai pour voir si ça marchait en inscrivant le critère "commande" comme prévu, mais au pif puisque c'était juste un test.

Du coup après, j'ai supprimé les lignes copiées dans la feuille "BILAN" (mais je pense qu'il est possible que dans le fichier excel il y ait un jour une erreur et qu'il faille supprimer une ligne volontairement), et je ne sais pas si c'est suite à la suppression de ces lignes, ainsi qu'a l'effacement des critères "Commande" (et de l'*) dans les cellules tests, mais tout a planté...

La macro tourne mais ne donne plus tous les résultats, et écrasent les données du dessus quand on met à jour les données...

Je ne comprends pas trop...

Désolée pour tout ce dérangement

Ps : en fait, mon fichier excel a d'autres onglets avec pleins de formules donc je ne préfère continuer sur le fichier envoyé. Au passage, j'ai essayé sur ce fichier, et en supprimant aussi dessus ça ne marchait plus non plus... :/

Merci beaucoup d'avance !

Bye

Bonjour,

Aucune idée de l'origine de ce problème ?

Merci d'avance

Loxam

Bonjour

Je ne vois pas très bien.

Envoie moi le fichier sur lequel tu as des problèmes, tel qu'il est, pour que je puisse me rendre compte de ce qu'il se passe.

Bye !

Merci beaucoup d'avance !

Voici le fichier où les bugs apparaissent...

32vba-20v1.xlsm (35.70 Ko)

Nouvelle version à tester.

Fonctionnement :

Chaque fois que sur la feuille ‘’CLIENTS’’ on valide le mot ‘’Commande’’, dans la colonne M (alors que le curseur de la souris est dans la barre de formules), on efface sur la même ligne la cellule de la colonne N.

Et chaque fois que l’on active la feuille ‘’BILAN’’,

• on reporte sur cette feuille, à la suite, à partir de la ligne 18 toutes les lignes de la feuille CLIENTS qui ont une cellule vide en colonne N

• on vient mettre une étoile en colonne N sur la ligne de la feuille CLIENTS qui vient d’être copiée.

Une ligne reportée sur la feuille BILAN ne s’efface plus, sauf à la main.

Si tu veux un fonctionnement différent, explique-moi lequel.

Bye !

41vba-20-v2.xlsm (23.74 Ko)

Bonjour,

Merci beaucoup gmb !!!

Ca marche très bien sur le fichier test, et, je ne sais pas pourquoi, ca ne marche pas sur le vrai fichier... en fait a chaque fois que je rajoute une ligne "commande" et bien ca vient la mettre sur la même ligne dans le "BILAN" donc je me retrouve avec une seule ligne et toutes les données écrasées...

Je vais réessayer mais je ne comprends vraiment rien...

Merci encore !


Ah par contre le seul bug dans le fichier test c'est que si on fait par exemple :

inscrire "commande" pour le client A et le D, et bien le A ne s'insère pas dans le Bilan... il faut recommencer une deuxième fois, il doit y avoir un problème d'initialisation avec la premiere ligne ?

Merci et vraiment désolée !!

Bye

Nouvel essai à tester.

Bye !

99vba-20-v3.xlsm (24.02 Ko)

Hourra !!! Je crois que ça marche nickel sur mon fichier !

Je croise les doigts pour que ca marche parfaitement

Je ne sais pas comment vous remercier pour me faire gagner un temps précieux !!!

Bye !

Mauvaise nouvelle :

Ca ne marche plus... Tout allait bien et puis depuis hier, rien ne se colle quand je rentre le critère "Commande"...

J'ai supprimé une ligne "Client" qui était en double, je sais pas si c'est lié à ça, il n'y avait pas écrit commande à cette ligne...

Je comprends pas pourquoi...

Bonjour

loxam a écrit :

Ca ne marche plus...

Tu as 2 solutions :

Soit tu repars du fichier que je t'ai envoyé et qui à marché jusqu'à ta fameuse manip, soit tu joins le fichier qui ne marche plus pour que je puisse essayer de le réparer...

Ok ?

Bye !

Rechercher des sujets similaires à "copier coller plage conditions"