IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Recherche de la dernière cellule remplie sur une ligne


Sujet :

Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2013
    Messages : 31
    Points : 38
    Points
    38
    Par défaut Recherche de la dernière cellule remplie sur une ligne
    Bonjour,

    J'essaie tant bien que mal de trouver une formule (autre que VBA) me permettant d'obtenir la dernière cellule remplie sur une ligne EXCEL.
    J'ai bien trouvé plusieurs réponse, mais aucune ne semble fonctionner.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    =INDEX(A:A,MAX((A:A<>"")*(ROW(A:A))))
    =LOOKUP(2,1/(A:A<>""),A:A)
    =LOOKUP(2,1/(A1:A65535<>""),A1:A65535)
    =ADDRESS(MATCH(INDEX(C:C,MAX(IF(C:C<>"",ROW(C:C)-ROW(C1)+1)),1),C:C,0),COLUMN(C:C))
    Mes colonnes vont de A à G et mes lignes de 1 à 15955.
    J'aimerai pouvoir rajouter dans la colonne H la dernière cellule remplie trouver sur la ligne de la colonne A à G.

    Auriez-vous une solution?

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    En VBA c'est très simple mais en macro Excel pur, il n'y a plus grand monde qui pratique.

    Ce n'est certainement pas ce que tu veux entendre mais je te garantis que se mettre au VBA est un investissement très rentable.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre éprouvé Avatar de excfl
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    690
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 690
    Points : 1 250
    Points
    1 250
    Par défaut
    Bonsoir le forum,

    Quelques formules dont :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =LIGNE(INDEX(A1:A20000;SOMMEPROD(MAX((A1:A20000<>"")*(LIGNE(A1:A20000))))))
    A tirer vers la droite.

    Les cellules ne sont pas matricielles et peuvent contenir des données alphanumériques.

    excfl
    Fichiers attachés Fichiers attachés
    Si cette proposition vous convient, merci de cliquer sur :

  4. #4
    Membre habitué
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2013
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2013
    Messages : 96
    Points : 175
    Points
    175
    Par défaut Derniére cellule non vide sur ligne
    Bonsoir à tous,
    Un essai en pièce jointe à tester.
    Cdlt
    Renyeu
    Fichiers attachés Fichiers attachés

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2013
    Messages : 31
    Points : 38
    Points
    38
    Par défaut
    Bonsoir,

    @excfl :
    Cette formule permet de trouver la dernière cellule remplie dans une colonne et non pas dans une ligne.

    @Renyeu :
    Marche impec, sauf si l''une des case sur la ligne est vide, à ce moment là le résultat est faussé et malheureusement dans mon cas, une cellule vide est une possibilité.
    Mais au pire s'agira simplement de remplir les cases vides et ça passera.
    Reste à voir si je n'ai pas a trouver d'équivalent pour un excel anglais. Mais ça je testerais demain au boulot.

    Du coup j'ai testé le VBA, j'ai fait un test concluant, néanmoins je ne trouve pas cela hyper pratique comparé aux macro excel pur.
    D'ailleurs y a t'il moyen de créée une macro que l'on rentre directement dans la cellule pour faire appel à sa formule VBA?
    Je n'ai pas trouvé de réponse par rapport à cela mais je n'ai peut être pas chercher avec les bon mot clé aussi.

    Je mettrais demain ma formule VBA si cela peut être utile pour quelqu'un.

    P.S. Merci pour votre aide^^

  6. #6
    Membre habitué
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2013
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2013
    Messages : 96
    Points : 175
    Points
    175
    Par défaut Cellule non vide
    Re Bonsoir,
    En pj un nouveau test qui semble fonctionner...
    Cdlt
    Renyeu
    Fichiers attachés Fichiers attachés

  7. #7
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par rzXbrain Voir le message
    Du coup j'ai testé le VBA, j'ai fait un test concluant, néanmoins je ne trouve pas cela hyper pratique comparé aux macro excel pur.
    C'est une question d'habitude. Moi aussi j'ai fait cette migration il y a ... longtemps. Et je ne le regrette pas.

    D'ailleurs y a t'il moyen de créée une macro que l'on rentre directement dans la cellule pour faire appel à sa formule VBA?
    Ca dépend ce que tu veux faire.
    Il y a de nombreuses façon de faire appelle à une macro VBA.

    Tu peux la décrire comme une fonction et, dans ce cas, tu pourras l'utiliser comme une autre fonction Excel (ou presque).

    Tu peux l'associée à un bouton (ou même à un simple objet graphique qui servira de bouton) que tu peux placer dans ta feuille.

    Tu peux l'associer à une icone dans ta barre d'outils à accès rapide (voir même dans un ruban si tu sais manipuler le XML).

    Tu peux l'associer à un évènement, par exemple la validation d'une cellule, le recalcul de la feuille ou son ouverture.

    Bref, ça dépend de ce que tu souhaites en faire et de quelle façon tu souhaites qu'elle agisse.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2013
    Messages : 31
    Points : 38
    Points
    38
    Par défaut
    Avec un peu de retard, voila le code, si cela peut servir à quelqu'un.

    là en l’occurrence il concatène dernière et premier colonnes a chaque ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub LastColumnInOneRow()
    'Find the last used column in a Row: row 1 in this example
        Dim LastCol As Integer
        Dim NB_ROW As Integer
        Dim i As Integer
        i = ActiveCell.Row
        NB_ROW = Range("A" & Rows.Count).End(xlUp).Row
        While i <= NB_ROW
            With ActiveSheet
                LastCol = .Cells(i, .Columns.Count).End(xlToLeft).Column
            End With
            ActiveSheet.Cells(i, ActiveCell.Column) = Cells(i, LastCol) & "||" & Cells(i, 1)
            i = i + 1
        Wend
    End Sub
    Bon maintenant faut que je trouve comment le passer en tant que fonction à excel.

    @renyeu :
    Merci beaucoup pour ton aide, bien que cela marche dans le fichier envoyer, je n'arrive pas à le faire marcher au boulot.
    Je ne maîtrise pas encore toutes les subtilités de excel je dois l'avouer.

  9. #9
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Petite amélioration de ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub LastColumnInOneRow()
        'Find the last used column in a Row: row 1 in this example
        Dim LastCol As Integer
        Dim i As Integer
     
        For i = Row to Cells(Rows.Count,1).End(xlUp).Row
            LastCol = Cells(i, Columns.Count).End(xlToLeft).Column
            Cells(i,Column) = Cells(i, LastCol) & "||" & Cells(i, 1)
        Next i
     
    End Sub
    Petit détail : ton With est inutile car le ActiveSheet est implicite, donc on peut s'en passer.
    Idem pour ActiveCell, comme le montre son absence (dans ton code) devant le Row du calcul de NB_ROW

    Citation Envoyé par rzXbrain Voir le message
    Bon maintenant faut que je trouve comment le passer en tant que fonction à excel.
    Ca dépend où est stock ta macro : dans le fichier que tu traites ? Dans un fichier qui se charge automatiquement à l'ouverture d'Excel ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2013
    Messages : 31
    Points : 38
    Points
    38
    Par défaut
    Merci pour l'amélioration ^^

    Actuellement la macro est chargé pour chaque nouveau fichier.

  11. #11
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Tu veux dire que tu la copies systématiquement d'un ancien fichier vers le nouveau fichier que tu veux traiter ?

    Dans le gestionnaire de projet de ton éditeur VBA, tu dois avoir un fichier xlam (en standard, je crois que c'est PERSO.XLAM).
    Tu cliques-droit dessus et tu sélectionnes Insertion > Module.
    Dans le nouveau module créé, tu copie ta macro et tu sauvegarde.
    Comme ce fichier XLAM s'ouvre automatiquement avec Excel, ta macro sera toujours disponible, quel que soit le classeur que tu ouvres.

    Pour la rendre facilement accessible, tu fais un clic droit sur la barre d'outils à accès rapide et tu sélectionnes Personnaliser.
    Dans la fenêtre qui s'ouvre, dans l'entête de la colonne de gauche, tu sélectionnes la catégorie "Macros".
    Normalement, ta macro devrait apparaitre dans la liste du dessous.
    Tu la sélectionnes et tu appuies sur le bouton Ajouter pour la faire passer dans ta barre d'outils.
    Quand elle est dans la liste de droite, tu la sélectionnes et tu appuies sur Modifier pour lui mettre une belle icone qui la représentera et éventuellement un nom qui apparaitra en info-bulle.

    Terminé. Ta macro sera disponible à tout moment par un simple clic sur cette icone de la barre d'outils.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  12. #12
    Membre éclairé
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2006
    Messages
    542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 542
    Points : 712
    Points
    712
    Par défaut
    Bonsoir à Tous
    Bonsoir rzXbrain

    Si tu cherches l'adresse de la dernière cellule, essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =CELLULE("adresse";INDEX(7:7;EQUIV(RECHERCHEH(INDEX(7:7;NBVAL(7:7));7:7;1);7:7;0) ))
    Le 7 représente la ligne dans laquelle tu cherches. Si une cellule est vide, tu saisies un "espace" dedans.

    Si la dernière cellule a une valeur (même avec des cellules vides), essaies ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ADRESSE(7;EQUIV(9^9;7:7))
    Eric

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Sélectionner la première cellule vide sur une ligne.
    Par Rémy A. dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/07/2013, 14h22
  2. [XL-2007] Dernière cellule remplie d'une ligne
    Par m@tix dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/08/2011, 17h31
  3. recherche de la 1ère cellule vide dans une ligne
    Par ericberg dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/10/2010, 20h53
  4. Trouver la première cellule remplie d'une ligne
    Par nicacc dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 12/08/2008, 15h16
  5. [VBA-E] cellules vide sur une ligne
    Par bricereyem dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 12/06/2006, 21h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo