[VBA] à quelle colonne de la zone appartient l'activecell ?

F22Raptor

XLDnaute Impliqué
Hello,
Un problème tout bête, mais que je n'arrive pas à résoudre simplement.
Je sens confusément qu'il y a un truc con, mais je patine ...

J'ai des données, disons sur 4 colonnes et plusieurs lignes.
Un CurrentRegion me permet de désigner le tout : par exemple B2:E10

Je sélectionne C2 (deuxième colonne et première ligne de ma région).
Je veux, par macro, savoir à quelle N° de colonne (l'index, pas la lettre) de ma CurrentRegion correspond B2.
Ici, ce serait 1
Si je sélectionne E2, soit la dernière colonne de ma zone, ça me renverrait 4.

Une idée ? :)
 
Dernière édition:

F22Raptor

XLDnaute Impliqué
Re : [VBA] à quelle colonne de la zone appartient l'activecell ?

Hello PhLaurent,
J'ai pris B2:E10 comme exemple, mais le tableau peut être n'importe où : W5:Z324
Donc le "-1" de ta formule n'est plus adapté.

C'est en fait une espèce de (ActiveCell.CurrentRegion).ActiveCell.Column si je puis dire !
Le N° de colonne de l'ActiveCell dans le référentiel ActiveCell.CurrentRegion et non plus la feuille Excel
 

Pierrot93

XLDnaute Barbatruc
Re : [VBA] à quelle colonne de la zone appartient l'activecell ?

Bonjour,
Re Philippe:)

essaye peut être ceci :
Code:
MsgBox ActiveCell.Column - ActiveCell.CurrentRegion.Column + 1

bon après midi
@+

Edition : bonjour Toto:)
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : [VBA] à quelle colonne de la zone appartient l'activecell ?

Bonjour F22, Bonjour Philippe, :)

peut-être

Code:
Set Plage = Range("B2").Currentregion
Plage.range("B1").select
ColonneGauche = Activecell.column - 1 - Plage.range("A1").column + 1

Edit : Bonjour Pierrot
 

Theze

XLDnaute Occasionnel
Re : [VBA] à quelle colonne de la zone appartient l'activecell ?

Bonjour,

C'est ça que tu chercher ?
Code:
Sub Test()

    Dim Plage As Range
    
    Set Plage = Range("B2").CurrentRegion
    
    MsgBox ActiveCell.Row - Plage.Row + 1 'ligne
    MsgBox ActiveCell.Column - Plage.Column + 1 'colonne
    
End Sub

Hervé.
 

F22Raptor

XLDnaute Impliqué
Re : [VBA] à quelle colonne de la zone appartient l'activecell ?

en cadeau bonux, le code d'une macro de suppression des doublons utilisant le bout de code de Pierrot


VB:
Sub SuppressionDoublons()

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    
    
    Dim Plge As Range
    Dim i As Integer, j As Integer

    
    Set Plge = ActiveCell.CurrentRegion
    i = 1
    j = ActiveCell.Column - Plge.Column + 1
    
    
    Plge.Sort key1:=ActiveCell, order1:=xlAscending


    Do While Len(Plge.Cells(i, j).Value) > 0
        
        If Plge.Cells(i, j).Value = Plge.Cells(i + 1, j).Value Then
            Plge.Rows(i + 1).Delete Shift:=xlUp
        Else
            i = i + 1
        End If
        
    Loop
       
    
    Application.Calculation = xlCalculationAutomatic
    

End Sub
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : [VBA] à quelle colonne de la zone appartient l'activecell ?

Bonjour Theze,
Re,

Joli code mais il existe un outil de suppression de doublons dans l'onglet Données (Supprimer les doublons), pour information
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 248
Messages
2 086 595
Membres
103 250
dernier inscrit
keks974