Macro Excel, Selection cellules
Doffybud
Messages postés
12
Statut
Membre
-
Patrice33740 Messages postés 8400 Date d'inscription Statut Membre Dernière intervention -
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.
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
-
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. -
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...:-))) -
-
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
-
-
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
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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. -
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 -