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. 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,

        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. 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