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. Et bien c'est parfait...... Un Grand merci à vous.

    Et à bientôt...^^
    0
    1. De rien, au plaisir.
      0
  2. 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. 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

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