Trouver le numéro de la dernière colonne non masquée

Fermé
Looping38 Messages postés 92 Date d'inscription samedi 22 octobre 2016 Statut Membre Dernière intervention 20 juillet 2020 - 17 déc. 2018 à 10:59
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 17 déc. 2018 à 11:49
Bonjour à tous.
je ne trouve pas ma réponse, malgré mes recherches.

Après avoir masqué des colonnes par un filtre, je souhaite connaitre le N° de la dernière colonne non-masquée.

Je souhaite mélanger les deux bouts de programme suivant :

 derncol = ActiveSheet.Cells(14, Cells.Columns.Count).End(xlToLeft).Column

avec la condition
xlCellTypeVisible
sur la ligne 14 (qui, dans mes colonnes, n'est jamais vide)

Une idée ?
Merci de votre aide.

Looping

1 réponse

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
17 déc. 2018 à 11:14
Bonjour,

faire une boucle sur les colonnes

https://www.developpez.net/forums/d605223/logiciels/microsoft-office/excel/contribuez/boucles-parcourir-colonne-ligne-plage-donnees-2-methodes/

Sub For_X_to_Next_Colonne()
Dim FL1 As Worksheet, Cell As Range, NoCol As Integer
Dim NoLig As Long, Var As Variant
    Set FL1 = Worksheets("Feuil1")
    '(Voir explication sur l'utilisation de Split en bas de cette discussion)
    For NoCol = 1 To Columns(Split(FL1.UsedRange.Address, "$")(3)).Column
  If FL1.Columns(NoCol).Hidden = True Then
  MsgBox NoCol & " masquée"
  Else
  MsgBox NoCol & " visible"
  End If
    Next
    Set FL1 = Nothing
End Sub


a adapter à tes besoins
0
Looping38 Messages postés 92 Date d'inscription samedi 22 octobre 2016 Statut Membre Dernière intervention 20 juillet 2020 1
17 déc. 2018 à 11:19
Bonjour Le_Pivert et merci pour ce retour.
Ce code, si je comprends bien, me permet de dénombrer le nombre de colonnes visibles et non-visibles, et pas de connaitre la position de la dernière colonne visible.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
17 déc. 2018 à 11:49
Cet exemple était fait pour voir la marche à suivre.

Il faut l'adapter comme ceci:

Sub For_X_to_Next_Colonne()
Dim FL1 As Worksheet, Cell As Range, NoCol As Integer
Dim NoLig As Long, Var As Variant
Dim Max As Long
 Max = 0
    Set FL1 = Worksheets("Feuil1")
    '(Voir explication sur l'utilisation de Split en bas de cette discussion)
    For NoCol = 1 To Columns(Split(FL1.UsedRange.Address, "$")(3)).Column
  If FL1.Columns(NoCol).Hidden = True Then Max = NoCol
 Next
     MsgBox "Dernière colonne cachée : " & Max
    Set FL1 = Nothing
End Sub




voilà

@+
0