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

réccupérer la lettre de la colonne recherchée

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 !

LaurentG

XLDnaute Occasionnel
Bonjour,

J'ai un petit problème avec un code.
Ma macro fait deux recherches de cellules.
Pour la première cellule trouvée j'ai besoin de garder le numéro de la ligne.
Pour la deuxième cellule trouvée j'ai besoin de garder l'identifiant de la colonne (ex: A ou BC ...)

Pour le numéro de la ligne pas de problème. Mais pour la colonne je réccupère son numéro également. Comment faire pour réccupérer la lettre?

Merci pour votre aide.

Voici mon code :

For i = 3 To 1802
'définition les variables
nbe = Sheets("test_client").Range("D" & i).Value
client = Sheets("test_client").Range("B" & i).Value
test = Sheets("test_client").Range("A" & i).Value

'recherche l'emplacement de la celulle cible
Set ligne = Sheets("test_client_reformaté").Range("A:A").Find(test)
Set colonne = Sheets("test_client_reformaté").Rows("1:1").Find(client)

numero_ligne = Range(ligne.Address).Row
numero_colonne = Range(colonne.Address).Column

' colle les données
Sheets("test_client_reformaté").Range(numero_column & numero_ligne).Value = nbe

Next

Laurent
 
Re : réccupérer la lettre de la colonne recherchée

Bonjour Laurent G, 🙂
le problème n'est pas de récupérer LA lettre, mais la ou LES lettres....😕

Solution :
Colonne = Left$(ActiveCell.Address(0, 0), (ActiveCell.Column < 27) + 2)

Pour obtenir la "lettre" de la colonne, il faut extraire soit le premier
caractère de l'adresse si la colonne est avant la colonne 27 (soit les
lettres A-Z), soit les deux premiers caractères si c'est une colonne
plus à droite (AA => IV = deux caractères).

ActiveCell.Address(0, 0) donne l'adresse avec des coordonnées
"relatives" (sans les $). (ActiveCell.Column < 27) renvoie True si la
condition colonne < 27 est vérifiée, False sinon. En ajoutant 2 à cette
valeur, le booléen True/False est tranformé en nombre: -1 si True, 0 si False.

Donc :

- si colonne < 27, (ActiveCell.Column < 27) + 2 = True + 2 = -1 + 2 = 1
et la fonction Left$ extrait le premier caractère (lettre unique, A à Z)

- si colonne > 26, (ActiveCell.Column < 27) + 2 = False + 2 = 0 + 2 = 2
et Left$ extrait les deux premiers caractères (colonne = 2 lettres, AA à IV)

de Laurent Longre


Bonne journée


 
Re : réccupérer la lettre de la colonne recherchée

bonjour

sinon modifier le code en utilisant cells au lieu de range.

cells(ligne, colonne)

' colle les données
Sheets("test_client_reformaté").cells(numero_ligne,numero_column).Value = nbe


salut 🙂
 
Re : réccupérer la lettre de la colonne recherchée

Salut LaurentG, Bricofire, Hervé

et un truc du genre
MsgBox Selection.EntireColumn.Address(ColumnAbsolute := False)
cela n'irait pas ?

Cordialement
 
Re : réccupérer la lettre de la colonne recherchée

re

salut yeahou

dans le meme ordre d'idée que yeahou :

MsgBox Split(Selection.EntireColumn.Address(0, 0), ":")(0)

non compatible excel 97

salut
 
Re : réccupérer la lettre de la colonne recherchée

Re

sinon en compatible excel 97

MsgBox Left(Selection.EntireColumn.Address(ColumnAbsolute:=False), InStr(1, Selection.EntireColumn.Address(ColumnAbsolute := False), ":") - 1)

A+
 
- 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éponses
2
Affichages
411
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
5
Affichages
914
Réponses
4
Affichages
735
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…