ecrire le nom du complexe en face du département
Le
mireille
Bonjour à tous,
J'ai besoin d'affecter à chaque département le nom du complexe auquel il
appartient.
Chaque département appartient à un et un seul complexe. Chaque complexe
contient plusieurs départements
Une feuille contient un tableau avec complexe et département.
La feuille Calculs est celle dans laquelle je dois rajouter le complexe.
Le fichier est ci-joint :
http://www.cijoint.fr/cjlink.php?fi...3bPeae.xls
Je ne sais pas faire cela en VBA (en langage SAS oui).
Merci pour votre aide !
J'ai besoin d'affecter à chaque département le nom du complexe auquel il
appartient.
Chaque département appartient à un et un seul complexe. Chaque complexe
contient plusieurs départements
Une feuille contient un tableau avec complexe et département.
La feuille Calculs est celle dans laquelle je dois rajouter le complexe.
Le fichier est ci-joint :
http://www.cijoint.fr/cjlink.php?fi...3bPeae.xls
Je ne sais pas faire cela en VBA (en langage SAS oui).
Merci pour votre aide !

Poser une question


Solution sans VBA :
=INDEX('Complexes and Dpts'!$A$2:$A$41;EQUIV(Calculs!B3;'Complexes and
Dpts'!$B$2:$B$41;0))
ou pour éviter les #N/A quand le département n'existe pas :
=SI(ESTNA(EQUIV(Calculs!B3;'Complexes and
Dpts'!$B$2:$B$41;0));"-";INDEX('Complexes and
Dpts'!$A$2:$A$41;EQUIV(Calculs!B3;'Complexes and Dpts'!$B$2:$B$41;0)))
Solution VBA :
Sub TrouverLeComplexe()
For Each XXX In [Calculs!B2:B30].Cells
Set XFIND = ['Complexes and Dpts'!B2:B41].Find(What:=XXX,
LookAt:=xlWhole, _
LookIn:=xlValues)
If Not XFIND Is Nothing Then XXX.Offset(0, -1) = XFIND.Offset(0 , -1)
Next XXX
End Sub
Je t'ai mis le fichier modifié sur Cjoint : http://cjoint.com/?ekdlG SBdYm
Corto
mireille a écrit :
Avec 2 plages nommées dynamiquement et une validation de données pour les
departements
En a2 et tirer vers le bas
=SI(ESTNA(EQUIV(B2;departe;0));"depart.
Inconnu";INDEX(complex;EQUIV(B2;departe;0)))
Le fichier modifié
http://www.cijoint.fr/cjlink.php?fi...cApG0m.xls
Ps: attention, il y a des espaces après le nom de quelques départements
--
Salutations
JJ
"mireille" news:
en cellule A2 :
=INDEX('Complexes and Dpts'!A:A;EQUIV(B2;'Complexes and Dpts'!B:B;0))
à recopier vers le bas
ou bien :
For i = 2 To 30
Range("A" & i).Formula = _
"=INDEX('Complexes and Dpts'!A:A,MATCH(B" & i & ",'Complexes and
Dpts'!B:B,0))"
Next
ou bien :
For i = 2 To 30
If Not IsError(Application.Match(Range("B" & i), Sheets("Complexes and
Dpts").Range("B:B"), 0)) Then
Range("A" & i) = _
Application.Index(Sheets("Complexes and Dpts").Range("A:A"), _
(Application.Match(Range("B" & i), Sheets("Complexes and
Dpts").Range("B:B"), 0)))
End If
Next
isabelle
mireille a écrit :
J'ai pris la première solution, celle de Corto en VBA.
Merci encore
"Corto" a écrit :