Construire une base de données

Résolu/Fermé
Le_Goret - 7 févr. 2011 à 22:39
 psgpsg - 10 févr. 2011 à 08:26
Bonjour,

Je rencontre des difficultés dans la construction d'une base de données sur Excel 2003 de plusieurs milliers de lignes. J'ai 2 feuilles Excel. Dans une première feuille j'ai une sélection de sites. Dans une seconde j'ai une sélection de références. Je voudrais, sur une troisième feuille, affecter toutes les références à chaque site:
Feuille 1
Site
001
002
004

Feuille 2

Ref 1
Ref2
Ref3
Ref4
Ref5

Feuille 3

Site Ref
001 Ref 1
001 Ref 2
001 Ref 3
001 Ref 4
001 Ref 5
002 Ref 1
002 Ref2
002 Ref 3
002 Ref 4
002 Ref 5
... .....

Ci-joint une maquette de ce que je veux faire au cas où personne n'aurait compris.... Je ne maitrise pas la programmation VBA aussi un petit coup de main ne serait pas de refus!!! Un grand merci d'avance.

Le_Goret.


4 réponses

http://www.cijoint.fr/cjlink.php?file=cj201102/cijQjxgMDI.xls
0
je pense que tu peut utiliser la formule =CONCAT(Sheet("feuil1").cel("A1"), " ", Sheet("feuil2").cel("A1")) dans la barre de formule

Puis tu l'étant à toutes les lignes.

(je ne suis pas sur sur le sheet)
0
Salut Lord seregon. Je n'arrive pas à faire marcher cette formule. Sagit-il de la formule de la formule concatener?
0
En effet c'est sa j'ai retrouvé la formulation exacte : =CONCATENER(Feuil3!A1,Feuil2!C2)
0
Oui il s'agit bien de la formule concatener. Celle_ci me permet d'associer chaque élément d'une colonne avec son équivalent dans une autre colonne. Moi je cherche en fait à associer chacun des éléments une fois avec tous les autres. Ainsi pour 2 colonnes de 5 éléments je voudrais avoir 5*5 soit 25 associations.
0
lord seregon Messages postés 52 Date d'inscription lundi 7 février 2011 Statut Membre Dernière intervention 29 janvier 2018
9 févr. 2011 à 09:15
il faut faire une petite macro VBA, je n'est pas le temps maintenant mais je vais essayé de voir ce soir.
0
Salut Seregon. Je suis arrivé à obtenir la macro, je la laisse pour les gens:

Sub combinaison()
Sheets(3).Select
i = 4
Do While Cells(i, 1) <> ""
i = i + 1
Loop
Range(Cells(4, 1), Cells(i, 2)).Clear
i = 4 'première ligne de ta combi pour ta 3e feuille
isites = 3 'première ligne de la feuille site


Do While Sheets("Sites").Cells(isites, 1) <> ""
iref = 2 'première ligne de la feuille ref
Do While Sheets("Réf").Cells(iref, 1) <> ""
Sheets(3).Cells(i, 1) = Sheets("Sites").Cells(isites, 1)
Sheets(3).Cells(i, 2) = Sheets("Réf").Cells(iref, 1)
i = i + 1
iref = iref + 1
Loop
isites = isites + 1
Loop

End Sub
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 9/02/2011 à 14:52
Bonjour

message supprimé. excusez moi
Michel
0
lord seregon Messages postés 52 Date d'inscription lundi 7 février 2011 Statut Membre Dernière intervention 29 janvier 2018
9 févr. 2011 à 22:57
 
Option explicit
Dim i as int
Dim j as int

For i = 1 to 5
For j = 1 to 5

Sheets(3).Range("A" & i*j).Value = Sheets(1).Range("A" & i).Value & Sheets(2).Range("A" & j).Value

Next j
Next i



Voila sa devrait marcher (sa fait longtemps que j'ai pas fait de VBA donc j'espère que sa sera bon.
0
Merci Seregon, je la teste dans la journée voir ce que ca donne. J'en profiterai pour voir ce qui change avec celle que j'ai donnée la dernière fois. Je me forme tout seul sur les macros. J'essaie de piocher à droite à gauche. Je te tiens au courant.@+
0