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

Looping38 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
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

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 731
     
    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
    1. Looping38 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   1
       
      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
    2. cs_Le Pivert Messages postés 8437 Statut Contributeur 731
       
      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