Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

utiliser les noms de zones

3 réponses
Avatar
Jose SISA
Bonsoir =E0 tous,=20
j'ai une feuille "FA" qui contient dans des cellules
une liste de "codes" exemple :=20
en A2 il y a "in001" et A2 se nomme in001
en B15 il y a "in002" et B15 se nomme in002
en C2 il y a "in003" et C2 se nomme in003

ces codes sont en fait des noms de zones.

j'aimerai que ma macro :
1 - parcoure toute la feuille, =E0 la recherche des cellules
qui contiennent "inXXX" et que pour chacune de ces cellules,
elles soient nomm=E9es avec comme nom de zone, leur contenu.

2 - place en vba (un DIM x,y peut-=EAtre)
une table "TA" de toutes les zones trouv=E9es (in001, in002, in003)
ainsi que les coordonn=E9es ligne colonne les contenant

3 - ouvre un fichier excel et pour chaque lignes
de la table faite en point 2 ; recherche dans ce fichier ouvert
les noms de zones in001..003 et place leur contenu respectif dans=20
la feuille "FA" =E0 l'endroit de noms de zone de FA.


en gros je voudrais rapatrier dans FA des valeurs qui se trouveraient
dans un autre fichier excel (n'importe lequel) =E0 partir du moment o=F9 ce=
lui-ci
aurait des noms de zones correspondantes.

=E7=E0 me fera travailler la cr=E9ation des zones, leur nommage et le d=E9p=
lacement
de contenu d'un fichier =E0 un autre.

Merci pour votre aide.
Jos=E9

3 réponses

Avatar
MichD
Bonjour,

Désolé, je n'ai pas compris ce que tu désires effectuer...

Les plages nommées dans ledit classeur " in001", "in002" ...
Est-ce que ces noms sont définis au niveau de la feuille où
au niveau du classeur?

Et je n'ai rien compris du reste de ta question!


MichD
--------------------------------------------------------------
Avatar
Jose SISA
Bonjour, merci d'avoir répondu à mon message pas clair du tout !

j'ai un fichier AAA.xls qui contiend des noms de zones définies.
dans ces zones (une cellule seulement) il y a des valeurs.
exemple la zone in004 qui est définie en B14 il y a la valeur 0.85

maintenant, dans le fichier BBB.xls j'ai, dans des cellules (qui
peuvent changer) du texte comme par exemple "in004" en B3.

l'idée est de chercher tous les textes représentants des noms de zone
dans BBB.xls, puis, pour chacune des cellules contenant le texte
aller chercher dans AAA.xls la valeur de la zone.

dans mon exemple : dans AAA la zone définie in004 en B14 contiend 0.85.
je souhaite qu'en B3 de BBB.xls la cellule soit remplacée par 0.85.

est ce que c'est moins le fouilli dans mon texte ?

Merci par avance pour ton aide.
José














Le vendredi 25 janvier 2013 18:21:41 UTC+1, MichD a écrit :
Bonjour,



Désolé, je n'ai pas compris ce que tu désires effectuer...



Les plages nommées dans ledit classeur " in001", "in002" ...

Est-ce que ces noms sont définis au niveau de la feuille où

au niveau du classeur?



Et je n'ai rien compris du reste de ta question!





MichD

--------------------------------------------------------------
Avatar
MichD
Essaie ceci :

La procédure suivante suppose que les 2 classeurs
sont ouverts dans la même instance...

'-----------------------------------------------
Sub test()
Dim N As Name, ArrN(), ArrV(), Rg As Range
Dim Sh As Worksheet, Elt As Variant, A As Integer
Dim Adr As String, Trouve As Range

'Thisworkbook représente le classeur où sont les
'Noms (plages nommées) présentement
On Error Resume Next
With ThisWorkbook
For Each N In .Names
Set Rg = Range(N.Name)
If Err <> 0 Then
Err = 0
Else
If Rg.Cells.Count = 1 Then
A = A + 1
ReDim Preserve ArrN(1 To A)
ArrN(A) = N.Name
ReDim Preserve ArrV(1 To A)
ArrV(A) = Evaluate(N.Name)
End If
End If
Next
End With
A = 0

'Adapter le nom du classeur où tu dois
'remplacer les noms par leur valeur
With Worksbooks("NomDuClasseur.xls")
For Each Elt In ArrN
A = A + 1
For Each Sh In .Worksheets
With Sh.Cells
Set Trouve = .Find(What:=Elt, _
LookIn:=xlFormulas, _
lookat:=xlPart)
If Not Trouve Is Nothing Then
Do
With Trouve
.Replace Elt, ArrV(A), lookat:=xlPart
End With
ss = Trouve.Address
Set Trouve = .FindNext(Trouve)
Loop Until Trouve Is Nothing
End If
End With
Next
Next
End With
End Sub
'-----------------------------------------------

MichD
--------------------------------------------------------------