lettre d'une colonne

  • Initiateur de la discussion Initiateur de la discussion ZZR09
  • Date de début Date de début

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 !

ZZR09

XLDnaute Occasionnel
Bonjour le forum,

Question à deux sous ...
la fonction COLONNE() renvoie le numéro de la colonne. comment peut-on obtenir la lettre de la colonne (sans VB) 😕

Merci
 
Re : lettre d'une colonne

Bonjour tout le monde

Si j'ai bien compris
Code:
 =SUBSTITUE(ADRESSE([B]1[/B];COLONNE();[B]4[/B]);"[B]1[/B]";"")
La valeur 4 indique à Adresse de retourner une référence texte sous forme relative. Comme la valeur de la ligne est fixe (1). Il suffit de substituer ce caractère dans la chaîne, pour n'avoir que la ou les lettres de la colonne.
Cela fonctionne aussi bien dans toutes les versions d'office.

@+Jean-Marie
 
Re : lettre d'une colonne

bonjour à tous,

et merci à tous.
en voilà pleines de bonnes idées!

par souci de compatibilité avec Open Office Calc, je vais garder une formule. Cela dit, en d'autres circonstances, le VBA m'intéresse aussi.

il y a deux choses que je vois règulièrement dans les codes développés et que je ne connais pas bien :

kiki29 à dit:
Public Function Lettre2NumCol(ByVal Chaine As String) As Long
- qu'est-ce qu'une fonction en VBA? quelle est la différence avec une procédure (Sub) 😕
- dans la déclaration d'une procédure ou de cette fonction, vous mettez entre parenthèse des renseignements : (ByVal Chaine As String) Quest-ce que c'est, quels sont l'intérêt et les conditions d'utilisation de cette méthode 😕

kiki29 à dit:
x = (26 ^ (i + 1) - 1) / 25 - 1
- A quoi correspond "^" 😕

Merci kiki29 pour ton code car au delà de la réponse à la question initiale, cela suscite pleins d'interrogations ... et j'espère, de progression. En effet cela fait longtemps que je vois ces méthodes sans trop comprendre comment les utiliser...
 
Re : lettre d'une colonne

Jour Bon, qqs liens
Les fonctions personnelles dans Excel - Club d'entraide des développeurs francophones
FAQ MS-Excel - Club d'entraide des développeurs francophones
sinon Ce lien n'existe plus
On considere une fonction comme une boite noire avec des parametres en entrée et un résultat en sortie, par analogie avec les formules par exemple si tu fais B1=SOMME(A1:A2)
tu as 2 parametres pour la fonction Somme en entrée A1 et A2 et 1 résultat en B1

^ Opérateur qui permet d'élever un nombre à une puissance

Il ne faut oublier l'aide en ligne
 
Dernière édition:
Re : lettre d'une colonne

Salut tout le monde,

Je fais juste un petit passage car j'avais suivis ce fil, puisqu'il m'ai arrivé de nombreuse fois a récupérer la lettre de colonne d'une cellule en vba.

J'utilise un code un peu plus simple que la fonction NumCol2Lettre de kiki. En fonction, cela donnerait le code suivant :
Code:
Public Function NumCol2Lettre2(ByVal cellule As Range) As String
NumCol2Lettre2 = Mid(cellule.Address, 2, InStr(2, cellule.Address, "$") - 2)
End Function

@+
 
Re : lettre d'une colonne

Re
Code:
Sub Tst()
    Debug.Print NumCol2Lettre2(Range("XFD1"))
    Debug.Print lettre_col(Range("XFD1"))
    Debug.Print GetCol(16384)

    Debug.Print NumCol2Lettre(16384)
    Debug.Print NumCol2Lettre(2147483647)
End Sub
 
Dernière édition:
Re : lettre d'une colonne

Bonjour à tous,

autre code VBA

Code:
public function lettre_col(target as range) as string
        lettre_col = Split(target.Address, "$")(1)
end function

