Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Déclaration variable multizone (sélection)

3 réponses
Avatar
Le G
Bonjour !

Dans VBE, pour la fonction suivante, j'analyse la couleur=20
des polices d'une s=E9lection de cellules (Plage) par=20
rapport =E0 une r=E9f=E9rence.

J'aimerais pouvoir travailler sur plusieurs zones non=20
voisines ( Par ex. "H81:H85;L81:L85" ), mais je ne trouve=20
pas comment d=E9clarer ma variable ( As Range ?) ou alors=20
comment transformer ma fonction pour que cela fonctionne !

Quelqu'un conna=EEt-il la solution =E0 mon probl=E8me ?

Merci d'avance !

Le G


Function SommeCoulTxt(Plage As Range, r=E9f=E9rence)
Application.Volatile
Dim vCellule As Object
Dim vSomme As Single
For Each vCellule In Plage
If vCellule.Font.ColorIndex =3D=20
r=E9f=E9rence.Font.ColorIndex And Not IsEmpty(vCellule) Then=20
vSomme =3D vSomme + 1
Next
SommeCoulTxt =3D vSomme
End Function

3 réponses

Avatar
JpPradier
Bonjour Le G

Le plus simple :

LaPlage= Union(Range("H81:H85"),Range("L81:L85")

j-p
Avatar
michdenis
Bonjour Le G,

Dim Rg as range
Set rg = Range("H81:H85,L81:L85")


Salutations!



"Le G" a écrit dans le message de news:08b001c48b6d$60b75420$

Bonjour !

Dans VBE, pour la fonction suivante, j'analyse la couleur
des polices d'une sélection de cellules (Plage) par
rapport à une référence.

J'aimerais pouvoir travailler sur plusieurs zones non
voisines ( Par ex. "H81:H85;L81:L85" ), mais je ne trouve
pas comment déclarer ma variable ( As Range ?) ou alors
comment transformer ma fonction pour que cela fonctionne !

Quelqu'un connaît-il la solution à mon problème ?

Merci d'avance !

Le G


Function SommeCoulTxt(Plage As Range, référence)
Application.Volatile
Dim vCellule As Object
Dim vSomme As Single
For Each vCellule In Plage
If vCellule.Font.ColorIndex référence.Font.ColorIndex And Not IsEmpty(vCellule) Then
vSomme = vSomme + 1
Next
SommeCoulTxt = vSomme
End Function
Avatar
Alain CROS
Bonjour

Si j'ai bien compris le problème

Function SommeCoulTxt!(référence As Range, Plage1 As Range, Optional plage2 As Range)
Dim vCellule As Range
Application.Volatile
For Each vCellule In Plage1
If vCellule.Font.ColorIndex = référence.Resize(1&, 1&).Font.ColorIndex _
And Not IsEmpty(vCellule) Then SommeCoulTxt = SommeCoulTxt + 1&
Next vCellule
If plage2 Is Nothing Then Exit Function
For Each vCellule In plage2
If vCellule.Font.ColorIndex = référence.Resize(1&, 1&).Font.ColorIndex _
And Not IsEmpty(vCellule) Then SommeCoulTxt = SommeCoulTxt + 1&
Next vCellule
End Function

Alain CROS

"Le G" a écrit dans le message de news: 08b001c48b6d$60b75420$

Bonjour !

Dans VBE, pour la fonction suivante, j'analyse la couleur
des polices d'une sélection de cellules (Plage) par
rapport à une référence.

J'aimerais pouvoir travailler sur plusieurs zones non
voisines ( Par ex. "H81:H85;L81:L85" ), mais je ne trouve
pas comment déclarer ma variable ( As Range ?) ou alors
comment transformer ma fonction pour que cela fonctionne !

Quelqu'un connaît-il la solution à mon problème ?

Merci d'avance !

Le G


Function SommeCoulTxt(Plage As Range, référence)
Application.Volatile
Dim vCellule As Object
Dim vSomme As Single
For Each vCellule In Plage
If vCellule.Font.ColorIndex référence.Font.ColorIndex And Not IsEmpty(vCellule) Then
vSomme = vSomme + 1
Next
SommeCoulTxt = vSomme
End Function