VBA- trouver la colonne d'un item dans une plage de cellule

Hervé

XLDnaute Barbatruc
bonjour

j'ai un trou de mémoire, je ne sais plus comment trouver la colonne d'un item dans une plage.

le code ci dessous me renvoi 4, soit 4 colonnes à partir du bord de la feuille, je voudrais qu'il me renvoi 2, soit deux colonnes du bord de la plage

Code:
Dim plg As Range

Set plg = Range("c12:e18")

Range("d15").Select

MsgBox plg(Selection).Column

merci pour votre aide à venir

a plus
 

Hervé

XLDnaute Barbatruc
Re : VBA- trouver la colonne d'un item dans une plage de cellule

salut robert et efgé ;)

promis robert, j'ai encore rien bu :)

mon code me renvoi bien 4 dans mon fichier, je viens de comprendre comment mais pas pourquoi

au dessus de ma plage, j'ai un tableau en A1:R7. si je supprime ce tableau, le code me renvoi bien 2, sinon il me renvoi 4

pas la moindre idée pourquoi

bizarre

merci pour l'aide

a plus
 

Efgé

XLDnaute Barbatruc
Re : VBA- trouver la colonne d'un item dans une plage de cellule

Re
Salut Robert
En fait je ne pense pas que ma proposition change grand chose au problème d'Hervé, chez moi aussi son code renvoi bien 2 :D

Cordialement
 

Hervé

XLDnaute Barbatruc
Re : VBA- trouver la colonne d'un item dans une plage de cellule

re

je deviens fou, pourriez vous tester le fichier joint et me dire si il vous renvoi 2 ou 4

ma santé mentale mononeuronale en dépend

merci
 

Pièces jointes

  • Test.xlsm
    27.3 KB · Affichages: 28
  • Test.xlsm
    27.3 KB · Affichages: 29
  • Test.xlsm
    27.3 KB · Affichages: 26

Efgé

XLDnaute Barbatruc
Re : VBA- trouver la colonne d'un item dans une plage de cellule

Re
C'est pas beau, mais l'idée est là. Il faut calculer par rapport à la prmière colonne de la plage :
VB:
ActiveCell.Column - plg.Columns(1).Column + 1

Je suis certain qu'il y a beaucoup plus mieux bien :D

Cordialement
 

laetitia90

XLDnaute Barbatruc
Re : VBA- trouver la colonne d'un item dans une plage de cellule

bonjour tous:):):)
perso j'ecrirais comme cela

Code:
 MsgBox ActiveCell.Column - plg.Column + 1

donc meme si plage demarre en column 1 marche???

Code:
Dim plg As Range
 Set plg = Range("a12:e18")
 Range("a15").Select
 MsgBox ActiveCell.Column - plg.Column + 1
 

Hervé

XLDnaute Barbatruc
Re : VBA- trouver la colonne d'un item dans une plage de cellule

re, bonjour laetita

ok pour vos solutions, merci :)

je profite de vos compétences

pourriez vous m'indiquer la syntaxe à utiliser pour que le code ci dessous me renvoi le numéro de colonne dans la plage, soit 1,2 ou 3:

Code:
Dim plg As Range
Dim c As Range

Set plg = Range("c12:e18")

For Each c In plg
c = plg(c).Column
Next c

je vous en remercie par avance

a plus
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : VBA- trouver la colonne d'un item dans une plage de cellule

Bonjour à tous


Je l'aurais peut-être écrit ainsi:

Code:
Sub a()
'MsgBox ActiveCell.Column
'MsgBox Range("zone").Columns.Count
'MsgBox Range("zone").Columns(1).Column
MsgBox ActiveCell.Column - (Range("zone").Columns(1).Column) + 1
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote