Menu

Macro excel pour renvoie d'une plage donnée sur une feuille [Résolu/Fermé]

Messages postés
6
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
7 juillet 2017
- - Dernière réponse : michel_m
Messages postés
15870
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
18 juin 2019
- 7 mars 2017 à 08:25
Bonjour les Excelistes,

Je reviens vers vous pour m'économiser du temps pour faire une manipulation sur un ensemble de classeurs que j'ai à traiter. En effet, et comme expliquer dans le fichier http://www.cjoint.com/c/GCexGqcI6s1
J'ai des données relatives à un ensemble de villes sous forme de fiche par ville. chaque fiche est dans une feuille à part du classeur. Je veux, dans une feuille dite "population", avoir la population de toutes les villes (renvoyer la case M2 pour le nom de la ville, et la ligne 7 de la colonne B à X, pour l'évolution de la population). Je veux faire de même pour la consommation en eau potable de la ville (même concept que la population avec la ligne 23). J'espère être clair sur la consistance de la tâche souhaitée. En vous remerciant d'avance de votre retour, sincères remerciements
Afficher la suite 

3 réponses

Messages postés
15870
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
18 juin 2019
2746
0
Merci
Bonjour,

Bien lu
Proposition dans la journée
Messages postés
15870
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
18 juin 2019
2746
0
Merci
Re,

proposition code
Option Explicit
Option Base 1
'---------------------------------------------------------------------------
Sub socio_villes()
Dim Cptr As Byte, Col As Byte
Dim Ville As String, T_pop, T_eau, T_lig7, T_lig23
ReDim T_pop(43, 24)
ReDim T_eau(43, 24)
ReDim T_lig7(1, 23)
ReDim T_lig23(1, 23)

'---------------- parcours les feuilles de ville
For Cptr = 1 To 43
'ville
With Sheets(Cptr + 2)
Ville = .Range("M2")
'----population
T_lig7 = .Range(.Cells(7, 2), .Cells(7, 24))
'eau
T_lig23 = .Range(.Cells(23, 2), .Cells(23, 24))
'---collecte données annuelles
For Col = 1 To 23
'population
T_pop(Cptr, 1) = Ville
T_pop(Cptr, Col + 1) = Round(T_lig7(1, Col), 1)
'consommation eau
T_eau(Cptr, 1) = Ville
T_eau(Cptr, Col + 1) = Round(T_lig23(1, Col), 0)
Next
End With
Next
'---------------------restitution population
Sheets("population").Range("A3:X46") = T_pop
Sheets("population").Range("A3:X46").Borders.Weight = xlThin
'---------------------restitution consommation eau
Sheets("consom").Range("A3:X46") = T_eau
Sheets("consom").Range("A3:X46").Borders.Weight = xlThin
End Sub



 Michel
michel_m
Messages postés
15870
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
18 juin 2019
2746 -
Durée d'exécution: env 4 à 5/100 secondes
Anassber
Messages postés
6
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
7 juillet 2017
> michel_m
Messages postés
15870
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
18 juin 2019
-
Je ne sais pas comment vous exprimez mes remerciements. Je vous suis énormément reconnaissant. Vive la technologie!

Merci beaucoup Michel
Anassber
Messages postés
6
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
7 juillet 2017
-
Juste une amélioration, les valeurs qu'on me remet dans les feuilles population et consom sont arrondies à 1 chiffre après la virgule, pour la population et 0 chiffre pour la consommation. comment faire pour avoir 3 chiffres après la virgule, pour les deux cas?

Merci d'avance
Messages postés
15870
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
18 juin 2019
2746
0
Merci
bonjour

'population
T_pop(Cptr, 1) = Ville
T_pop(Cptr, Col + 1) = Round(T_lig7(1, Col), 3)
'consommation eau
T_eau(Cptr, 1) = Ville
T_eau(Cptr, Col + 1) = Round(T_lig23(1, Col), 3)