Macro pour Nommer une plage de cellules en Boucle

Jo

XLDnaute Nouveau
Bonjour à tous,

Je n'arrive pas à trouver un sujet exactement similaire je pense que vous allez pouvoir m'aider !
Je recherche à nommer une place de cellules variables avec une boucle (Voir fichier joint).
Je souhaite nommer :
- Les cellules A1:A2 en "CRIT1".
- Les cellules A3:A4 en "CRIT2".
Etc ... jusqu'au CRIT184

J'ai bien essayé ce genre de chose mais ça ne fonctionne pas :

Sub nom()

X = 1

While Sheets("CRIT").Cells(X, 1).Value <> ""

ActiveWorkbook.Names.Add Name:="=CRIT!RXC1", RefersToR1C1:="=CRIT!RXC1:RX+1C1"
X = X + 2
Wend

End Sub

Merci de votre aide précieuse !

Jo
 

Pièces jointes

  • Macro NOM.xls
    38.5 KB · Affichages: 45

Pierrot93

XLDnaute Barbatruc
Re : Macro pour Nommer une plage de cellules en Boucle

Bonjour,

pas ouvert ton fichier, mais regarde si ceci peut t'aider :
Code:
Option Explicit
Sub test()
Dim i As Integer
For i = 2 To 768 Step 2
    Cells(i - 1, 1).Resize(2).Name = "CRIT" & i / 2
Next i
End Sub
bon après midi
@+
 
Dernière édition:

Jo

XLDnaute Nouveau
Re : Macro pour Nommer une plage de cellules en Boucle

Cela fonctionne exactement comme je le souhaitais.
Par contre, je cherche une amélioration.
Exemple avec le fichier que j'ai mis dans mon message précédent.
Après renommage des critères avec ta macro (Qui fonctionne très bien).
On se retrouve avec les noms CRIT1, CRIT2 etc ...
Imaginons qu'on souhaite modifier le nom des critères.
On modifie la cellule A2 en "56" au lieu de "1".
Les critères sont modifiés en CRIT56, CRIT57 etc ...
Si on relance la macro les noms ne se modifient plus car ils ne sont pas "écrasés" et renommés.

Est-il possible avec une légère modification de pouvoir écraser et renommer les noms ?

Merci d'avance de ton aide !
Bonne soirée,
 

Pierrot93

XLDnaute Barbatruc
Re : Macro pour Nommer une plage de cellules en Boucle

Bonjour,

j'ai regardé un peu ton fichier, essaye peut être avec ceci :
Code:
Option Explicit
Sub test()
Dim i As Integer, n As Name
For Each n In ThisWorkbook.Names
    n.Delete
Next n
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row Step 2
    Cells(i - 1, 1).Resize(2,9).Name = "CRIT" & Cells(i, 1)
Next i
End Sub

bonne journée
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 214
Membres
103 158
dernier inscrit
laufin