Selection ligne avec cellule vide

Bonjour,
Je souhaite sélectionner une ligne dans une macro mais j'ai sur cette ligne j'ai une cellule vide ....

Je ne sais pas comment faire.
Voici le code que j'ai fait et qui ne fonctionne pas, il s'arrete après la cellule vide

Range ("B12")
If Trim(ActiveCell.Value) = "Total" Then
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlToRight)).Select
With Selection.Interior
.ColorIndex = 34
.Pattern = xlSolid
End With
End If

Merci d'avance pour vos réponse
cordialement,

milie80
Configuration: Windows XP
Internet Explorer 6.0

8 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    bonjour,
    Je souhaite sélectionner une ligne
    mais tu teste les colonnes ?

    Range ("B12") c'est quoi ? la cellule que tu veux
    Selection, où est-elle délimitée ?
    Tu veux trouver une dernière ligne absolue ?
    Essaye d'expliquer un peu plus.

    A+
    1. Salut, à la place de
      Range(Selection, Selection.End(xlToRight)).Select 
      Range(Selection, Selection.End(xlToRight)).Select 

      tu peux sélectionner toute la ligne avec
      ActiveCell.EntireRow.Select

      A+
      1. Contributeur
        salut Amnesic
        Faut un peu réfléchir avant de donner une piste !
        avec ta solution tu sélectionne jusqu'a la ligne 65536 ?
        valable éventuellement pour copier toute une colonne, mais à part ça !!
        A+
        1. Salut lermite,
          il faut un peu revoir son vocabulaire avant de faire des remarques !
          en l'occurence, row signifie ligne. Je le sais, j'ai vérifié dans le dictionnaire. Colonne, ça se dit column.
          Donc Activecell.entirerow.select sélectionne uniquement la ligne de la cellule active. Ca me semble répondre en partie à la question posée qui commence par "Je souhaite sélectionner une ligne dans une macro"

          Le problème de milie, c'est de pouvoir sélectionner ses lignes "Total" pour y appliquer une petite mise en forme. Mais comme elle a des trous dans ses données en ligne, .End(xlToRight) ne va pas jusqu'au bout. Prendre toute la ligne, c'est un peu bourrin comme solution, mais c'est rapide !
          A+
          1. Contributeur
            Salut Amnesic, tu a raison, devai être fatigué ce jour là pour confondre ligne et colonne, mais maintient et cette fois dans l'autre sens, que toute la ligne est sélectionnée comme tu dit, et en lisant son poste elle ne veux modifier qu'une plage.
            .End(xlToRight) = va jusqu'a la première cellule vide, éventuellement faire l'inverse avec xlToLeft en partant de la dernière colonne
            Pour connaitre la dernière colonne renseignée.
            DerniereColonne = Range("A1").SpecialCells(xlCellTypeLastCell).Column
            Adapté A1 à la ligne active.
            Mais attendons une éventuelle réponse.
            Cordialement
            1. Bonjour,

              Je vais essayer d'être plus clair
              Je voulais mettre un exemple de ce que je voulais mais je n'y arrive pas.

              Merci déjà pour vos réponses même si ca ne marche.
              Il s'agit d'un tableau avec des sous totaux.
              Je veux que la ligne soit mise en gras mais pas toute la ligne uniquement mon tableau de données.
              La deuxième de la ligne est vide.

              Voilà je ne sais pas si j'ai été assez clair

              Merci d'avance
              1. Contributeur
                Bonjour,
                où ça ne va pas c'est dans ta sélection, la ligne qui contient "Total" c'est toujours la même ?
                le nombre de colonne est-l toujours le même ?
                Si oui, exemple pous la sélection...de la colonne B ligne 10 à la colonne J ligne 10
                Range("B10:J10").select
                et aprèston with qui est bon
                1. Bonjour

                  À adapter :

                  Sélection conditionnelle de lignes discontinues

                  Je voudrais par macro sélectionner toutes les lignes répondant à un critère donné.
                  Ces lignes sont discontinues.

                  En partant du principe que tout ça se passe dans la Feuille "Feuil1", que le nombre de lignes à examiner soit 20 et que le critère soit "MonCritère" à vérifier dans la cellule "A" de chaque ligne (à remplacer par tes valeurs donc) :

                  Sub JeSelectionne()
                  i = 1
                  NombreLignes = 20
                  While i < NombreLignes + 1
                  If Cells(i, 1) = MonCritere Then
                  MesLignes = MesLignes & i & ":" & i & ","
                  End If
                  i = i + 1
                  Wend
                  MesLignes = Left(MesLignes, Len(MesLignes) - 1)
                  Sheets("Feuil1").Range(MesLignes).Select
                  End Sub

                  Attention tout de même aux limites du nombre de lignes distinctes admises dans la sélection multiple (255 ?)

                  Bernard Rey, (N°1027)

                  Source : http://www.excelabo.net/excel/ligncol.php

                  Merci