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.
    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...:-)))
      1. Personne pour m'aider..??
        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
      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
        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.
          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
            1. Et bien c'est parfait...... Un Grand merci à vous.

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