Macro Excel, Selection cellules

Bonjour,

J'aimerai pouvoir lancer une macro qui selectionnerait toutes les cellules égales à 2 dans une collone donnée (en l'occurance la U).

Merci.

7 réponses

  1. Salut,

    Explique exactement ce que tu veux faire, ou qu' attends tu par sélectionner !

    colonne U si plusieurs cellules sont égale à 2 tu veux les coloriser, les copier dans une autre plage ou simplement les mettre en surbrillance et dans quel but !
    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    0
    1. Tout d'abord,merci de ta réponse.

      Oui en fait, le but est de selectionner les cellules, étendre la séléction de 5 colonnes sur la gauche, pour au final les coller en '2'!A9 (Feuille '2' en cellule A9 (mais j'pense que tu avais déja compris...:-)))
      0
      1. Personne pour m'aider..??
        0
        1. Re,

          Excuse, je n'avais pas vu passer ta réponse.

          Une fois copier sur la feuille 2, les données de la feuille 1 seront elles effacées, parce que si tu relance le code elles seront copié à chaque fois. Pour éviter cela il est possible d'ajouter une colonne.

          Dois tu recommencer la procédure et les données se mettre à la suite sur la feuille 2 ou doivent elles remplacer les données déjà copiées
          0
      2. Bonsoir

        Il n'est pas utile de sélectionner les cellules pour les copier.
        Essaye ce code :

        Private Sub Test()
        Dim rng As Range
        Dim cel As Range
          For Each cel In Worksheets(1).Columns("U").Cells
            If cel.Value = 2 Then
              If rng Is Nothing Then
                Set rng = cel.Offset(, -5).Resize(, 6)
              Else
                Set rng = Union(rng, cel.Offset(, -5).Resize(, 6))
              End If
            End If
          Next
          If Not rng Is Nothing Then 
            rng.Copy Destination:=Worksheets("2").Range("A9")
          End If
        End Sub

        Cordialement
        Patrice
        0
        1. Merci à vous 2

          Patrice c'est presque Nickel...:-)

          Premièrement, j'me suis un peu planté, donc j'ai retouché un peu ton sript:

          Sub Smile()
          ' Smile Macro
          ' Macro enregistrée le 17/09/2010 par gdesousa
          Dim rng As Range
          Dim cel As Range
          For Each cel In Worksheets("Recalcul").Columns("V").Cells
          If cel.Value = 2 Then
          If rng Is Nothing Then
          Set rng = cel.Offset(, -6).Resize(, 6)
          Else
          Set rng = Union(rng, cel.Offset(, -6).Resize(, 6))
          End If
          End If
          Next
          If Not rng Is Nothing Then
          rng.Copy Destination:=Worksheets("2").Range("A9")

          End If
          End Sub

          Mais j'ai un encore un petit soucis.
          Les cellules Copiées étant issues de formules, lors du collage ça bug (REF#), serait-il possible de finir par un collage spécial 'valeurs'..?

          Nota: Une chose étrange, lorsque les lignes copiées ne sont pas successives, ça marche nickel... (°õ°)

          Encore merci.
          0
          1. Bonsoir,

            Pour faire un collage spéciale, remplace la ligne :

            rng.Copy Destination:=Worksheets("2").Range("A9") 
            
            par ces 3 lignes :

            rng.Copy
            Worksheets("2").Range("A9").PasteSpecial Paste:=xlPasteValues
            Application.CutCopyMode = False
            

            ou par ces 4 lignes si tu veux aussi les formats:

            rng.Copy
            Worksheets("2").Range("A9").PasteSpecial Paste:=xlPasteFormats
            Worksheets("2").Range("A9").PasteSpecial Paste:=xlPasteValues
            Application.CutCopyMode = False

            Cordialement
            Patrice
            0
            1. Et bien c'est parfait...... Un Grand merci à vous.

              Et à bientôt...^^
              0
              1. De rien, au plaisir.
                0