VBA - trouver derniere colonne masquée

clementcazi

XLDnaute Nouveau
Bonjour à tous,

je galère depuis pas mal de temps, à chercher sur différent forum, mais ne trouve rien.

Je cherche à connaitre la valeur de la derniere colonne masquée dans un tableau.

Exemple : si les colonnes de A à K sont masquées, afficher la valeur de la colonne K (11).

Merci d'avance.
 

clementcazi

XLDnaute Nouveau
Re : VBA - trouver derniere colonne masquée

Bonjour,

Peut-être

Code:
Sub test()
Dim i As Long
For i = ActiveSheet.Columns.Count To 1 Step -1
    If Columns(i).Hidden Then
        MsgBox Cells(11, i).Value
        Exit For
    End If
Next i
End Sub

On y est presque, je viens de tester le code.
Le msgbox n'affiche par contre que la valeur de la cellule, mais pas la où est situé la cellule. C'est a dire, en vba la colonne A équivaut à 1...K équivaut à 11. je voudrais que msgbox m'affiche cette valeur.

Merci beaucoup pour ce que tu as déjà fait.
 

Grand Chaman Excel

XLDnaute Impliqué
Re : VBA - trouver derniere colonne masquée

Bonjour clementcazi, tototiti2008,

Une autre variante. Fonctionne sur une plage de cellules sélectionnées au préalable.

VB:
Sub NoColonneCachee()
' Affiche le numéro de la dernière colonne cachée poue une plage
' de cellules sélectionnées

    Dim rg As Range
    Dim i As Long, j As Long, n As Long
    Dim Max As Long
    
    Set rg = Selection
    i = rg.Cells(1, 1).Column
    j = rg.Cells(1, rg.Columns.Count).Column

    Max = 0
    For n = i To j
        If Columns(n).Hidden Then Max = n
    Next n
    MsgBox "Dernière colonne cachée : " & Max

End Sub

A+
 

clementcazi

XLDnaute Nouveau
Re : VBA - trouver derniere colonne masquée

Bonjour GrandChaman,
Re,




Code:
MsgBox "Colonne " & i & " : " & Cells(11, i).Value


Je me suis peut etre mal exprimé. Je chercher la position de la derniere colonne masqué (en vba ça marche en L1C1). La fonction que tu me prospose tototiti2008, ça me donne la valeur qu'il y aura dans la derniere colonne masquée de la ligne 11, et non pas la position de la colonne.

Grandcharman, je crois que ton code marche mais il me parait plus compliqué que celui de tototiti2008. Il ne marche pas par contre s'il n'y a pas de texte dans les colonnes masquées.

Cordialement,
 

Victor21

XLDnaute Barbatruc
Re : VBA - trouver derniere colonne masquée

Bonjour.

peut-être toit simplement :
VB:
 Sub masq()

 Dim i As Long
 For i = ActiveSheet.Columns.Count To 1 Step -1
     If Columns(i).Hidden Then
         MsgBox (i)
         Exit For
     End If
 Next i
 End Sub
... Merci, tototiti :)
 

Victor21

XLDnaute Barbatruc
Re : VBA - trouver derniere colonne masquée

Re,

Et pour connaitre la référence littérale de la dernière colonne masquée :
VB:
 Sub masq1()

 Dim i As Long
 For i = ActiveSheet.Columns.Count To 1 Step -1
     If Columns(i).Hidden Then
         Columns(i).Select
         MsgBox ("colonne " & Split(ActiveCell.Address, "$")(1))
         Exit For
     End If
 Next i
 End Sub
...Merci Ce lien n'existe plus :)
 
Dernière édition:

Si...

XLDnaute Barbatruc
Re : VBA - trouver derniere colonne masquée

salut tous

pour éviter le Exit For, un autre type de boucle

Code:
Sub masq()
  Dim n As Long
  n = Me.Columns.Count
  Do Until Columns(n).Hidden: n = n - 1: Loop
  MsgBox Split(Columns(n).Address, "$")(2), vbInformation, "Dernière colonne cachée"
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 490
Messages
2 088 875
Membres
103 980
dernier inscrit
grandmasterflash38