
| auteur : SilkyRoad |
Par défaut, vous utilisez les étiquettes de colonnes et de lignes pour faire référence aux cellules dans la feuille
de calcul (A1, J4, B2 :C10 …).
Vous pouvez également créer des noms explicites pour représenter les cellules, les plages de cellules et les formules.
Un nom est une chaîne de caractères définie par l'utilisateur et facile à interpréter, pour remplacer les classiques
références de cellules.
Par exemple, =A1*Coefficient est plus facile à comprendre que =A1*G5.
Le nom ne doit pas contenir d'espace ni de caractère spécial. Le caractère underscore _ est accepté. Un nom ne peut pas
commencer par une valeur numérique.
Pour nommer une cellule ou une plage de cellule:
Sélectionnez une cellule ou une plage de cellules que vous souhaitez nommer.
Cliquez dans la zone Nom, à gauche de la barre de formule.
Saisissez un nom qui servira de référence pour la cellule.
Validez en appuyant sur la touche Entrée.
Vous pouvez aussi ajouter un nom en utilisant le menu Insertion/nom/Définir.
La boîte de dialogue qui s'affiche permet aussi de visualiser tous les noms existants dans le classeur.
Saisissez le nom dans le champ Noms dans le classeur.
Spécifier l'adresse de la cellule ou de la plage dans le champ Fait référence à :.
Cliquez sur le bouton Ajouter, puis sur le bouton OK pour valider.
Nommer les formules:
Cette méthode a de nombreux avantages:
* Raccourcir la longueur des formules dans la barre de formules. Il est possible de nommer plusieurs portions de
formules (La limite de chaque nom est de 256 caractères).
* Nommer les formules permet d'accélérer sensiblement le temps de calcul.
* Les formules sont masquées dans la feuille de calcul.
* les formules matricielles nommées ne sont plus à valider par Ctrl+Maj+Entrée.
Pour attribuer un nom, tout d'abord, rédigez votre formule normalement dans la cellule.
Sélectionnez la fonction dans la barre de formules.
Faites un Copier de la formule (Ctrl+C).
Revalidez votre formule (Touche Entrée).
Ensuite, utilisez le menu Insertion/Nom/Définir.
Dans le champ "Noms dans le classeur": Saisissez le nom que vous souhaitez donner à la formule (par exemple EssaiNom).
Dans le champ "Fait référence à": Effacez la référence qui s'y trouve et faites un collage de la fonction (Ctrl+V).
Cliquez sur le bouton Ajouter, puis sur le bouton OK pour valider.
Effacez la formule contenue dans la cellule et remplacez la par: =EssaiNom.
|
| auteur : SilkyRoad |
La macro suivante liste les cellules et les plages nommées, dans l'ordre d'index des feuilles, et crée une table des
matières avec liens hypertextes.
Vba |
Sub ListeNoms_OrdreFeuilles ()
Dim N As Name
Dim PlageNom As Range
Dim i As Byte
Dim NumLigne As Byte
NumLigne = 1
On Error Resume Next
For i = 1 To Worksheets. Count
For Each N In Worksheets (i). Parent . Names
Set PlageNom = Nothing
Set PlageNom = N. RefersToRange
If Not PlageNom Is Nothing Then
If Worksheets (i). Index = PlageNom. Worksheet . Index Then
Cells (NumLigne, 1 ) = N. Name
Cells (NumLigne, 2 ) = N. RefersToRange . Value
Worksheets (1 ). Hyperlinks . Add Anchor:= Cells (NumLigne, 3 ), _
Address:= " " , SubAddress:= N. RefersToRange . Address (external:= True )
NumLigne = NumLigne + 1
End If
End If
Next N
Next i
End Sub
|
|
| auteur : SilkyRoad |
Dans cet exemple, le filtre automatique est dans la feuille nommée Feuil1.
Vba |
Sub NommerZoneFiltree ()
ActiveWorkbook. Names . Add Name:= " NomPlage_01 " , _
RefersTo:= " =Feuil1! " & _
Feuil1. AutoFilter . Range . SpecialCells (xlCellTypeVisible). Address
End Sub
|
|
| auteur : SilkyRoad | Vba |
Sub SuppressionNoms ()
Dim Nom As Name
For Each Nom In ActiveWorkbook. Names
Nom. Delete
Next Nom
End Sub
|
|
| auteur : SilkyRoad | Vba |
Sub Renomme_Nom ()
Dim AncienNom As String , NouveauNom As String
Dim Cible As String
AncienNom = " NomPlage "
NouveauNom = " MaPlage "
Cible = Range (AncienNom). Name
Range (AncienNom). Name . Delete
Range (Cible). Name = NouveauNom
End Sub
|
|
| auteur : SilkyRoad |
Vous souhaitez par exemple additionner les 5 dernières cellules de la colonne A, mais le nombre de lignes
peut varier régulièrement.
Si vous utilisez une fonction classique (=SOMME(A6:A10)), la référence à la plage de cellule (A6:A10) devra
être modifiée manuellement à chaque fois que le nombre de lignes change.
Pour y remédier, vous pouvez définir dynamiquement une plage, qui prendra en compte les 5 dernières cellules de
la colonne, et lui attribuer un nom. Ensuite il suffira d'additionner la plage nommée.
Par exemple, saisissez des valeurs numériques dans la plage A1:A10.
Ensuite utilisez le menu Insertion/Nom/Définir.
Dans le champ "Nom dans le classeur:", vous indiquez PlageCible.
Dans le champ "Fait référence à:", vous indiquez =DECALER(Feuil1!$A$1;NBVAL(Feuil1!$A:$A)-5;;5;1)
Cliquez sur le bouton Ajouter, puis sur le bouton OK pour valider.
Retournez dans la feuille de calcul.
Dans la cellule B1 vous saisissez: =SOMME(PlageCible).
Si vous ajoutez des valeurs à la suite dans la colonne A, Les 5 dernières seront toujours prises en compte dans
la fonction =SOMME(PlageCible).
=DECALER(Feuil1!$A$1;NBVAL(Feuil1!$A:$A)-5;;5;1) définit une plage constituée
des 5 dernières cellules de la colonne A.
Dans cet exemple, les autres cellules sont supposées non vides.
Si la colonne A peut contenir moins de 5 valeurs, vous pourrez utiliser cette adaptation:
=DECALER(Feuil1!$A$1;SI(NBVAL(Feuil1!$A:$A)<5;0;NBVAL(Feuil1!$A:$A)-5);;5;1)
|
| auteur : SilkyRoad | Vba |
Sub Test ()
MsgBox CompteCellules_PlageNommee (" NomPlageCellules " )
End Sub
Function CompteCellules_PlageNommee (strNom As String ) As Variant
Dim Plage As Range
On Error Resume Next
Set Plage = Sheets (" Feuil1 " ). Range (strNom)
On Error GoTo 0
If Plage Is Nothing Then
CompteCellules_PlageNommee = " Nom inconnu "
Else
CompteCellules_PlageNommee = Plage. Cells . Count
End If
End Function
|
Vous pouvez aussi utiliser la fonction dans une cellule:
=CompteCellules_PlageNommee("NomPlageCellules")
|
| auteur : SilkyRoad |
Si vous utilisez l'argument Target associé
aux évènements
(Worksheet_SelectionChange, Worksheet_Change …) pour
récupérer le nom des cellules sélectionnées, appliquez la syntaxe Target.Cells(1).Name:
Vba |
Private Sub Worksheet_SelectionChange (ByVal Target As Range)
On Error Resume Next
MsgBox Target. Cells (1 ). Name . Name
On Error GoTo 0
End Sub
|
|
Consultez les autres F.A.Q's
Les sources présentés sur cette pages sont libre de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2008
Developpez LLC. Tout droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérets.
Cette page est déposée à la SACD.
|