XL 2013 Recherche de la lettre de la colonne d'une cellule

Ananas94

XLDnaute Junior
Bonjour,

J'ai 2 tableaux : un avec des données et un autre avec des moyennes de ces données. Tout est trié par année. J'ai créé une macro qui modifie les tableaux pour un changement d'année ; donc qui ajoute une colonne à chaque tableau. J'aimerais aussi que les formules soient conservées, et correspondantes à la bonne colonne, et c'est là que je bloque. Il me faudrait la lettre de la colonne de la nouvelle année. J'ai codé quelque chose mais j'obtiens un message d'erreur :"Variable object ou variable de bloc with non définie". Je ne comprends pas pourquoi j'ai ce message, car j'ai bien défini toutes mes variables...

VB:
    Dim Col_Cible%, Lettre_Col_Cible As String, Ligne As Range
    
    Col_Cible = NbCol_T_Moy + 3
    Ligne = LO_Moy.Range(2, NbCol_T_Moy + 1)
    
    Ligne.Find(What:=Col_Cible, LookAt:=xlPart).Activate
    Lettre_Col_Cible = Split(Selection.Address, "$")(1)

Quelqu'un aurait une idée ?
Vous trouverez en pièce jointe un classeur exemple.
Merci à vous :)
 

Pièces jointes

  • RechercheLC.xlsm
    20.5 KB · Affichages: 12
Solution
Bonsoir à tous
essaye
VB:
Sub chercher_lettre_col()
      Dim Nb As Byte, Lettre_Col_Cible$
      Nb = Range("Tab_Moy").ListObject.ListColumns.Count + Range("Tab_Moy").Column - 1
    Lettre_Col_Cible = Split(Columns(Nb).Address(ColumnAbsolute:=False), ":")(1)
    MsgBox ("Lettre dernière colonne tab moyennes : " & Lettre_Col_Cible)
End Sub

jpb388

XLDnaute Accro
Bonsoir à tous
essaye
VB:
Sub chercher_lettre_col()
      Dim Nb As Byte, Lettre_Col_Cible$
      Nb = Range("Tab_Moy").ListObject.ListColumns.Count + Range("Tab_Moy").Column - 1
    Lettre_Col_Cible = Split(Columns(Nb).Address(ColumnAbsolute:=False), ":")(1)
    MsgBox ("Lettre dernière colonne tab moyennes : " & Lettre_Col_Cible)
End Sub
 

Ananas94

XLDnaute Junior
Bonsoir à tous
essaye
VB:
Sub chercher_lettre_col()
      Dim Nb As Byte, Lettre_Col_Cible$
      Nb = Range("Tab_Moy").ListObject.ListColumns.Count + Range("Tab_Moy").Column - 1
    Lettre_Col_Cible = Split(Columns(Nb).Address(ColumnAbsolute:=False), ":")(1)
    MsgBox ("Lettre dernière colonne tab moyennes : " & Lettre_Col_Cible)
End Sub
Merci beaucoup ça fonctionne super bien ! Bravo !
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 015
Membres
101 870
dernier inscrit
Dethomas