"Soustraction" d'adresses de cellules

Magic_Doctor

XLDnaute Barbatruc
Bonsoir,

J'ai 3 plages de cellules, 2 étant incluses dans la plus vaste.

Supposons que l'adresse de la 1ère plage (la plus vaste) soit : A1:K27
L'adresse des 2 autres plages : B4:D26,F8:G12

Comment pourrait-on obtenir l'adresse de la différence des 2 plages, autrement dit l'adresse de toutes les cellules qui n'appartiennent pas aux 2 plages incluses dans la plus vaste ?

Un grand merci pour m'aider à résoudre cette énigme.
 

hoerwind

XLDnaute Barbatruc
Re : "Soustraction" d'adresses de cellules

Bonsoir,

Edite ton message et mets un espace entre le : et le D (supposé être D)

Pour ta question, peux-tu donner un aperçu du résultat que tu souhaites obtenir, est-ce toutes les adresses séparées, exemple A1, A2,A3, ... dans une cellule ou dans ds cellules séparées, ou des plages de cellules de type A1:A40 peuvent-elles également convenir ?
 

Magic_Doctor

XLDnaute Barbatruc
Re : "Soustraction" d'adresses de cellules

Bonsoir hoerwind,

Ces bidules sont agaçants...

Le mieux est que je t'adresse un document où tout y est expliqué (en REM) dans la macro (Módulo1).
J'ai une plage avec des cellules contenant quelque chose (constante, formule...) et des tableaux avec des lignes qui peuvent être vides.
Bref, une plage classique.
Je voudrais uniquement modifier la couleur de fond de la plage, autrement dit toutes les cellules où il n'y a jamais rien, sans pour autant altérer le formatage des autres cellules que j'appelle dans la feuille "cellules stratégiques".
 

job75

XLDnaute Barbatruc
Re : "Soustraction" d'adresses de cellules

Bonjour Magic Doctor, salut hoerwind,

Une solution VBA :

Code:
Sub PlageDif()
Dim plage1 As Range, plage2 As Range, cel As Range, plage As Range
Set plage1 = Range("A1:K27") 'plage "enveloppe"
Set plage2 = Range("B4:D26,F8:G12") 'plages exclues
For Each cel In plage1
  If Intersect(cel, plage2) Is Nothing Then _
    Set plage = Union(cel, IIf(plage Is Nothing, cel, plage))
Next
'---restitution---
If plage Is Nothing Then Exit Sub
MsgBox plage.Address(0, 0) 'exemple
End Sub
A+
 

Magic_Doctor

XLDnaute Barbatruc
Re : "Soustraction" d'adresses de cellules

Bonsoir job75,

C'est pas évident ce truc-là !
Mais on s'approche du but...

Si je mets ta routine dans un module, et que je remplace "MsgBox plage.Address(0, 0)" par "plage.Select", les 2 1ères lignes du 1er tableau sont tronquées. Les cellules où il y a quelque chose mais qui ne sont pas encadrées sont elles aussi tronquées. Mais là ce n'est pas bien grave, puisque par principe (en tout cas personnel) toutes les cellules où doit figurer quelque chose sont encadrées.
En fait, le seul véritable hic est le troncage des 2 1ères lignes du 1er tableau (celui où j'ai mis a, b & c).
 

Magic_Doctor

XLDnaute Barbatruc
Re : "Soustraction" d'adresses de cellules

Mille excuses job,

J'ai bien mis ta routine dans la mienne et... ça marche !!!!

¡La verdad estoy asombrado!
 

Pièces jointes

  • Essai Fond3.xlsm
    19.7 KB · Affichages: 65
  • Essai Fond3.xlsm
    19.7 KB · Affichages: 76
  • Essai Fond3.xlsm
    19.7 KB · Affichages: 82

Discussions similaires

Statistiques des forums

Discussions
312 744
Messages
2 091 574
Membres
104 999
dernier inscrit
Rhazard