Inserer nom de colonne dans mes codes

Geraldine

XLDnaute Occasionnel
Re-bonjour le forum,

Dans excel nous avons les noms de colonnes A, B, C, etc ..
Je selectionne la colonne A et j'insere un nom par exemple "CMARQUE"

et je veux utiliser ce nom de colonne dans mes codes soit au lieu de

ComboBoxM.List = .Range("A10:A" & .Range("A65536").End(xlUp).Row).Value
[A10] = *********

je voudrais

ComboBoxM.List = .Range("Cmarque10:Cmarque" & .Range("Cmarque65536").End(xlUp).Row).Value
[Cmarque10] = *********

Mais ça fonctionne pas comme ce dernier,

Merci, géraldine
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Inserer nom de colonne dans mes codes

bonjour Geraldine

A tester quelque chose d'approchant avec:

Code:
Sub test()
 Cmarque = lettre(Range("cmarque").Column)
 ComboBoxM.List = Range(Cmarque & 10 & ":" & Cmarque & Range(Cmarque & 65536).End(xlUp).Row)
End Sub
Function lettre(col As Integer)
   lettre = Left(Cells(1, col).Address(0, 0), Len(Cells(1, col).Address(0, 0)) - 1)
End Function
 

Geraldine

XLDnaute Occasionnel
Re : Inserer nom de colonne dans mes codes

bonjour pierrejean,

si mon integration du code est bonne, ça ne fonctionne pas

Dans Module1 :
Function lettre(col As Integer)
lettre = Left(Cells(1, col).Address(0, 0), Len(Cells(1, col).Address(0, 0)) - 1)
End Function


Dans Userform1
Private Sub UserForm_Initialize()
With Sheets("ARTICLE")
Cmarque = lettre(Range("Cmarque").Column)
ComboBoxM.List = Range(Cmarque & 10 & ":" & Cmarque & Range(Cmarque & 65536).End(xlUp).Row).Value
End With

.....

@
 

cops71

XLDnaute Nouveau
Re : Inserer nom de colonne dans mes codes

Bonjour Géraldine,

Etant donné que tu es dans une structure de regroupement With, ne te manquerait il pas les points devant chacun de tes Range?

Dans Userform1
Private Sub UserForm_Initialize()
With Sheets("ARTICLE")
Cmarque = lettre(.Range("Cmarque").Column)
ComboBoxM.List = .Range(Cmarque & 10 & ":" & Cmarque & .Range(Cmarque & 65536).End(xlUp).Row).Value
End With
 

pierrejean

XLDnaute Barbatruc
Re : Inserer nom de colonne dans mes codes

re

Geraldine

il faut copier correctement

il n'y a pas de .Value en fin de ligne

ComboBoxM.List = .Range(Cmarque & 10 & ":" & Cmarque & .Range(Cmarque & 65536).End(xlUp).Row)

et merci a cops71 pour les points
 

pierrejean

XLDnaute Barbatruc
Re : Inserer nom de colonne dans mes codes

re

encore une fois

bien tout regarder

le nom de la colonne est cmarque (sans C majuscule)
Quant a Cmarque c'est la lettre correspondante

en general Xcel n'aime pas trop des noms identiques pour des notions differentes
 

Geraldine

XLDnaute Occasionnel
Re : Inserer nom de colonne dans mes codes

re pierrejean,

je ne vais pas vous faire perdre votre après midi avec mes erreurs de lecture de vos codes, je suis désolé mais ça ne marche pas, je fait certainnement une erreur mais je ne voit pas ou.



merci et bonne après midi
Géraldine
 

Geraldine

XLDnaute Occasionnel
Re : Inserer nom de colonne dans mes codes

je ne m'enerve pas pierrejean, et je sais très bien que vous savez ce que vous postez,

j'ai essayé à nouveau dans un document essai et ça marche,

je suis désolé,

la debutante et l'etourdie géraldine vous remercie

par contre je voudrais rajouté, pour une formule type

[a10] = ....... je peut mettre

Private Sub CommandButton1_Click() ' valider
Prix = lettre(.Range("prix").Column)
[Prix & 2] = UserForm1.TextBox1 & ""
Quantite = lettre(.Range("quantite").Column)
[Quantite & 3] = UserForm1.TextBox2 & ""
End Sub
 
Dernière édition:

cops71

XLDnaute Nouveau
Re : Inserer nom de colonne dans mes codes

Re geraldine,

Et pourquoi pas utilisé ce genre de code:
Code:
Function lettre(col As Integer)
lettre = Left(Cells(1, col).Address(0, 0), Len(Cells(1, col).Address(0, 0)) - 1)
End Function
Private Sub UserForm_Initialize()
Dim MaColonne As String
Dim Cellule As Variant
    Sheets(1).Select
    MaColonne = lettre(Range("CMARQUE").Column)
    For Each Cellule In Range(MaColonne & 10 & ":" & MaColonne & Range(MaColonne & 65536).End(xlUp).Row)
        ComboBoxM.AddItem Cellule.Value
    Next
End Sub

Pour moi, travaillant sur Excel 2003, ça marche...

Bon courage
 

pierrejean

XLDnaute Barbatruc
Re : Inserer nom de colonne dans mes codes

Cmarque remplace en fait la lettre de la colonne dont le nom est cmarque

la 10eme cellule pourra donc etre nommée

Range(Cmarque & 10)

Je n'utilise jamais la notation [a10] , je ne peux donc rien affirmer

Teste

[A10]=[Cmarque & 10]
 

Geraldine

XLDnaute Occasionnel
Re : Inserer nom de colonne dans mes codes

ça me complique de plus en plus les choses, si j'essaye de faire cette manip, c'est que si par exemple en
colonne A = Designation / colonne B = couleur / colonne c = prix

tous les codes des userform ont ces reperes pour inserer les valeur dans les colonnes
[A1] designation / [B1] couleur / [C1] prix

si dans le temps on modifie la presentation en inserant une colonne en A
par exemple [A1] REF / [B1] designation / [C1] couleur / [D1] prix

[A1] n'est plus designation, mais reference
je doit modifier entièrement tous mes codes .......:mad:


En ésperant arriver à mes fins avec vos conseils, merci à tous les deux

Cordialement, Géraldine
 

pierrejean

XLDnaute Barbatruc
Re : Inserer nom de colonne dans mes codes

Code:
Private Sub CommandButton1_Click() ' valider
Prix = lettre(.Range("prix").Column)
[Prix & 2] = UserForm1.TextBox1 & ""
Quantite = lettre(.Range("quantite").Column)
[Quantite & 3] = UserForm1.TextBox2 & ""
End Sub

me parait correct

pour modifier tout ton code

utilise dans Visual basic editor

la fonction

edition > remplacer

avec par exemple

rechercher A
remplacer par Prix &

Et bravo pour l'idée de prevoir l'insertion d'une colonne
 

Discussions similaires

Réponses
6
Affichages
183

Statistiques des forums

Discussions
312 684
Messages
2 090 916
Membres
104 697
dernier inscrit
Pierrot Hubert