Macro Excel, Selection cellules

Doffybud Messages postés 12 Statut Membre -  
Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   -
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. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  2. Doffybud Messages postés 12 Statut Membre
     
    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
  3. Doffybud Messages postés 12 Statut Membre
     
    Personne pour m'aider..??
    0
    1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
       
      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
  4. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Doffybud Messages postés 12 Statut Membre
     
    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
  7. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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
  8. Doffybud
     
    Et bien c'est parfait...... Un Grand merci à vous.

    Et à bientôt...^^
    0
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      De rien, au plaisir.
      0