Nom des colonnes à la place de lettre ou chiffre

Bonjour,

J'ai cherché sur le NET comment utiliser le nom d'une colonne à la place de sa lettre ou de son n°

J'ai eut en réponse des centaines de pages ….

Mais soit je n'ai pas sut les interpréter, soit elles ne donnaient vraiment pas la méthodologie pour ce que je voulais faire

Je joint le classeur avec l'UserFom que j'ai extrait de mon projet

Est il possible de me donner alors la syntaxe pour remplacer toutes les lignes de code où je fais appel à une lettre ou un n° de colonne ?

(Dans le menu FORMULE, avec le sous-menu DEFINIR un NOM, j'ai donné comme nom de colonne l'entête de la colonne)

21testnom.xlsm (187.16 Ko)

Bonjour,

La valeur située dans la cellule de la ligne 5 de la colonne SNCF (valeur 3) :

MsgBox Range("SNCF").Cells(5).Value

Bonjour,

tu peux te créer une fonction :

Sub test()
MsgBox col("SNCF")
End Sub

Private Function col(champ As String) As Long
    Dim c As Range
    Set c = Sheets("Dépenses").Rows(2).Find(champ, , xlValues, xlWhole)
    If c Is Nothing Then col = 0 Else col = c.Column
End Function

eric

bonjour à tous

Heu.... il suffit de sélectionner la zone des données avec la ligne des titres, puis menu Accueil "mettre sous forme de tableau"

terminé !

note, on ne tape pas la formule, il suffit de sélectionner l'ensemble de la colonne, Excel te tape Tableau1[prix]

Excel sait tout faire sans VBA, Excel t'aidera

il suffit d'explorer ses menus les plus importants : Accueil et Données.

tu y trouveras des perles

exemple ci-dessous

amitiés à tous

11classeur1.xlsx (9.81 Ko)

Re-bonjour,

Merci à tous

Et plus particulièrement à eriiic

C'est exactement ce qu'il me fallait !

J'ai trouvé sur le NET la fonction pour traduire en lettre le n° de colonne

Avec cela, je vais pouvoir garder mon code actuel, en changeant uniquement la lettre ou n° colonne donné en claire par une variable garnie par la fonction adéquat

Private Function NumCol(NomCol As String, NomFeuille As String) As Long
    Dim c As Range
    Set c = Sheets(NomFeuille).Rows(2).Find(NomCol, , xlValues, xlWhole)
    If c Is Nothing Then NumCol = 0 Else NumCol = c.Column
End Function
Private Function LettreCol(NumCol As Long) As String
    LettreCol = Split(Columns(NumCol).Address(ColumnAbsolute:=False), ":")(1)
End Function

L'appel :

    Dim wNumCol As Long: Dim wLettreCol As String
    wNumCol = NumCol("SNCF", "Dépenses")
    wLettreCol = LettreCol(wNumCol)

Pour SNCF, j'obtient 7 et G, c'est parfait !

Rechercher des sujets similaires à "nom colonnes place lettre chiffre"