Changer la formule de selection des plages

Bonsoir tout le monde;

voila, une petite question

j'ai une macro avec ceci:

...............For Each Cellule In Range("B2:B" & Range("B2").End(xlDown).Row)

pour les besoins d'adaptation j'ai réussi a le changer en :

..............For Each Cellule In Range("B26:B36")

mais comment noté si je veux faire : de "B26 à B36" et de "B45 à B54"

cordialement

Salut le forum

Maguetlolo avec un Array

Dim Cellule
For Each Cellule In Array(Range("B26:B36"), Range("B45:B54"))
'Ton traitement Cellule.Value ...
Next Cellule

Ou

For Each Cellule In Range("B26:B36,B45:B54") 

Mytå

Edit : Salut ComfortablyNumb

Bonsoir,

Tu peux essayer ça:

Range("B26:B36,B45:B54")

+

Re,

Myta, j'ai essayé de faire ce que tu dis, mais surement pas de la bonne façon.

je pensait que la ligne jointe suffirais mais je te joint la macro cette fois-ci (de ta composition).

ComfortablyNumb merci pour ta reponse, mais j'ai deja essayer, ta solution.

Sub Extraire()
Dim Cellule
Sheets("rapport").Select
Range("D2:Y" & Range("B2").End(xlDown).Row).ClearContents
'For Each Cellule In Range("B26:B36")
'For Each Cellule In Range("B2:B" & Range("B2").End(xlDown).Row)
For Each Cellule In Array(Range("B26:B30"), Range("B34:B36"))
With Sheets("hm")
  With .Range("D2:D" & .Range("D65536").End(xlUp).Row)
    Set cell = .Find(Cellule, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns) 'xlpart xlwhole

  If Not cell Is Nothing Then
    Premcell = cell.Address
    Do
        Select Case cell.Offset(0, -1)
            Case "in"
            Cellule.Offset(0, 2) = Cellule.Offset(0, 2) + 1
            Case "out"
            Cellule.Offset(0, 3) = Cellule.Offset(0, 3) + 1
            Case "on"
            Cellule.Offset(0, 4) = Cellule.Offset(0, 4) + 1
        End Select

      Set cell = .Cells.FindNext(cell)
    Loop Until cell.Address = Premcell
  End If

    Set cell = Nothing

  End With
End With
Next Cellule
'Application.Run "Extraire2"
End Sub

cordialement

J'avoue ne pas avoir le courage de me plonger dans ton code mais voici une idée:

Tu peux faire 2 boucles, 1 pour Range("B26:B30") et une autre pour Range("B34:B36").

Dans chacune de ces boucles, tu appelles la fonction qui contient le code a exécuté.

Je ne sais pas si ça peut s'adapter à ton problème, mais c'est une façon de faire...

Bonsoir tout le monde

Myta et ComfortablyNumb, Votre solution fonctionne

j'étais pourtant persuadé d'avoir essayé cette syntaxe et que ça ne fonctionnais pas, la prochaine fois j'essaierais quand même, toutes mes escuses et merci à vous deux.

Laurent

Édition par Mytå, et le [Résolu] tu le dis toi même dans ta signature.

Rechercher des sujets similaires à "changer formule selection plages"