Sélectionner une plage de cellule selon le mois
Résolu/Fermé
Koalacid
Messages postés
70
Date d'inscription
vendredi 5 septembre 2014
Statut
Membre
Dernière intervention
8 mars 2016
-
19 déc. 2014 à 16:28
Koalacid Messages postés 70 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 8 mars 2016 - 6 janv. 2015 à 14:58
Koalacid Messages postés 70 Date d'inscription vendredi 5 septembre 2014 Statut Membre Dernière intervention 8 mars 2016 - 6 janv. 2015 à 14:58
A voir également:
- Excel sélectionner cellule selon critère
- Liste déroulante excel - Guide
- Aller à la ligne dans une cellule excel - Guide
- Verrouiller cellule excel - Guide
- Excel cellule couleur si condition texte - Guide
- Excel si cellule contient texte alors 1 ✓ - Forum Excel
3 réponses
Koalacid
Messages postés
70
Date d'inscription
vendredi 5 septembre 2014
Statut
Membre
Dernière intervention
8 mars 2016
2
6 janv. 2015 à 09:07
6 janv. 2015 à 09:07
Hello Via55, Hello Gyrus,
Merci pour vos réponses et bonne année à vous.
J'avoue être tenté par la première solution vu qu'elle semble plus simple et que je vais devoir l'adapter à mon cas en réalité plus complexe.
La macro prend bien compte le fait qu'il y ait 2 fois le même mois et c'est ce qu'il faut.
Dans la solution de Gyrus, je ne comprend pas où se situe le copier/coller.
J'aimerais développer ce code pour faire un copier/coller en fonction du mois d'une plage différente à chaque fois vers des fichiers tous similaires.
Par exemple, je choisi novembre alors sur la plage 1 il fait le copier/coller de janvier à novembre vers le fichier 1. Puis il va vers la plage 2 pour refaire la même chose. Et ainsi de suite pour une vingtaine de fichier et de plages.
Ma question est: où est-ce que je dois insérerer le code pour ouvrir le fichier et préciser où se fait le copier/coller dans ton code ci-dessus?
Cordialement,
Merci pour vos réponses et bonne année à vous.
J'avoue être tenté par la première solution vu qu'elle semble plus simple et que je vais devoir l'adapter à mon cas en réalité plus complexe.
La macro prend bien compte le fait qu'il y ait 2 fois le même mois et c'est ce qu'il faut.
Dans la solution de Gyrus, je ne comprend pas où se situe le copier/coller.
Sub Macro1()
Dim Mois_C As String
Dim Mois As String
Mois_C = Range("D3")
Mois = Range("J10:AG10")
'Copier Coller Mois_C
Cells.Find(Mois_C).Activate
Row((Mois_C), 3 To 10)
End Sub
J'aimerais développer ce code pour faire un copier/coller en fonction du mois d'une plage différente à chaque fois vers des fichiers tous similaires.
Par exemple, je choisi novembre alors sur la plage 1 il fait le copier/coller de janvier à novembre vers le fichier 1. Puis il va vers la plage 2 pour refaire la même chose. Et ainsi de suite pour une vingtaine de fichier et de plages.
Ma question est: où est-ce que je dois insérerer le code pour ouvrir le fichier et préciser où se fait le copier/coller dans ton code ci-dessus?
Cordialement,
6 janv. 2015 à 09:19
Je l'ai écrit en-dessous de la ligne " 'Copier Coller Mois_C".
Mais là j'ai un message d'erreur qui s'affiche:
"Erreur de compilation
Instruction incorrecte à l'extérieur de type"
Je ne comprend pas, mais alors pas du tout!
6 janv. 2015 à 11:33
Le problème est que sur l'exemple très simple, j'avais mis qu'une seule plage à copier/coller.
En fait il y en a plusieurs qui sont rangées à la ligne.
Première plage de J à AG ensuite de AH à BE et ainsi de suite.
J'ai donc démultiplié le code pour qu'il s'occupe dans un premier temps de la preimière plage puis ensuite de la deuxième plage, etc etc
Mais je bloque dès la seconde plage. En effet, je n'arrive pas à sélectionner la bonne plage pour le copier coller.
Je vous joins mon fichier exemple avec la macro.
https://www.cjoint.com/?0AglOUwORRD
Les fichiers destinataires sont des classeurs vides (pour l'exemple).
Cordialement
6 janv. 2015 à 14:12
1° pour que les 2 parties de la macros s'enchainent il faut supprimer le 1er End if et le 2eme If not intersect ..., puis changer les plages qui sont effacées (ActiveSheet.Range("F8:AC17").ClearContents) sinon tu vas effacer ce qui a été copié par la 1ere partie de la macro et changer également l'endroit à partir duquel coller la plage (ActiveSheet.Range("F8").Select) sinon même problème !
2° dans la seconde partie de la macro la fonction MATCH renvoie dans la variable col le rang de la valeur trouvée dans la plage, comme la 2eme plage est décalée de 34 par rapport au départ il faut aussi décaler de 34 dans la ligne de copie
ActiveSheet.Range(Cells(13, 34), Cells(22, col+34)).Select
Cdlmnt
6 janv. 2015 à 14:58
Merci beaucoup à vous deux!
Cordialement,