Sélectionner une ligne avec dernière cellule non vide inconnue
Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

Sélectionner une ligne avec dernière cellule non vide inconnue



  1. #1
    -maroon-

    Question Sélectionner une ligne avec dernière cellule non vide inconnue


    ------

    Bonjour!

    Concernant le code VBA:

    Ca fait un long moment que je cherche une solution pour sélectionner une ligne par exemple qui par de C1 et dont la dernière cellule utilisée n'est pas connue.

    J'ai essayé différentes chose comme celle-ci :

    Code:
    Range("C1" & Rows.Count).End(xlToRight).Select
    Mais ça ne marche pas! merci encore pour votre aide!

    -----
    Dernière modification par -maroon- ; 10/05/2016 à 18h00. Motif: En VBA désolé

  2. #2
    fregoli

    Re : Sélectionner une ligne avec dernière cellule non vide inconnue

    Pas clair:

    Tu veux sélectionner la ligne qui correspond à la première cellule vide d'une colonne donnée?

    exemple: j'ai 6528 valeurs en C qui vont donc de C1 à C6528, je voudrais donc sélectionner toute la ligne 6529, mais je ne sais pas que justement c'est la 6529eme ?
    Une allumette peut aussi faire déborder le vase...

  3. #3
    -maroon-

    Re : Sélectionner une ligne avec dernière cellule non vide inconnue

    Bonjour fregoli!

    Désolée j'ai mal noté les coordonnées! En fait je veux sélectionner une ligne en connaissant la cellule de départ mais pas celle d'arrivée. Par exemple sélectionner la ligne entre (1,C) et (1,J) car la dernière cellule utilisée après (1,C) c'est (1,J). Sauf que dans mon cas je ne connais pas cette dernière cellule! J'arrive pas à trouver comment faire!

  4. #4
    fregoli

    Re : Sélectionner une ligne avec dernière cellule non vide inconnue

    (1,C) et (1,J) cela veut dire quoi précisément?
    Tu recherche sur une ligne ou un colonne?
    Tu veux dire la cellule C1 et la cellule J1 ?
    Ou bien tu parles d'adressage relatif ?
    Une allumette peut aussi faire déborder le vase...

  5. A voir en vidéo sur Futura
  6. #5
    -maroon-

    Re : Sélectionner une ligne avec dernière cellule non vide inconnue

    Je pense que c'est de l'adressage relatif.
    Je ne connais pas la dernière cellule de la ligne que je veux sélectionner, seulement la première. Donc ici oui ça serait de C1 à J1 mais dans mon cas je ne connais pas la dernière cellule (J1 ici). Je pense qu'il faut utiliser .end(xlToRight) mais je n'y arrive pas...

  7. #6
    fregoli

    Re : Sélectionner une ligne avec dernière cellule non vide inconnue

    Bon,
    Je n'ai pas tout compris.
    Je ne sais pas si cela va te satisfaire, mais voilà un bout de code qui sélectionne les cellules d'une ligne, en commençant par la colonne "A" et en s’arrêtant à la dernière cellule non vide de la ligne de la cellule actuellement sélectionnée.
    Code à copier-coller dans un module comme d'hab...

    Code:
    Option Explicit
    
    Public Sub selectRowByEmpty()     ' c'est la macro à exécuter une fois que tu as sélectionné une cellule quelque part
    Dim debut As String
    Dim cellule As String
        debut = ActiveCell.Address
        cellule = searchEmptyByColumn(ActiveCell)
        Range(debut & ":" & cellule).Select
    End Sub
    
    Private Function searchEmptyByColumn(C As Range) As String
    Dim I As Long
    Dim ch As String
    Dim R As Long
        If C.Rows.Count <> 1 And C.Columns.Count <> 1 Then
            MsgBox "ne sélectionner qu'une cellule SVP, merci"
            Exit Function
        End If
        ch = Right(C.Address, Len(C.Address) - 1)
        R = CLng(Right(ch, Len(ch) - InStr(ch, "$")))
        I = 1
        Do While Range(convertIntoAddress(R, I)).Value <> ""
            I = I + 1
        Loop
        searchEmptyByColumn = convertIntoAddress(R, I - 1)
    End Function
    
    '
    ' convertion des indice Ligne, Colonne en chaine d'adressage d'une cellule
    ' exemple:   2,5 -> "E2"
    '
    Private Function convertIntoAddress(ByVal L As Integer, ByVal C As Integer, _
                                        Optional colOnly As Boolean = False) As String
    Dim Ligne As String
    Dim Colonne As String
    Dim N1 As Integer
    Dim N2 As Integer
    
        Ligne = Trim(Str(L))
        Colonne = ""
        While C > 0
            N1 = Int((C - 1) / 26)
            N2 = C - (N1 * 26)
            C = N1
            Colonne = Chr(Asc("A") + N2 - 1) & Colonne
        Wend
        If colOnly Then
            convertIntoAddress = Colonne
        Else
            convertIntoAddress = Colonne & Ligne
        End If
    End Function
    Exemple :

    en ligne 5 tu as des données de la colonne "A" à la colonne "AP". La première cellule n'ayant rien est donc la "AQ5"

    tu sélectionnes, en cliquant une cellule de la ligne en question (par exemple J5)
    Tu fais "macro", tu cherches dans la liste déroulante "selectRowByEmpty", puis tu cliques sur "exécuter".
    SI tout est bien comme indiqué, tu auras de sélectionnées les cellules "A5" jusqu'à "AP5".

    maintenant, miam miam...

    bon courage
    Une allumette peut aussi faire déborder le vase...

  8. #7
    -maroon-

    Re : Sélectionner une ligne avec dernière cellule non vide inconnue

    Merci! Je pensais pas que c'était aussi long! Je regarde le premier module: lorsque je le lance tel quel ça fonctionne!
    Par contre quand j'utilise searchemptybycolumn() dans mon code ça bug avec "sub ou function non défini". Je trouve pas la fonction searchemptybycolumn() sur le net c'est normale?
    Est-ce que cette fonction peut aussi être utilisée avec les coordonnées d'une cellule plutôt que (activecell)?

    Je regarde le reste...

    Merci encore et bon ap!

  9. #8
    cherbe

    Re : Sélectionner une ligne avec dernière cellule non vide inconnue

    Citation Envoyé par -maroon- Voir le message
    Je pense qu'il faut utiliser .end(xlToRight) mais je n'y arrive pas...
    Tu as essayé :
    Code:
    ActiveCell.End(xlToRight).Select
    ?

  10. #9
    -maroon-

    Re : Sélectionner une ligne avec dernière cellule non vide inconnue

    Je suis désolé mais j'ai l'impression qu'on s'est mal compris!
    Je ne part pas d'une cellule sélectionnée à la souris, mais juste d'une cellule dont je connais les coordonnées! Donc si c'est la cellule a(1,3) alors je veux sélectionner la ligne partant de cette cellule jusqu'à la dernière colonne non vide. C'est pourquoi j'ai essayé de remplacer activecell par les coordonnées.
    Sur internet j'ai surtout trouver des exemple pour les colonnes, mais pas pour les lignes....

    Je continu de regarder ce que tu m'as envoyé mais je ne sais pas si ça va fonctionner...

  11. #10
    cherbe

    Re : Sélectionner une ligne avec dernière cellule non vide inconnue

    Citation Envoyé par -maroon- Voir le message
    Je suis désolé mais j'ai l'impression qu'on s'est mal compris!
    Je ne part pas d'une cellule sélectionnée à la souris, mais juste d'une cellule dont je connais les coordonnées!
    Code:
    Range("C1").End(xlToright).Select  'non testé
    'ou
    Range("C1").SpecialCells(xlCellTypeLastCell).select 'non testé

  12. #11
    -maroon-

    Re : Sélectionner une ligne avec dernière cellule non vide inconnue

    Merci pour ton aide!

    Alors j'ai trouvé deux codes:

    code 1:
    Code:
    Range("C1").entirerow.select
    sélectionne toute la ligne de C1, de la 1ère à la dernière colonne non vide.

    code 2:
    Code:
    Range("C1", Range("C1").End(xlToRight)).Select
    sélectionne la ligne de C1 à partir de C1 jusqu'à la dernière colonne non vide vers la droite, et c'est celui-ci que je voulais!

    Merci encore!

  13. #12
    cherbe

    Re : Sélectionner une ligne avec dernière cellule non vide inconnue

    J'avais compris que tu voulais sélectionner uniquement la dernière cellule !

  14. #13
    -maroon-

    Re : Sélectionner une ligne avec dernière cellule non vide inconnue

    Re,
    Oui c'est ce que j'ai vu dsl!
    Et merci encore!

  15. #14
    fregoli

    Re : Sélectionner une ligne avec dernière cellule non vide inconnue

    Citation Envoyé par -maroon- Voir le message
    Par contre quand j'utilise searchemptybycolumn() dans mon code ça bug avec "sub ou function non défini". Je trouve pas la fonction searchemptybycolumn() sur le net c'est normale?
    Est-ce que cette fonction peut aussi être utilisée avec les coordonnées d'une cellule plutôt que (activecell)? !
    Désolé pour le retard.

    searchemptybycolumn() est une fonction qui est déclarée dans le module lui même (relit l'ensemble et tu la trouveras). C'est une fonction déclarée avec l'attribut Private, ce qui signifie qu'on ne peut pas l'appeler en dehors du module lui même.
    Une allumette peut aussi faire déborder le vase...

Discussions similaires

  1. VBA Excel - Masquer ligne vide de x cellule à x cellule
    Par Keffi17 dans le forum Programmation et langages, Algorithmique
    Réponses: 11
    Dernier message: 08/09/2015, 10h14
  2. [JS] Sélectionner mes liens avec les flèches du clavier et les ouvrir avec la touche entrée ?
    Par Airtux dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 04/02/2014, 17h13
  3. Lecture de la dernière ligne d'un fichier .txt avec "C"
    Par invite7f2d5207 dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 23/02/2012, 23h11
  4. Cellule Inconnue
    Par invitef4b310ef dans le forum Identification des espèces animales ou végétales
    Réponses: 2
    Dernier message: 29/11/2009, 16h27
  5. tpe dernière ligne droite
    Par invited8c33083 dans le forum TPE / TIPE et autres travaux
    Réponses: 7
    Dernier message: 01/03/2005, 22h23