Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Nommer cellule en fonction d'une autre

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

auverland

XLDnaute Occasionnel
Bonjour a tous,

Je cherche sans succès une solution pour nommer mes cellules de la colonne F en fonction de la valeur des cellules de la colonne A.

pour etre plus explicite :
si je trouve Thomas dans la colonne A je nomme "Tho" la cellule de la colonne F de cette même ligne.
si je trouve Virginie dans la colonne A je nomme "gini" la cellule de la colonne F de cette même ligne.
ect..

Je souhaites nommer mes cellules car j'ai une macro qui les récupère et mes fichiers n'ont pas toujours le même ordre dans les noms.

Merci d'avance à tous
 

Pièces jointes

Re : Nommer cellule en fonction d'une autre

Bonjour auverland.

Je crains qu'Excel ne suive pas la même logique que la vôtre
si je trouve Thomas dans la colonne A je nomme "Tho" la cellule de la colonne F de cette même ligne.
si je trouve Virginie dans la colonne A je nomme "gini" la cellule de la colonne F de cette même ligne.
ect..
Peut-être faudrait-il lui fournir une liste de correspondances.
 
Re : Nommer cellule en fonction d'une autre

Bonjour à tous,

et j'ajouterai:
En prenant les trois premières lettres,comment différencier:

BERnard
BERnadette
BERnie

JEAn-Marc
JEAn-Michel
JEAn-Christophe
JEA........

à+
Philippe
 
Re : Nommer cellule en fonction d'une autre

Bonjour à tous,
Salut Patrick,
Salut Philippe,

Dans une colonne le pseudo, dans une autre le Prénom :



Puis 'Depuis la sélection' :



Puis Cocher 'Colonne de gauche' :



Tes Noms Définis sont créés

A+ à tous
 

Pièces jointes

  • Capture 1.png
    2.5 KB · Affichages: 77
  • Capture 2.png
    3.1 KB · Affichages: 67
  • Capture 3.png
    1.6 KB · Affichages: 74
Re : Nommer cellule en fonction d'une autre

Bonjour,

Je vous remercie déjà pour votre implication
Je n'airais jamais deux fois le même prénom ce qui simplifie peut-être les choses
je pensais un truc du type

Sub essai()

For i = 6 To Range("a65536").End(xlUp).Row

If Range(i, 1).Value = "Thomas" Then Cells(i, 6).Name = "Tho"
Else
If Range(i, 1).Value = "virginie" Then Cells(i, 6).Name = "gini"
End If
End If
Next
End Sub

Pensez-vous que cela soit possible ?
 
Re : Nommer cellule en fonction d'une autre

Re,

Ce dont je suis sur, c'est qu'il est possible d'essayer. Avec des if, ou avec select case...
... a condition de prévoir tous les prénoms, ce qui n'est pas une mince affaire
 
Re : Nommer cellule en fonction d'une autre

Re,


Ce dont je suis sur, c'est qu'il est possible d'essayer. Avec des if, ou avec select case...
... a condition de prévoir tous les prénoms, ce qui n'est pas une mince affaire

Cette solution me conviendrait même si il faut écrire beaucoup de ligne
Je maitrise pas bien les macros.
Pouvez-vous me donner un exemple avec des if, ou avec select case sur trois quatre cellule ?
Merci d'avance
 
Re : Nommer cellule en fonction d'une autre

Bonjour,

ça a été expliqué dans le post#4, avec une table de correspondance qui se passe de si (ou de IF) trop nombreux; ensuite un rechercheV fera l'affaire (application.vlookup en VBA)
Pas besoin de tant de lignes puisque le recherchev ira chercher en une seule commande les noms demandés.
 
Re : Nommer cellule en fonction d'une autre


Bonjour,

Merci, en faite j'ai une macro qui m'ouvre mes fichiers et récupère les valeurs des cellules nommées.
Certains de mes fichiers sont pas nommés car ils ont été créer il y a longtemps mais je souhaites les traiter comme les autres d'où mon idée de nommer les cellules dans ma macro si je n'ai pas de cellules nommées.

J'arrive à ouvrir le fichier, sélectionner ma feuille après j'arrive pas a écrire mes commandes "if" pour nommer mes cellules

ce bout de code bug et je comprends pas pourquoi "else sans If"

Sub essai()
For i = 6 To Range("a65536").End(xlUp).Row
If Range(i, 1).Value = "Thomas" Then Cells(i, 6).Name = "Tho"
Else
If Range(i, 1).Value = "virginie" Then Cells(i, 6).Name = "gini"
End If
End If
Next
End Sub
 
Re : Nommer cellule en fonction d'une autre

Bonjour à toutes et à tous,

... si je trouve Thomas dans la colonne A je nomme "Tho" la cellule de la colonne F de cette même ligne...

Avec le code ci-après, les cellules sont nommées selon la valeur (entière) de la mention présente en colonne a.

Code:
Option Explicit
Sub Valeurs_nommer()
    Application.ScreenUpdating = False
    Dim c As Range
    For Each c In Columns(6).SpecialCells(xlCellTypeConstants, 23)
        If IsNumeric(c) Then c.Name = c.Offset(, -5).Value
    Next
    Application.ScreenUpdating = True
End Sub

Bises, JCGL 😀

A bientôt 🙂
 
Re : Nommer cellule en fonction d'une autre


en apparté... tu ne confonds pas déjà nommer des cellules et les remplir avec un nom, ce qui est très différent 🙂
ce n'est pas parce que une cellule contient "virginie" que la cellule a pour nom "virginie"...
 
Re : Nommer cellule en fonction d'une autre


Ca fonctionne super bien mais je souhaiterais déterminer moi même le nom que je donnerais aux cellules pour que cela s'intègre parfaitement avec les autres macro
Je vais donc continuer a chercher avec des if then
 
Re : Nommer cellule en fonction d'une autre

Re-bonjour,

...je souhaiterais déterminer moi même le nom que je donnerais aux cellules...

Dans ce cas, une autre façon de procéder :

Code:
Option Explicit
Sub Valeurs_nommer_v2()
    Application.ScreenUpdating = False
    Dim c As Range
    For Each c In Columns(6).SpecialCells(xlCellTypeConstants, 23)
        Select Case c.Offset(, -5).Value
        Case "Bernard": c.Name = "Beard"
        Case "geraldine": c.Name = "dine"
        Case "thomas": c.Name = "mas"
            '.....etc.....
        End Select
    Next
    Application.ScreenUpdating = True
End Sub

Attention aux prénoms suivis d'un espace...

A bientôt 🙂
 
Re : Nommer cellule en fonction d'une autre

Bonjour à tous, bises 00,

Fichier du post #1 et placer dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim P As Range, r As Range, t$, nom As Name
Set P = Range("A6", Range("A" & Rows.Count))
Set r = Intersect(Target, P, Me.UsedRange)
If r Is Nothing Then Exit Sub
On Error Resume Next 'si le nom n'est pas valide
For Each r In r 'si entrées multiples
  If r <> "" Then
    t = ""
1   t = InputBox("Entrez le nom :", "Nommer la cellule " & r(1, 6).Address(0, 0), t)
    If t <> "" Then
      r(1, 6).Name = t
      If r(1, 6).Name.Name <> t Then GoTo 1
    End If
  End If
Next r
'---suppression des noms inutiles---
For Each nom In ThisWorkbook.Names
  If TypeName(Evaluate(nom.Name)) = "Range" Then
    Set r = Evaluate(nom.Name).Offset(, -5)
    If Intersect(r, P) Is Nothing Or r <> "" Then Else nom.Delete
  End If
Next nom
End Sub
A+
 
Re : Nommer cellule en fonction d'une autre

Re,

Un code nettement plus élaboré dans le fichier joint :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim r As Range
Set r = Intersect(Target, Range("A6", Range("A" & Rows.Count)))
If Not r Is Nothing Then If r <> "" Then Cancel = True: Worksheet_Change r
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, x$, t$, nom As Name
Set r = Intersect(Target, Range("A6", Range("A" & Rows.Count)), Me.UsedRange)
If r Is Nothing Then Exit Sub
On Error Resume Next
For Each r In r 'si entrées multiples
  If r = "" Then
    r(1, 6).Interior.ColorIndex = xlNone
    r(1, 6).Name.Delete
  Else
    x = ""
    x = r(1, 6).Name.Name 'si la cellule est déjà nommée
    t = x
1   t = InputBox("Entrez le pseudo de <" & r & "> :", "Nommer la cellule " & r(1, 6).Address(0, 0), t)
    If t <> "" Then
      r(1, 6).Name.Delete 'suppression de l'ancien nom
      For Each nom In ThisWorkbook.Names
        If LCase(t) = LCase(nom.Name) Then _
          MsgBox "Ce pseudo est déjà utilisé !", 48: GoTo 1
       Next nom
      r(1, 6).Name = t 'nouveau nom
      If r(1, 6).Name.Name <> t Then GoTo 1
      r(1, 6).Interior.ColorIndex = 6 'couleur jaune
    End If
    If IsError(r(1, 6).Name) Then If x <> "" Then r(1, 6).Name = x 'l'ancien nom est recréé
  End If
Next r
End Sub
Il est fait en sorte qu'une même cellule en colonne F ne puisse avoir plusieurs noms.

Les cellules nommées sont colorées en jaune.

Edit : avec la coloration la suppression du nom de la cellule quand on efface le nom se fait sans problème car le UsedRange englobe les cellules colorées.

A+
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Fonction si
Réponses
7
Affichages
136
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…