Récupérer le numéro de la dernière ligne non vide

Les deux traitements concernant la même colonne ou des colonnes différentes ?

Car je vois que ton code avec les changements de font se fait sur la colonne 8, le code que l'on t'as proposé est pour la colonne 8 aussi ou bien pour la colonne A ?

Merci pour ta réponse.

Disons 2 colonnes différentes, comme ça je pourrai l'adapter à différents cas de figure sur plusieurs feuilles.

Il suffit de mettre les deux traitements à la suite dans la même SUB. Tu as peut être collé les deux codes l'un en dessous de l'autre, et du coup avec 2 sub avec le nom Private Sub Worksheet_Change(ByVal Target As Range) c'est normal que cela bug.

Essais comme ceci :

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False
[C2] = Range("A" & Rows.Count).End(xlUp).Row
Application.EnableEvents = True

    If Target.Column = 8 Then
        With Target
            Select Case Len(.Value) - Len(Replace(.Value, Chr(10), ""))
            Case 1
                .Font.Size = 7
            Case 2
                .Font.Size = 5
            Case 1
                .Font.Size = 7
            End Select
        End With
    End If
End Sub

Cordialement,

Super, merci beaucoup !!!!!!!

bonjour

mieux vaux tard que jamais ; en passant au cas ou

107gloub2.xls (16.50 Ko)

formule tout terrain : texte ,nombre

cordialement

Bonjour à tous,

Tulipe,

Attention, la formule "Zone" ne prend en compte les cellules vides (NBVAL)

édit:

le résultat est bon, mais si on utilise "zone" par ailleurs, çà risque !

Claude

re Dubois

je viens de reverifier car le doute m'habite ; je n'ai pas vu de bug ; et pourtant ,j'en suis habitué.........

c'est bien de me verifier ;

cordialement

Merci à vous d'avoir creusé le filon.

Je me permet de ré-up ce sujet pour vous prévenir, attention y'a un gros soucis avec :

Dim DernLigne As Long

DernLigne = Range("A" & Rows.Count).End(xlUp).Row

Le soucis étant que si il y'a un filtre ou des lignes masquées elle ne seront pas prises en compte, or imaginer un code de consolidation ou vous ajouter les lignes manquantes, bah si un filtre est actif ça vous re-rajoutera des lignes que vous avez déjà ajouté .

Du coups mauvaise solution pour moi. Quelqu'un n'aurait pas le même code mais qui tiens comptes des filtres et des lignes masquées sans pour autant enlever le filtre et les lignes masquées ? merci d'avance .

Pour la fonction, en voici une qui marche ("plage" étant une plage de cellules quelconque, ça peut être A1:H100 ou A:H etc...):

Function NbLignes(plage)

NbLignes = plage.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row

End Function

Ca renvoi le numéro de la dernière ligne non vide de la plage en question.

Je ne suis pas pro du tout, j'ai trouvé ça dans une macro trouvée sur le web et je l'ai adapté à une fonction.

En tout cas, ça fonctionne trés bien.

Salut à tous

L'autre astuce, s'il n'existe pas LA fonction, c'est de créer la sienne

Il suffit pour cela de créer un module que tu pourras nommer comme bon te semble (ex : mes_fonctions)

Tu écris ensuite la fonction dont tu as besoin, dans ton cas:

Function DerLigne()
    DerLigne = Range("A" & Rows.Count).End(xlUp).Row
End Function

Et enfin, tu peux tester dans ta feuille Excel ! Tu choisis une cellule vide à coté de ton tableau et dans la barre de formules, tu saisies "=DerLigne()"

Et voilà ... l'autoroute du kiff, quoi !!!

Voici une première ébauche à approfondir

14stock-2.xlsm (21.58 Ko)
Rechercher des sujets similaires à "recuperer numero derniere ligne vide"