Détecter la dernière colonne

Bonjour,

Avec ce code, je détecte la dernière colonne d'une feuille, sous réserve que la première cellule ne soit pas vide.

    With Sheets("Liste")
        dercol = .Cells(1, Cells.Columns.Count).End(xlToLeft).Column
    End With

Comment faut il l'écrire de manière à tester l'intégralité de la colonne ?

Ou au moins toute la colonne jusqu'à la dernière ligne utilisée ?

Je pense qu'il y a du "Range" là dedans... Mais on n'est pas copains tous les deux

Merci de votre aide !

    With Sheets("Liste")
        dercol = .Cells(1, .Columns.Count).End(xlToLeft).Column
        derlig = .range("A" & rows.Count).End(xlup).row
    End With

Cellule inférieure droite

derlig = .Cells.SpecialCells(xlCellTypeLastCell).Row
dercol = .Cells.SpecialCells(xlCellTypeLastCell).Column

Bonjour

Bonjour EngueEngue

A tester

 Sub Test()
Dim DerCol As Integer
  With Sheets("Liste")
    DerCol = Cells.Find(what:="*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
  End With
  MsgBox "Colonne " & DerCol
End Sub

Merci.

Vos deux solutions fonctionnent sur une nouvelle feuille, mais dans mon classeur j'ai une différence.

Avantage à Banzai64.. Mais je ne sais pas pourquoi...

Une idée ?

22dercol.xlsm (55.14 Ko)

Parce qu'il fut une fois cette colonne fut remplie..

En effet Si tu écris en ZZ1 quelque chose puis tu l'effaces, excel prendra cette colonne comme dernière colonne

EngueEngue a écrit :

Parce qu'il fut une fois cette colonne fut remplie..

En effet Si tu écris en ZZ1 quelque chose puis tu l'effaces, excel prendra cette colonne comme dernière colonne

Pas cool ça...

C'est de l'abus de confiance de la part d'Excel

Merci quand même !

Il est parfois intéressant d'avoir les coordonnées d'un usedrange pour diverses raisons.

  • Accès rapide
  • Savoir quelles cellules ont été modifiées

Sachant qu'en règle générale on sera plus à même de rajouter des colonnes dans un fichier plutôt que d'en supprimer!

Rechercher des sujets similaires à "detecter derniere colonne"