renommer une plage avec vba

  • Initiateur de la discussion Sabrina
  • Date de début
S

Sabrina

Guest
Bonjour le forum,

Voilà, je rencontre un petit soucis avec une commande vba pour renommer une plage dans une feuille excel :

Dans ma macro, je copie une feuille que je renomme grâce à une inputbox, puis je la rend visible (le modèle étant invisible). Finalement, je voudrais renommer la plage B3:B10 de cette nouvelle feuille. Le problème que je rencontre est que je n'arrive pas à référencer cette nouvelle feuille dans mon code.

Voici ce que j'ai tapé :
Sheets(nom).Select
'Range('B3:B10').Select
'ActiveWorkbook.Names.Add Name:='jdcnom', RefersToR1C1:='nom!R3C2:R10C2'

Attention, le code va servir à créer différentes feuilles (avec des 'nom' différents).

Désolée, je n'ai pas mis de fichier joint car ce dernier a une taille trop importante.

Merci pour votre aide qui me sera précieuse.

Bonne journée. Sabrina
 
S

Sabrina

Guest
Pour être plus précise, voilà la totalité de mon code :
Private Sub CommandButton2_Click()
Dim nom As String
Dim n As Integer
Dim miseenservice As String

retour:
nom = InputBox('Quel est le n° interne du nouvel APP ?')
If nom = '' Then Exit Sub
'controle le nouveau nom pour éviter doublons avec feuille existante
For Each ws In Worksheets
If ws.Name = nom Then
MsgBox ('Cet appareil est déjà répertorié !'): GoTo retour
End If
Next ws
Sheets('APP').Copy before:=Worksheets('ARP 02')
ActiveSheet.Name = nom 'Affiche la nouvelle feuille
ActiveWorkbook.Sheets(nom).Visible = True

Sheets('Liste du matériel').Select
For n = 1 To Range('D65536').End(xlUp).Row + 1
If Range('D' & n) = '' Then 'Répertorie le nouveau matériel
Range('D' & n) = nom
Exit For
End If
Next n

Sheets(nom).Select
Range('B3:B10').Name = 'jdc' & ActiveSheet.Name

MsgBox ('Le nouvel APP est-il COFRAC?'), vbYesNo + vbExclamation
If response = Yes Then
Sheets(nom).Select 'Mise en forme de la cellule A2 (renseignements)
Range('A2').Select
With Selection.Interior
.ColorIndex = 43
.Pattern = xlSolid
End With

With Selection.Font
.Bold = False
End With

End If

miseenservice = InputBox('Quelle est la date de mise en service du nouvel APP ?')
Range('A2') = miseenservice

Unload Me

End Sub
 

Adeus33

XLDnaute Occasionnel
Bonjour tous le monde

J'utilise ce code et il fonctionne très bien:

Code:
Sheets('Nom').Select
Range('A1:A15').Name = 'nom_de_la_plage'

Tiens nous au courant
ps: le nom de la plage ne doit pas comporter d'espace

adeus33

Message édité par: adeus33, à: 11/05/2006 17:15
 
S

Sabrina

Guest
Salut adeus33, j'ai un problème justement avec ce 'nom_de_plage' car il varie à chaque fois que je créée une nouvelle feuille (car elle possède un nom différent). Je voudrai que ce nom_de_plage prenne le nom de la nouvelle feuille créée.

Merci pour votre aide
 

Adeus33

XLDnaute Occasionnel
re

Une fois que tu te trouve sur la page tu peux récupérer le nom de cette dernière

Nomdelapage = ActiveSheet.Name
ensuite
Range('A1:A15').Name = Nomdelapage

Verifie si tu récupére bien le bon nom en collant dans une cellule de ta feuille (juste en vérification

Je pense que ca devrait fonctionner mais j'ai pas essayé
 

pierrejean

XLDnaute Barbatruc
bonsoir Sabrina Adeus Robert

apres lecture je pense que ton nom de feuille comporte un espace

si c'est le cas essaie d'adapter la macro du fichier ci-joint [file name=nomplage.zip size=7744]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/nomplage.zip[/file]
 

Pièces jointes

  • nomplage.zip
    7.6 KB · Affichages: 89

Discussions similaires

Statistiques des forums

Discussions
312 344
Messages
2 087 444
Membres
103 546
dernier inscrit
mohamed tano