Excel-Macro

CharlesR
Messages postés
4
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
23 octobre 2007
- 21 oct. 2007 à 06:52
cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
- 24 oct. 2007 à 02:30
Bonjour,
Je suis actuellement en train de développer un fichier Excel en vue d'organiser des statistiques sportives. J'aurais besoin d'un peu d'aide à propos du problème suivant:
Compostion de mon classeur Excel:
- 1 feuille "model"
- 120 feuilles (copies du "model")
- 1 feuille "data"
Les 120 feuilles sont par exemple 120 matchs indépendants.

Voici ce que je souhaiterais faire:
- Séléctionner la même plage de cellules (46lignes et 1colonne) sur chacune des 120sheets,
- Couper toutes ses plages,
- Les coller sur la "Data" sheet suivant l'ordre des 120sheets.

Auriez-vous une quelconque ébauche de macro, ou un autre outil qui puisse m'être utile?
Merci d'avance,
Cordialement,
CharlesR

6 réponses

cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
20
21 oct. 2007 à 13:34
Comme outil, il y a l'enregistreur de macros inclus dans Excel.
Tu peux donc faire ta routine sur 2 ou 3 feuilles et tu verras ce qui se répète et qui pourrait être groupé dans une boucle.

Pour faciliter ton travail (macro), tu devrais nommer tes feuilles de match avec un Index, du genre
"Match1", "Match2", "Match3", ...
Tu pourras alors activer ces feuilles comme suit:
For compteur = 1 to 120
    Sheets("Match" & compteur).Activate
    ...
Next

Et tu n'exliques pas où exactement tu colles ces données... une à côté de l'autre (?), une sous l'autre (?)

MPi²
0
CharlesR
Messages postés
4
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
23 octobre 2007

22 oct. 2007 à 05:30
Merci beaucoup d'avoir répondu à ma requête MPi. Effectivement, mes feuilles suivent le modèle suivant: T#-R#, où T: Tournament, R: Round. Tous les tournois sont constitués de 4 Rounds chacun, autrement dit le premier tournoi donne les 4 feuilles suivantes: T1-R1 ; T1-R2 ; T1-R3 ; T1-R4 ; puis le deuxième tounroi T2-R1 ; T2-R2 ; ...

Pourrais-tu actualiser ton code "For compteur..." avec les dernières données que je viens de te fournir?

Je ne suis pas très calé en programmation (même si j'aimerais bcp l'être! il va falloir que je trouve le temps...), aurais-tu l'amabilité de m'indiquer le code de la boucle (cela doit être un code basique, si tu n'as pas le temps, pas grave je trouverais...)

En ce qui concerne le "collage" des cellules, je souhaiterais que les cellules coupées se succèdent en colonne. Autrement dit, cellules coupées de T1-R1, sur une colonne intitulée "T1-R1" de la "data" sheet; puis les cellules coupées de T1-R2 sur la colonne suivante de la "data" sheet intitulée "T1-R2"...
(les cellules coupées ne font parties que d'une seule colonne)
En attendant ta réponse,


Cordialement,
CharlesR
0
cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
20
22 oct. 2007 à 11:47
Comme il y a 2 variables, il te faudrait 2 boucles
Quelque chose comme:

For i = 1 to 30
    For j = 1 to 4
       Colonne = Colonne + 1
       Sheets("T" & i & "-T" & j).Activate
       range("A1:A46").Copy   ' pour copier... ou Cut pour couper
       Sheets("Data").Cells(1, Colonne ).PasteSpecial
    Next
Next

MPi²
0
CharlesR
Messages postés
4
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
23 octobre 2007

23 oct. 2007 à 20:54
Parfait MPi! Je te remercie beaucoup pour ton aide.


Cordialment,

CharlesR
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
CharlesR
Messages postés
4
Date d'inscription
jeudi 18 octobre 2007
Statut
Membre
Dernière intervention
23 octobre 2007

23 oct. 2007 à 22:44
En fait pas si parfait que ça... j'obtiens un message d'erreur 438...

CharlesR
0
cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
20
24 oct. 2007 à 02:30
C'est-à-dire ?

MPi²
0