Target va désigner la cellule active avant le lancement de la fonction mais peut-on faire en sorte qu'elle soit appelée par une procédure mise pause le temps que l'utilisateur puisse sélectionner une cellule à la souris et reprendre ensuite avec la nouvelle adresse (sans passer par l'évènement Worksheet_SelectionChange dans la feuille) 😕

exemple:
procédure ...
msgbox "indiquez la cellule cible avec la souris"
la procédure est en pause ou arrêtée le temps que l'utilisateur active une cellule.
au clic de souris, la procédure reprend.

Si on ne passe pas par l'évènement Worksheet_SelectionChange, on peut agir sur n'importe quel classeur et on ne risque pas un lancement inopiné de la procédure Worksheet_SelectionChange!

j'espère que ce n'est pas trop confus!
 
Re : lettre d'une colonne

Bonjour à toutes et tous,



Supers les liens, j'avais déjà été regarder du coté de developpez.com mais deux choses me poussent à poser des questions parfois bêtes:
- le manque de temps pour effectuer des recherches,
- l'ignorance des moyens existant et donc quoi chercher : quels mots clés!

pour illustrer mon propos, c'est comme chercher un outil alors qu'on ne maitrise rien du "quoi", pourquoi, comment" ... et que l'échéance est très proche ... il est plus efficace de demander l'outil à ceux qui savent lequel utiliser, où le trouver et comment l'utiliser dans ce cas prècis.
Bien sûr, on peut aussi demander au autres de tout faire à sa place 😛 mais ce n'est pas mon but

la preuve : vous trouverez la formule demandée (lettre d'une colonne) dans un autre projet plus élaboré... projet pour lequel j'avias demandé un peu d'aide afin de gagner du temps. Sans compter le temps précédent ma décision de demander de l'aide, j'ai passé trois jours pour y répondre moi même et je suis maintenant super en retard sur mon planning.

Bien sûr on apprend mieux en réfléchissant/cherchant mais j'avais vraiement autre chose à fairte en ce moment.
J'aurais aussi pu abandonner momentanément ce projet ... inconcevable 😱
D'après ce que j'ai vu, on doit être un certain nombre dans ce cas sur ce forum 😉

classement-par-victoire-points-average-avec-ex-aequo
vous trouverez la formule en dessous de la poule, avant le classement effectué.

Pour faire court : Merci beaucoup pour tes renseignements 😛
 
Re : lettre d'une colonne

re:

utilisation de la fonction

Dans une cellule =lettre_col(A1)

dans une macro

dim let as string
let = lettre_col(range(adressse))

On se moque de la feuille, sur chaque feuille une cellule detient la meme adresse


oui, mais si je veux changer de cellule et que cette dernière soit prise en compte?

pus précisément : par une macro j'ouvre un classeur et j'active une cellule puis je pose la question: le renseignement est-il bien la cellule active?
Cela me permet de repositionner si des lignes/colonnes ont été rajoutées sur la feuille du classeur cible. dans ce cas,je demande à l'utilisateur de cibler la cellule voulue avec la souris ... et je relance la procédure que j'avais commencée en étant assuré de traiter le bon renseignement.

est-ce possible?
En fait, je ne sais pas si on peut arrêter une procédure, agir sur le classeur et enfin reprendre la procédure 🙄
 
Re : lettre d'une colonne

re:

à mettre dans l'entete d'un module afin de rendre disponible cette variable à toutes les macros
Code:
public col_adr as String

à mettre dan un module : la fonction
Code:
public function lettre_col(target as range) as string
        lettre_col = Split(target.Address, "$")(1)
end function

à mettre dans this workbook
Code:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    col_adr = lettre_col(Target)
End Sub

ensuite : quelque soit la macro que tu lances, tu peux acceder à la colonne de la cellule selectionée ou active en utilisant la variable
col_adr
 
Re : lettre d'une colonne

Re Wilfried42,

ça fonctionne nickel pour le classeur actif mais pas pour un autre classeur

... ne comportant pas les instructions suivantes :
Code:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    col_Adr = lettre_Col(Target)
End Sub

je vais chercher comment écrire / supprimer des lignes de code dans un nouveau classeur.

merci pour ton idée.
 
- 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

R
  • Question Question
Réponses
3
Affichages
103
regis6460
R
Réponses
5
Affichages
196
Retour