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

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.
 

tototiti2008

XLDnaute Barbatruc
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
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…