Autres (RESOLU)DERNIERE CELLULE NON VIDE

chaelie2015

XLDnaute Accro
Bonjour Forum
j'ai essayé d'adapter ce code pour
1. chercher la feuille selon le nom de la cellule H4 et H5 dans la feuille "Accueil" par exemple CHARLIE BELGE (c'est fait)
2. une fois la feuille CHARLIE BELGE trouvée ,chercher la dernière cellule non vide de la colonne I et l'afficher dans la feuille "Accueil" cellule H7 automatiquement
VB:
.....
Dim nf$
nf = Trim([H4] & " " & [H5])
If nf = "" Then MsgBox "Renseignez le nom de l'agent !", 48: [H4].Select: Exit Sub
On Error Resume Next
With Sheets(nf)
    If Err Then MsgBox "La feuille '" & nf & "' n'existe pas !", 48
    With .[B:B].Find(<>, .[I8], xlValues) '1ère cellule NON vide
       .......
End Sub
SALUTATIONS
 

Pièces jointes

  • CHARLIE Cherché onglet et completer le tableau.xlsx
    12.6 KB · Affichages: 10

job75

XLDnaute Barbatruc
Bonjour chaelie2015, fanfan38,

Pas besoin de VBA avec cette formule en H7 :
Code:
=SIERREUR(RECHERCHE("zzz";INDIRECT("'"&H4&" "&H5&"'!I:I"));"")
La recherche concerne des textes.

A+
 

Pièces jointes

  • CHARLIE Cherché onglet et completer le tableau(1).xlsx
    11.3 KB · Affichages: 9

job75

XLDnaute Barbatruc
Si l'on tient absolument au VBA et aux messages c'est quand même laborieux :
VB:
Private Sub Worksheet_Activate()
Worksheet_Change [H7] 'lance la macro, pour le cas où la feuille source a été modifiée
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim col$, nf$
col = "I" 'colonne de la recherche, à adapter
nf = Application.Trim([H4] & " " & [H5])
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
On Error Resume Next
[H7] = "" 'RAZ
If nf = "" Then
    [H4].Select
    MsgBox "Renseignez au moins H4 !", 48
Else
    With Sheets(nf)
        If Err Then MsgBox "La feuille '" & nf & "' n'existe pas !", 48
        If .FilterMode Then .ShowAllData 'si la feuille est filtrée
        [H7] = .Cells(.Rows.Count, col).End(xlUp)
    End With
End If
Application.EnableEvents = True 'réactive les évènements
End Sub
 

Pièces jointes

  • CHARLIE VBA(1).xlsm
    19.7 KB · Affichages: 7

chaelie2015

XLDnaute Accro
Bonsoir FORUM, François , JOB
je reviens a vous poser un autre souci,
après avoir développer le ficher j'ai modifié la colonne I des feuilles (j'ai mets des formules de calcule), donc j'ai constaté avec ces code rien ne s'affiche dans la celluleH7 de la feuille "Accueil" ???
merci par avance
 
Dernière édition:

job75

XLDnaute Barbatruc
Cette formule crée des nombres en colonne I donc la formule du post #4 ne s'applique pas.

Elle ne recherche que des textes, pour des nombres utiliser :
Code:
=SIERREUR(RECHERCHE(9^99;INDIRECT("'"&H4&" "&H5&"'!I:I"));"")
Le code VBA du post #6 ne doit pas poser de problème.
 

patricktoulon

XLDnaute Barbatruc
il me semble que mon model fonctionne
VB:
Sub test()
    MsgBox LatCellUsedInColumn([A1:A100])
    MsgBox LatCellUsedInColumn([A1:A100], True)
End Sub

Function LatCellUsedInColumn(ByVal Colonne As Range, Optional IsValued As Boolean = False) As Long
    Const ChaineMax As String = "zzzzzzzzzzzzzzzzzzzz"
    Const NombreMax As Double = (2 ^ 53 - 1) * 2 ^ 971
    If Not Colonne Is Nothing Then
        With Application
            If Not IsValued Then
                LatCellUsedInColumn = .Max(.IfError(.Match(ChaineMax, Colonne.Columns(1), 1), 0), .IfError(.Match(NombreMax, Colonne.Columns(1), 1), 0))
            Else
                c = Colonne.Address(0, 0)
                LatCellUsedInColumn = Evaluate("MAX(ROW(" & c & ")*(" & c & "<>""""))")
            End If
        End With
    End If
End Function
si il y a un nombre ou un texte ou une formule (meme si la formule ne ramene rien) la cellule est donc pris en compte
donc on a bien la derniere cellule utilisée
 

Discussions similaires

Réponses
8
Affichages
447

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof