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

Signaler
Messages postés
6
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
7 juillet 2017
-
Messages postés
16162
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
4 juillet 2020
-
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 https://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

3 réponses

Messages postés
16162
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
4 juillet 2020
2 985
Bonjour,

Bien lu
Proposition dans la journée
Messages postés
16162
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
4 juillet 2020
2 985
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
Messages postés
16162
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
4 juillet 2020
2 985
Durée d'exécution: env 4 à 5/100 secondes
Messages postés
6
Date d'inscription
jeudi 2 mars 2017
Statut
Membre
Dernière intervention
7 juillet 2017
>
Messages postés
16162
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
4 juillet 2020

Je ne sais pas comment vous exprimez mes remerciements. Je vous suis énormément reconnaissant. Vive la technologie!

Merci beaucoup Michel
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
16162
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
4 juillet 2020
2 985
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)