XL 2010 1ere colonne vide

Wyrgle

XLDnaute Junior
Bonsoir à tous,

Je cherche la dernière ligne non-vide et la dernière colonne non-vide d'une feuille (pour in fine trouver la zone d'impression).
Autrement dit : trouver la dernière cellule remplie 'en bas à droite' de ma feuille.
Trouver la dernière ligne non-vide n'est pas un problème, mais une recherche sur le Net me donne tjs un code en fonction d'une ligne (ligne 11 ds l'exemple) pour trouver la dernière colonne non-vide :

Code:
Sub Empty_Col_Detection()

Dim First_Empty_Col As Integer

First_Empty_Col = Cells(11, Cells.Columns.Count).End(xlToLeft).Column

MsgBox "La première colonne vide est la colonne : " & First_Empty_Col + 1 & "."
End Sub

Comment trouver cette colonne sans se référer à une ligne ?
Peut-on trouver plus rapidement cette fameuse cellule non-vide 'en bas à droite' ?

Merci pour votre aide !
Wyrgle
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Bonsoir à tous,

Je cherche la dernière ligne non-vide et la dernière colonne non-vide d'une feuille
peut etre :
upload_2016-8-31_23-53-1.png
 

vgendron

XLDnaute Barbatruc
Hello
avec la fonction Usedrange
dont tu récupères le .rows.count et .columns.count

cette fonction prend en compte les cellules vides AVEC une mise en forme

ex si tu as dessiné un tableau de A2 à D56
mais que seules les 10 premières lignes contiennent des données.. le usedrange va selectionner de A2:D56
surement très pratique dans ton cas pour une zone d'impression..??

sinon. il y a aussi le Currentregion.. qui détermine automatiquement une zone délimitée vers des cellules vides
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
Comment trouver cette colonne sans se référer à une ligne ?
Peut-on trouver plus rapidement cette fameuse cellule non-vide 'en bas à droite' ?

Wyrgle
Bonjour,
Essaye ceci , il y a toutes les informations.
VB:
Sub LesDernières()
    Dim DerCol As Long, DerLig As Long, LaCell As String
    With Feuil1
        On Error GoTo fin
        LaCell = .Cells(Cells.Find("*", , , , xlByRows, xlPrevious).Row, _
                 .Cells.Find("*", , , , xlByColumns, xlPrevious).Column).Address
        DerLig = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
        DerCol = .Cells.Find("*", , , , xlByColumns, xlPrevious).Column
        MsgBox "La première ligne vide est la ligne : " & DerLig + 1 & vbLf & _
               "La première colonne vide est la colonne : " & DerCol + 1 & vbLf & _
               "La dernière cellule ocupée est la : " & LaCell, , "information"
    End With
    Exit Sub
fin:
    MsgBox "Feuille vide" & vbLf & "La première ligne vide est la ligne : 1" & vbLf & _
           "La première colonne vide est la colonne : 1", , "information"
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 145
Membres
103 130
dernier inscrit
FRCRUNGR