Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Amputer une plage

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

J'ai une plage de cellules nommée "zaza".
Supposons que je veuille lui retirer 3 cellules : "F6", "L4" et "B3". Comment s'y prendrait-on ?
En somme, [zaza] = [zaza] - ([F6], [L4], [B3])
 

job75

XLDnaute Barbatruc
Re : Amputer une plage

Bonjour Magic_Doctor, le forum,

Si comme je le suppose la plage "zaza" est une plage rectangulaire :

Code:
Sub ExclureCellules()
'la plage nommée zaza doit être une plage rectangulaire
Dim exclu As Range, tablo, Maplage As Range
Application.ScreenUpdating = False
With [zaza]
  Set exclu = .Parent.[F6,L4,B3] 'à adapter
  Set exclu = Intersect(exclu, .Cells)
  tablo = .Formula
  .Value = 1
  If Not exclu Is Nothing Then exclu = "a"
  On Error Resume Next 'au cas où...
  Set Maplage = .SpecialCells(xlCellTypeConstants, 1)
  .Formula = tablo
End With
Application.Goto Maplage
End Sub
Sinon il faudra étudier les zones (Areas) de "zaza" une par une, de la même manière.

A+
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Amputer une plage

Bonjour Magic_Doctor

Salut Gerard

A tester:

Code:
Sub test()
Dim zaza_sans As Range
For Each cel In Range("zaza")
  If cel.Address <> "$F$6" Then
    If cel.Address <> "$L$14" Then
      If cel.Address <> "$B$3" Then
         If Not zaza_sans Is Nothing Then
            Set zaza_sans = Application.Union(zaza_sans, cel)
         Else
            Set zaza_sans = cel
         End If
       End If
    End If
  End If
Next
zaza_sans.Select
End Sub
 

pierrejean

XLDnaute Barbatruc
Re : Amputer une plage

Re

Autre version

Code:
Function plage_sans(plage, cellules) As Range
For Each cel In plage
  If InStr(cellules, cel.Address(0, 0) & ",") = 0 Then
    If Not plage_sans Is Nothing Then
       Set plage_sans = Application.Union(plage_sans, cel)
    Else
       Set plage_sans = cel
    End If
  End If
Next
End Function
Sub essai()
plage_sans(Range("zaza"), "F6,L14,B3,").Select
End Sub

NB: ne pas oublier la virgule finale dans la dénomination des cellules a exclure
 
Dernière édition:

Discussions similaires

Réponses
11
Affichages
379
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…