Bonjour à tous
C'est mon premier Job et on m'a demandé d'avancer sur un projet. Je n'aurai jamais pu autant avancer sans les questions/réponse de ce forum alors merci à tous.
J'ai une colonne de tableau dans laquelle se trouve des intitulés de voie simplifiés (nom de la variable : Sect(i)). Il peu y avoir plusieurs centaines de lignes.
i; Sect(i); Secto(i)
1; francois miterand; Etablissement 1
2; acacia; Etablissement 2
3; piere marie curie; Etablissement 1
4; ....;
Un des objectifs du projet est de faire des requêtes dans un autre gros fichier afin de leur affecter les établissements ci-dessus à partir des intitulés de voie.
Pour se faire, il faut d'abord que j'arrive à faire un répertoire de toutes les requêtes a adresser au gros fichier. Je veux avoir l'ensemble des arrangements possibles pour chaque intitulé d'adresse (nom de la variable : Sect(i)) avec une condition : on conserve le mot le plus à droit qui reste à sa place.
Exemple pour piere marie curie:
piere marie curie;
marie piere curie;
marie curie;
piere curie;
curie;
Résultat pour l'ensemble du répertoire :
j; Rep(j); Secto(j)
1; pierre marie curie; Etablissement 2
2; marie pierre curie; Etablissement 2
3; francois miterand; Etablissement 1
4; marie curie; Etablissement 2
5; pierre curie; Etablissement 2
6; curie; Etablissement 2
7; miterand; Etablissement 1
8; acacia; Etablissement 1
...; ...;
Ma plus grosse difficulté est d'empiler les rep(j) alors que je ne connais pas, au départ, la valeur de j. J'arrive à faire ce genre de choses avec les objets range (offset par exemple) mais pas avec des modalités de tableau.
Je pense pas utiliser comme il faut la boucle "for each" mais je ne vois pas comment faire :
Aucun message d'erreur mais aussi aucun effet ...
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 Sub repertoire2() Dim sect$(), secto$(), rep$(), nbl1%, nbl2%, i%, j%, c 'Chargment des données sect (colonne s) et secto (colonne v) nbl1 = Range("S1").End(xlDown).Row ReDim sect$(nbl1 - 1), secto$(nbl1 - 1) For i = 1 To UBound(sect) sect(i) = Range("s" & i) secto(i) = Range("v" & i) Next i 'Premières lignes du répertoire (les autres conditions plus tard) For Each c In sect If UBound(Split(c)) = 2 Then rep = sect Next ' Teste du repertoire (colonne y) nbl2 = UBound(rep) ReDim rep(nbl2) For j = 0 To UBound(rep) rep(j) = Range("y" & j + 1) Next j End Sub
Quelqu'un aurait-t-il l'extrême gentillesse de m'aider ?
PS : navré pour la lisibilité des tableaux mais le site n'a pas gardé la mise en forme d'origine
Partager