Macro excel pour renvoie d'une plage donnée sur une feuille

Résolu
Anassber Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   -
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
A voir également:

3 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
Bonjour,

Bien lu
Proposition dans la journée
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
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
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
Durée d'exécution: env 4 à 5/100 secondes
0
Anassber Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   > michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention  
 
Je ne sais pas comment vous exprimez mes remerciements. Je vous suis énormément reconnaissant. Vive la technologie!

Merci beaucoup Michel
0
Anassber Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
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)
0