Extraction de plusieurs colonnes et copie sur un autre feuille via les macros

Sousha Messages postés 2 Date d'inscription lundi 11 janvier 2010 Statut Membre Dernière intervention 12 janvier 2010 - 11 janv. 2010 à 23:45
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 12 janv. 2010 à 22:13
Bonjour,

J'ai besoin de votre aide pour créer une macro. L'aobjectif étant d'automatisercette tâche.

J'ai sur un feuille des données relatives à 1 an sachant qu'au début du mois les données se rajoutes aux précéedntes. Le nombre de lignes est variable Comme indiqué ci-après:

janv10déc09nov09oct09sep09août09juil09juin09mai09avr09mars-09 fév09
Toto 5,73%55,73%55,7%8,14%8,14%14,12%14,12%14,12%5,00%6,00%14,12% 10,0%
Tata 1,04%21,04%21,04%21,04%10,0%1,00%10,00% 4%21,04%100,0%55,73%8,14%
Au mois prochain j'aurai les données de Fevr10 à Mars09

Je souhaiterais extraire les données concernant les mois de déc, Sept, Juin, Mars pour les insérer sur une autre feuille. Cette nouvelle feuille me permettra de créer un graphe par trimestre qui sera également automatisé.

Voici la macro que j'ai pu créer mais je n'ai pas les mois sohaités.
Sub InputByQuater()

' Récupération des données trimestrielles

Sheets.Add
ActiveSheet.Name = "InputByQuater"

Sheets("inputByMonth").Select
Range("A:A").Select
Selection.Copy
Sheets("InputByQuater").Select
ActiveSheet.Paste
Sheets("inputByMonth").Select
Range("B:B").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("InputByQuater").Select
Range("B1").Select
ActiveSheet.Paste
Sheets("inputByMonth").Select
Range("E:E").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("InputByQuater").Select
Range("C1").Select
ActiveSheet.Paste
Sheets("inputByMonth").Select
Range("H:H").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("InputByQuater").Select
Range("D1").Select
ActiveSheet.Paste
Sheets("inputByMonth").Select
ActiveWindow.SmallSc).Select
Range("E1").Select
ActiveSheet.Paste
End Sub

Pourriez-vous m'aider svp à résoudre ce problème. Je vous remercie d'avance pour votre aide.

Cordialement,
Sousha

4 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
12 janv. 2010 à 00:23
Bonjour,

intéresse-toi à la méthode Union de l'objet Application (ouvre ton aide en ligne sur le mot Union).

Et puis tous ces select ! A quoi diable servent-ils ?

Regarde vce petit exemple (il devrait te parler)
un bouton sur ta feuil1 avec ce code

Private Sub CommandButton1_Click()
  Dim maplage As Range
  Set maplage = Application.Union(Range("A:A"), Range("C:C"))
  maplage.Copy Destination:=Sheets("feuil2").Range("D1")
  Set maplage = Nothing
End Sub


Lance et clique, puis va jeter un coup d'oeil à ta feuil2

A toi ensuite de t'en inspirer.


____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
12 janv. 2010 à 00:45
Et si j'ai bien vu, tout ton truc se résumerait à ce code sur ta feuille "inputByMonth"

  Sheets.Add
  ActiveSheet.Name = "InputByQuater" 
  Dim maplage As Range
  Set maplage = Application.Union(Range("A:A"), Range("B:B"), Range("E:E"), Range("H:H"))
  maplage.Copy Destination:=Sheets("InputByQuater").Range("A1")
  Set maplage = Nothing


sans préjudice de la justesse de ton tir (tes choix de colonnes), bien sûr

____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
Sousha Messages postés 2 Date d'inscription lundi 11 janvier 2010 Statut Membre Dernière intervention 12 janvier 2010
12 janv. 2010 à 22:01
Bonjour,

Je vous remercie pour votre retour et votre aide. Je ne suis pas une pro des macro, je fais de mon mieux.
J'ai testé le code mais je n'ai aucune donnée dans la feuille InputByQuater. Je voudait uniquement les données de décembre, Septembre, Juin et Mars sachant que ces mois change de colonnes tous les mois. Les données sont sur une année glissante.

Je vous remercie d'avance pour votre aide.
Sousha
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
12 janv. 2010 à 22:13
sachant que ces mois change de colonnes tous les mois

Et c'est alors là ton problème (dont tu commences seulement à nous parler) !
Solutions, alors, deux :
- la plus lourde : identifier chaque colonne de chaque mois à traiter (méthode Find) puis décoider comme montré (en utilisant ces colonnes-là et non des adresses en dur, comme dans le code montré)
- la plus légère : nommer tes colonnes et constituer la plage maplage en utilisant les noms de colonne et non leur adresse relative.
Commence à t'y investir car, sinon, il va falloir écrire toute ton appli à ta place ... (et ce n'est ni ma tasse de thé, ni le respect de mes principes, ni ceux de ce forum).


____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
Rejoignez-nous