Golan2
Messages postés6Date d'inscriptionvendredi 2 novembre 2007StatutMembreDernière intervention16 octobre 2009
-
12 août 2008 à 20:50
Golan2
Messages postés6Date d'inscriptionvendredi 2 novembre 2007StatutMembreDernière intervention16 octobre 2009
-
20 août 2008 à 23:12
Bonjour,
J'espère ne pas vous embéter avec ma question mais je n'ai pas trouvé de quoi m'aiguiller.
Voila mon souci :
J'ai une feuille ou je liste des documents avec les personnes intéressées par le dit document.
<col style= \"width: 60pt;\" span=\"5\" width=\"80\" />----
, Doc 1, Doc 2, Doc 3, Doc 4, ----
Bernard, oui, oui, non , oui, ----
Jean, non, non, oui, oui, ----
Michel, non, oui, non , non, ----
Odile, non, non, non, non, ----
Paul, oui, non, oui, non, ----
Valérie, non, non, non, oui
Dans une autre feuille je récupère les données de Jean par exemple
j'aimerais à partir du tableau de ma première feuille, concaténer tout les documents concernant Jean dans ma deuxième feuille sous la forme Doc 3, Doc 4 (le cas échéant) dans une seule et même cellule.
J'ai commencé avec ca :
Sub Affecter_Document()
Dim i As Integer
For i = 2 To 5
Sheets("Tableau_General").Select
If Cells(3, i) = "oui" Then
Sheets("Fiche_Jean").Select
Range("D21").Select
ActiveCell.FormulaR1C1 = Equivalence(i)
End If
Next
Sheets("act0002").Select
End Sub
avec
Function Equivalence(i As Integer) As String Equivalence Switch(i 2, "Doc1", i = 3, "Doc2", i = 4, "Doc3", i = 5, "Doc4")
End Function
Mais avec cette boucle le dernier document écrase toujours les précédents. J'ai essayer plusieurs idées mais je dois faire fausse route. Et à vrai dire même si j'arrivais à récupéré tous les docs, je ne sais trop comment concaténer.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 12 août 2008 à 21:18
Peut-etre quelque chose du genre :
Sub Affecter_Document()
Dim i As Integer
Dim tmp As String
'--- Traitement de la ligne 'Jean'
tmp = ""
For i = 2 To 5
Sheets("Tableau_General").Select
If Cells(3, i) = "oui" Then
If tmp <> "" Then tmp = tmp & ", "
tmp = tmp & Equivalence(i)
End If
Next
Sheets("Fiche_Jean").Select
ActiveSheet.Range("D21").Select
ActiveCell.FormulaR1C1 = tmp
'-------------------------------------
Sheets("act0002").Select
End Sub
Function Equivalence(i As Integer) As String
Equivalence = Switch(i = 2, "Doc1", i = 3, "Doc2", i = 4, "Doc3", i = 5, "Doc4")
End Function