[VBA] - Nommer des zones via un tableau de correspondance

nat54

XLDnaute Barbatruc
Bonjour,

Je fais suite au fil "graphique selon mois de l'année".

Voilà le problème : j'ai crée un tableau où il y a
* colonne B : nom zone
* colonne C : formule de la zone

Etant donné qu'il y a 141 zones à nommer, CB60 m'a aidé à construire ce code VBA pour éviter d'avoir à copier-coller ces 141 formules dans insertion/nom/définir

Problème : cela ne crée que 127 noms (je crois) sur les 141

Pourquoi ??


Le code
Sub zoneNommee()
On Error Resume Next
Sheets("formules_nommées").Select
Range("c10").Select ' j'ai mis en C10 le nom et en c11 la formule
While ActiveCell.Value <> "" ' boucle tant que ce n'est pas vide
ActiveWorkbook.Names.Add Name:=Selection.Value, RefersToR1C1Local:=ActiveCell.Offset(0, 1).Value
ActiveCell.Offset(1, 0).Select
Wend
End Sub


Le fichier


Merci d'avance
 

Pièces jointes

  • creer_zones_nommées.xls
    46.5 KB · Affichages: 73
Dernière édition:

Minick

XLDnaute Impliqué
Re : [VBA] - Nommer des zones via un tableau de correspondance

Re,

Because, toutes les fonctions que tu utilises dans du code doivent
etre en english

donc
Code:
   =DECALER(Evolution_PRU!$C$3;Evolution_PRU!$c$2;;;)
doit s'ecrire
Code:
   =OFFSET(Evolution_PRU!R3C3,Evolution_PRU!R2C3,,,)
++
 

nat54

XLDnaute Barbatruc
Re : [VBA] - Nommer des zones via un tableau de correspondance

ok
je modifierais cela tout à l'heure car là je pars au tennis

question : où peut-on avoir facilement la conversion de A1 en R1C1 ?
histoire de ne pas se tromper..
 

Dan

XLDnaute Barbatruc
Re : [VBA] - Nommer des zones via un tableau de correspondance

Bonjour,

En vitesse, essaie avec ce code :
Code:
Sub zoneNommee()
On Error Resume Next
Dim donnee As String
Dim i As Byte
i = 6
Sheets("formules_nommées").Select
Range("B" & i).Select ' j'ai mis en C10 le nom et en c11 la formule
donnee = Range("B" & i).Value
While donnee <> "" ' boucle tant que ce n'est pas vide
ActiveWorkbook.Names.Add Name:=donnee, RefersToR1C1Local:=Range("B" & i).Offset(0, 1).Value
i = i + 1
donnee = Range("B" & i).Value
Wend
End Sub

A te lire

dan
 

Minick

XLDnaute Impliqué
Re : [VBA] - Nommer des zones via un tableau de correspondance

re,

J'ai mis a jour tes formules.
la colonne des formules mise en format Texte
DECALER
devient OFFSET
; devient ,

Change :
RefersToR1C1Local en RefersTo

++
 

Pièces jointes

  • creer_zones_nommées.zip
    14.3 KB · Affichages: 32
Dernière édition:

nat54

XLDnaute Barbatruc
Re : [VBA] - Nommer des zones via un tableau de correspondance

Dan à dit:
Bonjour,

En vitesse, essaie avec ce code :
Code:
Sub zoneNommee()
On Error Resume Next
Dim donnee As String
Dim i As Byte
i = 6
Sheets("formules_nommées").Select
Range("B" & i).Select ' j'ai mis en C10 le nom et en c11 la formule
donnee = Range("B" & i).Value
While donnee <> "" ' boucle tant que ce n'est pas vide
ActiveWorkbook.Names.Add Name:=donnee, RefersToR1C1Local:=Range("B" & i).Offset(0, 1).Value
i = i + 1
donnee = Range("B" & i).Value
Wend
End Sub
A te lire

dan

Bonjour Dan,
Même problème qu'avec la macro de CB60
 

nat54

XLDnaute Barbatruc
Re : [VBA] - Nommer des zones via un tableau de correspondance

Merci Minik
Mais c'est sûr qu'Excel reconnait ensuite dans les graphes la fonction OFFSET et non plus DECALER ?
parce que là ya des hics dans le fichier :eek:
je n'arrive pas par exemple à affecter au graphe 1 CumulPRU_REI_E06
il me dit référence externe invalide

Par ailleurs la liste déroulante sur la feuille 'evolution PRU' ne fonctionne plus là, car excel ne reconnait pas les cellules en RxCx dans données/validation apparemment
 
Dernière édition:

nat54

XLDnaute Barbatruc
Re : [VBA] - Nommer des zones via un tableau de correspondance

CB60 à dit:
Bonsoir
Oui cela fonctionnera, d'aprés les essais que je viens de faire.
Comment on fait dans données/source pour donner le nom ?
ya juste à écrire ?

car là je mets
='Graph_SIDEL_volume_prod V2.xls'!CumulPRU_REI_06
et ca me dit " référence externe invalide"
http://cjoint.com/?gxs4rJAbt5 (>48ko)

Là c'est vraiment la dernière étape, donc merci de m'aider


 
Dernière édition:

CB60

XLDnaute Barbatruc
Re : [VBA] - Nommer des zones via un tableau de correspondance

dans la deuxieme partie des formules il faut faire reference à B3

CumulPRU_REI_E06=OFFSET(Evolution_PRU!$C$4,,,Evolution_PRU!$b$3)
CumulPRU_REI_E07=OFFSET(Evolution_PRU!$D$4,,,Evolution_PRU!$b$3)
CumulPRU_REI_I06=OFFSET(Evolution_PRU!$E$4,,,Evolution_PRU!$b$3)
CumulPRU_REI_I07=OFFSET(Evolution_PRU!$F$4,,,Evolution_PRU!$b$3)

et pas à C2 et la ça fonctionne
 
Dernière édition:

Statistiques des forums

Discussions
312 198
Messages
2 086 107
Membres
103 120
dernier inscrit
83400ren