Copier coller avec condition
Résolu/Fermé
Thlone
-
2 févr. 2010 à 18:32
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 2 févr. 2010 à 23:46
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 2 févr. 2010 à 23:46
A voir également:
- Copier coller avec condition
- Copier coller pdf - Guide
- Excel cellule couleur si condition texte - Guide
- Historique copier-coller android - Guide
- Copier-coller - Accueil - Windows
- Arobase copier coller - Forum Clavier
6 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
2 févr. 2010 à 19:54
2 févr. 2010 à 19:54
Bonjour,
Je pense que c'est qcq chose ça que tu veux :
Sélectionner la feuille concernée et lancer la macro
eric
Je pense que c'est qcq chose ça que tu veux :
Sub recopie() Dim c As Range For Each c In Range([A2], [A65536].End(xlUp)) If c = "" Then c.Offset(-1, 0).Resize(1, 2).Copy (c) End If Next c End Sub End Sub
Sélectionner la feuille concernée et lancer la macro
eric
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
2 févr. 2010 à 20:45
2 févr. 2010 à 20:45
Il n'y a rien à paramétrer sauf si tu ne veux pas traiter la colonne entière.
Si tu ne veux traiter que la partie sélectionnée en colonne A remplace:
For Each c In Range([A2], [A65536].End(xlUp
par:
for each c in selection
Elle marche sur toute feuille sélectionnée, même d'un autre classeur. Si tu travailles toujours le même classeur tu la mets dedans, sinon tu peux la mettre dans un autre et ouvrir celui-ci quand tu en as besoin.
Pour l'ajouter :
- Alt+F11 pour ouvrir l'éditeur vba
- clic-droit sur le projet à gauche
- insertion / module
- coller le code à droite
Quand tu la lances par Alt+F8 dans les propriétés tu peux définir un raccourci clavier
Si tu ne veux traiter que la partie sélectionnée en colonne A remplace:
For Each c In Range([A2], [A65536].End(xlUp
par:
for each c in selection
Elle marche sur toute feuille sélectionnée, même d'un autre classeur. Si tu travailles toujours le même classeur tu la mets dedans, sinon tu peux la mettre dans un autre et ouvrir celui-ci quand tu en as besoin.
Pour l'ajouter :
- Alt+F11 pour ouvrir l'éditeur vba
- clic-droit sur le projet à gauche
- insertion / module
- coller le code à droite
Quand tu la lances par Alt+F8 dans les propriétés tu peux définir un raccourci clavier
Merci mais ca doit etre moi le probleme, je vais ouvrir un livre de VBA car a chaque fois j'ai le debogueur qui se lance et me surligne en jaune la ligne c.Offset(-1, 0).Resize(1, 2).Copy (c).
Mais bon en fait il faut que je rajoute quelque chose car le test logique se situe dans la colonne A mais il faut egalement que je recopie en meme temps ce qu'il y a dans la colonne B.
Par exemple si j'ai ca sur trois colonnes:
18 01/08/10 01/08/10 1209-25 30-03-6081-90
30-03-2407
ADJ BAL TO MATCH BCSAS 30-03-6081-90
30-03-2408
30-03-8304-90
30-03-2323
30-03-6081-90
30-03-2323
23 02/11/09 02/11/09 0109-39 30-03-6080-90
30-03-1012
Je voudrais obtenir ca a la fin:
18 01/08/10 01/08/10 1209-25 30-03-6081-90
18 01/08/10 01/08/10 1209-25 30-03-2407
18 01/08/10 01/08/10 1209-25 30-03-6081-90
18 01/08/10 01/08/10 1209-25 30-03-2408
18 01/08/10 01/08/10 1209-25 30-03-8304-90
18 01/08/10 01/08/10 1209-25 30-03-2323
18 01/08/10 01/08/10 1209-25 30-03-6081-90
18 01/08/10 01/08/10 1209-25 30-03-2323
23 02/11/09 02/11/09 0109-39 30-03-6080-90
23 02/11/09 02/11/09 0109-39 30-03-1012
En effacant au passage "ADJ BAL TO MATCH BCSAS" que je ne veux plus.
Si tu penses pouvoir le reproduire assez rapidement je suis preneur mais sinon je vais chercher...
Bon en fait je te demande vraiment ton aide ;)
Merci d'avance.
Mais bon en fait il faut que je rajoute quelque chose car le test logique se situe dans la colonne A mais il faut egalement que je recopie en meme temps ce qu'il y a dans la colonne B.
Par exemple si j'ai ca sur trois colonnes:
18 01/08/10 01/08/10 1209-25 30-03-6081-90
30-03-2407
ADJ BAL TO MATCH BCSAS 30-03-6081-90
30-03-2408
30-03-8304-90
30-03-2323
30-03-6081-90
30-03-2323
23 02/11/09 02/11/09 0109-39 30-03-6080-90
30-03-1012
Je voudrais obtenir ca a la fin:
18 01/08/10 01/08/10 1209-25 30-03-6081-90
18 01/08/10 01/08/10 1209-25 30-03-2407
18 01/08/10 01/08/10 1209-25 30-03-6081-90
18 01/08/10 01/08/10 1209-25 30-03-2408
18 01/08/10 01/08/10 1209-25 30-03-8304-90
18 01/08/10 01/08/10 1209-25 30-03-2323
18 01/08/10 01/08/10 1209-25 30-03-6081-90
18 01/08/10 01/08/10 1209-25 30-03-2323
23 02/11/09 02/11/09 0109-39 30-03-6080-90
23 02/11/09 02/11/09 0109-39 30-03-1012
En effacant au passage "ADJ BAL TO MATCH BCSAS" que je ne veux plus.
Si tu penses pouvoir le reproduire assez rapidement je suis preneur mais sinon je vais chercher...
Bon en fait je te demande vraiment ton aide ;)
Merci d'avance.
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
2 févr. 2010 à 21:57
2 févr. 2010 à 21:57
ca doit etre moi le probleme
Pas tout à fait, j'avais testé avec le code sur la feuille, mais mis dans un module pour pouvoir être exécuté sur n'importe quelle feuille il faut changer la syntaxe.
il faut que je rajoute quelque chose car le test logique se situe dans la colonne A mais il faut egalement que je recopie en meme temps ce qu'il y a dans la colonne B.
non non, ça le fait avec le .resize
En effacant au passage "ADJ BAL TO MATCH BCSAS" que je ne veux plus.
Effacer ou supprimer les 2 cellules ?
J'ai choisi la 2nde option. Sinon echange avec la ligne en commentaire
Pour que tu puisses tester si c'est vraiment ça que tu voulais : Thlone.xls
Pas tout à fait, j'avais testé avec le code sur la feuille, mais mis dans un module pour pouvoir être exécuté sur n'importe quelle feuille il faut changer la syntaxe.
il faut que je rajoute quelque chose car le test logique se situe dans la colonne A mais il faut egalement que je recopie en meme temps ce qu'il y a dans la colonne B.
non non, ça le fait avec le .resize
En effacant au passage "ADJ BAL TO MATCH BCSAS" que je ne veux plus.
Effacer ou supprimer les 2 cellules ?
J'ai choisi la 2nde option. Sinon echange avec la ligne en commentaire
Pour que tu puisses tester si c'est vraiment ça que tu voulais : Thlone.xls
Le test marche super bien sauf pour le "ADJ BAL TO MATCH BCSAS" en fait sur la deuxieme colonne il faut remplacer ou copier dessus ce que l'on copie de la premiere ligne.
J'ai ajoute ca car je ne savais pas si avec la macro quand tu recopies dans les nouvelles cellules si l'une d'entre elles n'eatait pas vde ce la marcherait.
En fait la premiere ligne fait reference et doit etre recopier jusqu'a la nouvelle reference peu importe s'il y a quelque chose en dessous dans la deuxieme colonne.
Je ne sais pas si je suis clair. Mais en tout cas encore un grand merci.
Voila l'exemple http://www.cijoint.fr/cjlink.php?file=cj201002/cijdbyvwdl.xls
J'ai ajoute ca car je ne savais pas si avec la macro quand tu recopies dans les nouvelles cellules si l'une d'entre elles n'eatait pas vde ce la marcherait.
En fait la premiere ligne fait reference et doit etre recopier jusqu'a la nouvelle reference peu importe s'il y a quelque chose en dessous dans la deuxieme colonne.
Je ne sais pas si je suis clair. Mais en tout cas encore un grand merci.
Voila l'exemple http://www.cijoint.fr/cjlink.php?file=cj201002/cijdbyvwdl.xls
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
2 févr. 2010 à 22:57
2 févr. 2010 à 22:57
à voir ton fichier j'ai plutôt l'impression que c'est la colonne C qu'il faut prendre en référence si tu veux que les dernières lignes soient remplies.
Thlone.xls
Thlone.xls
La colonne c est juste en reference mais ce sont des donnees aleatoires donc je ne vois pas du tout comment y appliquer un test logique.
Tu sais si sur un fichier de 35 mille lignes je dois faire un copie paste pour la fin du fichier ca me va parfaitement.
Tu as reussi a simuler quelque chose sur cette base meme si la derniere ligne ne se copie pas.
En fin je pense plutot que d'apres l'algorythme elle se copiera jusqu'a la fin (car tout est vide apres) sauf a definir exactement la plage de donnee comme tu me l'as conseille plutot.
Tu sais si sur un fichier de 35 mille lignes je dois faire un copie paste pour la fin du fichier ca me va parfaitement.
Tu as reussi a simuler quelque chose sur cette base meme si la derniere ligne ne se copie pas.
En fin je pense plutot que d'apres l'algorythme elle se copiera jusqu'a la fin (car tout est vide apres) sauf a definir exactement la plage de donnee comme tu me l'as conseille plutot.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
2 févr. 2010 à 23:23
2 févr. 2010 à 23:23
Teste l'exemple du post 7 basé sur colonne C et dis si c'est ok
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
2 févr. 2010 à 23:46
2 févr. 2010 à 23:46
ok, n'oublie pas de mettre en résolu...
2 févr. 2010 à 20:36
Car sinon j'ai toujours une erreur.
Merci encore de ton aide