Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1192 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  vba excel : utiliser la proprièté name d'une cellule

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

vba excel : utiliser la proprièté name d'une cellule

n°1729448
Didine981
Posté le 07-05-2008 à 12:01:54  profilanswer
 

Bonjour,
 
Voila j'aimerai savoir comment faire pour utiliser la propriété Name pour une cellule. En effet, j'aimerai associer un "identifiant" à chaque cellule. Cet identifiant est un identifiant que je récupère dans un fichier XML.
 
Voila le code que j'ai testé :  

Code :
  1. Range("Taches" ).Offset(indice, 0).Name = CStr(resource.parentNode.parentNode.getAttribute("UID" ))


 
Seulement avec ceci, Excel me sort une erreur :  

Citation :

Erreur 1004 : erreur définie par l'application ou l'objet


 
Je ne comprends pas d'où ca vient ...  
Merci pour votre aide ...

mood
Publicité
Posté le 07-05-2008 à 12:01:54  profilanswer
 

n°1729553
Xxxaaavvv
Posté le 07-05-2008 à 14:52:37  profilanswer
 

ne passe pas par la propriété Name du chaque range...
mais par la collection : ActiveWorkbook.Names
 
donc si tu veux associer une liste d'identifiant a des cellules fait une boucle sur "ActiveWorkbook.Names.Add" exemple:

Citation :


ActiveWorkbook.Names.Add Name:="test", RefersToR1C1:="=Feuil1!R9C3:R16C7"


n°1729563
Didine981
Posté le 07-05-2008 à 15:09:18  profilanswer
 

Mais je veux donner le nom qu'à une seule cellule à la fois...
 
J'ai bien essayé :  

Code :
  1. ActiveWorkbook.Names.Add Name:=CStr(resource.parentNode.parentNode.getAttribute("UID" )), RefersToR1C1:="=" + Range("Taches" ).Offset(indice, 0).Name


mais ca ne fonctionne pas mieux .
 
Le problème vient peut être du fait que l'identifiant que je veux inséré est en réalité une chaine de caractères un peu spéciale du genre :  
"AJ3I-%'?! ..."
Ne faut-il pas respecter certaines règles pour les Names ?  
 
 

n°1729588
Xxxaaavvv
Posté le 07-05-2008 à 15:35:39  profilanswer
 

Didine981 a écrit :

Mais je veux donner le nom qu'à une seule cellule à la fois...
 
J'ai bien essayé :  

Code :
  1. ActiveWorkbook.Names.Add Name:=CStr(resource.parentNode.parentNode.getAttribute("UID" )), RefersToR1C1:="=" + Range("Taches" ).Offset(indice, 0).Name


mais ca ne fonctionne pas mieux .
 
Le problème vient peut être du fait que l'identifiant que je veux inséré est en réalité une chaine de caractères un peu spéciale du genre :  
"AJ3I-%'?! ..."
Ne faut-il pas respecter certaines règles pour les Names ?  


 
premièrement pour :
"CStr(resource.parentNode.parentNode.getAttribute("UID" ))"
ça renvois un identifiant bizare tu dis  ? genre  "AJ3I-%'?! ..."
 
-> essaye d'affecter un identifiant à la main dans une feuille vierge pour voir si ça passe...
(ça te fera une erreur de type "Vous devez taper une référence valide (...)" )
 
 
 
ensuite pour :

Code :
  1. RefersToR1C1:="=" + Range("Taches" ).Offset(indice, 0).Name


me parait faux, la propriété Name du range ne renvoie pas l'adresse absolue (enfin je pense pas)
j'aurai plutot utiliser un truc du style :
 
 

Code :
  1. Dim strName As String
  2. Dim strRefersToR1C1 As String
  3. strName = CStr(resource.parentNode.parentNode.getAttribute("UID" ))
  4. With ActiveSheet
  5.    strRefersToR1C1 = "=" & .Name & "!" & .Range("A10:F16" ).Offset(1, 0).Address(, , xlR1C1)
  6. End With
  7. ActiveWorkbook.Names.Add Name:=strName, RefersToR1C1:=strRefersToR1C1


 
bref utiliser la propriété Address d'un range au lieu de name...


Message édité par Xxxaaavvv le 07-05-2008 à 15:36:52
n°1729595
Didine981
Posté le 07-05-2008 à 15:45:11  profilanswer
 

J'ai fait le test dans une feuille vierge, et en effet, ce n'est pas un identifiant valide :(
 
Il va donc falloir que je trouve une autre solution ...  
 
Merci pour ton aide, ca me servira surement pour la suite :)

n°1729675
86vomito33
Posté le 07-05-2008 à 17:31:41  profilanswer
 

  1. RefersToR1C1:="=" + Range("Taches" ).Offset(indice, 0).Name
 
et si a la place du + tu mets un &, ca change quelquechose ?


Message édité par 86vomito33 le 07-05-2008 à 17:32:14

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  vba excel : utiliser la proprièté name d'une cellule

 

Sujets relatifs
chemin du dossier contenant le fichier ExcelRequete XML par VBA Excel
[Trouve] Formule auto : affectation valeur cellule en "dur"[Résolu][VB-Excel-Macro]Boucle qui ne boucle pas.
VBA Excel comment rendre une UserForm dynamique ?Excel modifier régle général de calcul
nom de feuille=nom inscrit dans une celluleUtiliser des valeur de précision 0.000_005 dans un reseau de neurones
[VBA] Comment trouver un valeur juste sup/inf à une cellule?changement d'etat cellule en fonction de la date
Plus de sujets relatifs à : vba excel : utiliser la proprièté name d'une cellule


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR