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

  • Votes
  • Date
  • Date décroissante
  1. 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))
    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".
  2. re
    Oui le sujet est résolu mais je ne sais pas comment le mettre
    Merci d'avance
    1. Contributeur
      tu peux utiliser la roue dentée à droite du titre pour marquer le sujet comme résolu.
  3. 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
    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. OK, j'ai fait une boulette, merci beaucoup yg_be
        Je te souhaite un bon dimanche
        1. Ça bloque ici :
          Call rg.FormatConditions.Add(xlExpression, , "=NON(MOD(LIGNE();2))") '"=NON(MOD(LIGNE();2))"


          le fichier :
          https://www.cjoint.com/c/HEft65tJNy2
          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é.
        2. Ce n'est pas bon car ça inscrit VRAI dans les cellule
          Ça n'applique le format conditionnel
          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?
        3. 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
          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
        4. 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?