Bonjour,
A partir du fichier de base "donnees" le code va récapituler les infos. et les renvoyer dans le fichier "program" en indiquant combien de société différente sont à tel ou tel endroit à tel ou tel année. bref jusque là c'est parfait, il le fait très bien!
Seulement maintenant j'aimerais pré-configurer les noms de ville : par exemple si paris vient à s'afficher dans le fichier "program" je voudrais que la colonne 'X' , 'L' et 'T' prennent des valeurs que j'aurais prédéfini moi même dans le code VBA.
Pour ce faire j'ai pensé à utiliser une feuille cachée dans laquelle on entre les différentes valeurs pour chaque ville: en colonne A le nom de la ville, en colonne B le code de la ville, en colonne C et D les valeurs numérique , ensuite, on nomme cette plage disons "ListeVilles" (sélection de la plage et dans la zone de nom on inscris ListeVilles puis on appuis sur la touche Entrée). Ceci permettra d'éviter de remplir toutes les valeurs dans le code.
On affecte ensuite au tableau Voir l'exemple ci-dessous :
Mon problème maintenant est que je n'arrive pas à intégrer le code ci -dessus à mon code du fichier "donnes" pour qu'il comprenne que lorsqu'il renvoi des noms des villes dans le fichier "program" il doit aussi rajouté les caractéristique de ces villes (qu'il trouvera dans la feuille 2 du fichier "donnees") au colonne X , L et T du fichier "program"?????
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 Sub Tableau() Dim Tbl As Variant Dim Plage As Range Dim Cel As Range Dim Adr As String Dim I As Integer With Worksheets("Feuil1") 'en colonne B à partir de B2 Set Plage = .Range(.Cells(2, 2), .Cells(.Rows.Count, 2).End(xlUp)) End With 'dim 1 les lignes 'dim 2 les colonnes Tbl = Range("ListeVilles") 'boucle sur le tableau For I = 1 To UBound(Tbl, 1) 'recherche les noms de villes correspondants Set Cel = Plage.Find(Tbl(I, 1), , xlValues, xlWhole) 'si trouvé, mémorise l'adresse et boucle en inscrivant 'les valeurs inscrites dans la plage nommée qui correspondent 'à la ville en cours If Not Cel Is Nothing Then Adr = Cel.Address Do Cel.Offset(0, 1) = Tbl(I, 2) Cel.Offset(0, 2) = Tbl(I, 3) Cel.Offset(0, 3) = Tbl(I, 4) Set Cel = Plage.FindNext(Cel) Loop While Adr <> Cel.Address End If Next I End Sub
Regarder svp le code du fichier "donnees" pour voir comment peut on lui ajouter le code du tableau ci dessus
dites moi svp s'il y a quelque chose de pas claire
mercii beaucoup
Partager