Selection plage cellules

Résolu
Bonjour,
Je voudrais sélectionner la plage de cellule de la feuille5 colonnes A:F avec un nombre de lignes variables comportant des cellules vides par Vba
Je ne peux malheureusement pas travailler en nommant ma plage avec DECALER

Merci pour votre aide
ps Excel 2003

10 réponses

  1. Bonjour,

    Essaye simplement comme cela pour sélectionner de A1 à la dernière cellule renseignée en A décalée colonne F

    Sub Sélect()
    Range([A1], [A65535].End(xlUp)(1, 6)).Select
    End Sub

    1
    1. Contributeur
      bonjour, par exemple:
      Option Explicit
      
      Sub jean300()
      Dim ldebut As Long, lfin As Long
      Dim plage As Range
      ldebut = 23
      lfin = 32
      Set plage = ThisWorkbook.Sheets("feuille5").Range("A" & ldebut & ":F" & lfin)
      End Sub

      ou bien souhaites-tu automatiquement détecter les cellules vides?
      0
      1. Bonjour yg_be
        Je te remercie de me répondre, j'ai testé ton code mais il ne se passe rien
        En fait je voudrais que cette formule =NON(MOD(LIGNE();2)) (en format conditionnel) se mette sur les colonnes de A à F jusqu'à la dernière ligne qui comporte toujours une écriture en colonne A
        0
        1. Contributeur
          alors je propose ceci:
          Option Explicit
          
          Sub jean300()
          'En fait je voudrais que cette formule =NON(MOD(LIGNE();2)) _
              (en format conditionnel) se mette sur les colonnes de A à F _
              jusqu'à la dernière ligne qui comporte toujours une écriture en colonne A
          Dim nlig As Long
          Dim sh As Worksheet
          
          Set sh = ThisWorkbook.Sheets("feuille5")
          nlig = 1
          Do While sh.Cells(nlig, 1) <> ""
              sh.Range("A" & nlig & ":F" & nlig).FormulaLocal = "=NON(MOD(LIGNE();2))"
              nlig = nlig + 1
          Loop
          End Sub
          0
      2. Ce n'est pas bon car ça inscrit VRAI dans les cellule
        Ça n'applique le format conditionnel
        0
        1. Contributeur
          plutôt ainsi?
          Sub jean300()
          'En fait je voudrais que cette formule =NON(MOD(LIGNE();2)) _
              (en format conditionnel) se mette sur les colonnes de A à F _
              jusqu'à la dernière ligne qui comporte toujours une écriture en colonne A
          Dim nlig As Long
          Dim sh As Worksheet
          Dim rg As Range
          
          Set sh = ThisWorkbook.Sheets("feuille5")
          nlig = 1
          Do While sh.Cells(nlig, 1).Value <> ""
              Set rg = sh.Range("A" & nlig & ":F" & nlig)
              Call rg.FormatConditions.Add(xlExpression, , "=NON(MOD(LIGNE();2))") '"=NON(MOD(LIGNE();2))"
              rg.FormatConditions(1).Interior.PatternColorIndex = xlAutomatic
              rg.FormatConditions(1).Interior.ColorIndex = 19
              nlig = nlig + 1
          Loop
          End Sub

          sinon, pourrais-tu partager ton fichier?
          0
      3. Ça bloque ici :
        Call rg.FormatConditions.Add(xlExpression, , "=NON(MOD(LIGNE();2))") '"=NON(MOD(LIGNE();2))"


        le fichier :
        https://www.cjoint.com/c/HEft65tJNy2
        0
        1. Contributeur
          moi, j'ai pu utilisé ceci:
          Option Explicit
          
          Sub jean300()
          'En fait je voudrais que cette formule =NON(MOD(LIGNE();2)) _
              (en format conditionnel) se mette sur les colonnes de A à F _
              jusqu'à la dernière ligne qui comporte toujours une écriture en colonne A
          Dim nlig As Long
          Dim sh As Worksheet
          Dim rg As Range
          
          Set sh = ThisWorkbook.Sheets("Feuil1")
          nlig = 2
          Do While sh.Cells(nlig, 1).Value <> ""
              Set rg = sh.Range("A" & nlig & ":F" & nlig)
              rg.FormatConditions.Delete
              Call rg.FormatConditions.Add(xlExpression, , "=NON(MOD(LIGNE();2))")  '=NON(MOD(LIGNE();2)) =NOT(MOD(ROW();2))
              rg.FormatConditions(1).Interior.PatternColorIndex = xlAutomatic
              rg.FormatConditions(1).Interior.ColorIndex = 35
              nlig = nlig + 1
          Loop
          End Sub

          quand tu écris "Ça bloque ici", as-tu un message d'erreur?
          le fichier que tu as envoyé ne contient pas le code que j'ai proposé.
          0
      4. OK, j'ai fait une boulette, merci beaucoup yg_be
        Je te souhaite un bon dimanche
        0
        1. Bonjour Mikr-31
          Rapide et efficace, Merci à toi
          0
          1. Re,

            Si tes attentes sont satisfaites, passe le statut de la discussion en résolu ou confirme le nous qu'on le fasse pour toi
            0
            1. re
              Oui le sujet est résolu mais je ne sais pas comment le mettre
              Merci d'avance
              0
              1. Contributeur
                tu peux utiliser la roue dentée à droite du titre pour marquer le sujet comme résolu.
                0
            2. Merci yg_be
              Dois-je ouvrir un autre sujet presque similaire mais pour copier de A2 à Z2 et de coller le format sur le reste de la feuille de la dernière ligne à la ligne jusqu'à la ligne 3
              Je pense que c'est cette partie qu'il faut modifier, mais comment
                  Call rg.FormatConditions.Add(xlExpression, , "=NON(MOD(LIGNE();2))")  '=NON(MOD(LIGNE();2)) =NOT(MOD(ROW();2))
              0
              1. Contributeur
                je pense préférable d'ouvrir un autre sujet. prend le temps de bien expliquer dès le départ ce que tu attends, notamment "copier de A2 à Z2".
                0