Cellule de Conditions Mise en Forme Conditionnelle (VB)

sebm1976

XLDnaute Nouveau
Bonjour à tous,

Je travaille actuellement sur une macro permettant de générer un rapport de contrôle à partir d'un fichier .txt tabulé. Cette macro extrait les données du fichier et les exporte dans un classeur Excel pour le rapport final.

Les données saisies dans le fichier .txt pouvant comporter des coquilles, j'applique une mise en forme conditionnelle des données au rapport final, plutôt que de mettre en forme les données lors du traitement par macro.

Mon problème provient du fait que la cellule à laquelle se réfère la condition est variable.

Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual,Formula1:="=A$1"

Pour cette ligne de code, la condition se réfère à la cellule A1. Mon problème est que l'index de colonne peut varier (l'index de ligne sera invariable).

Je parviens à récupérer l'index de colonne numérique, j'ai trouvé comment convertir cette index en lettre de colonne, mais impossible de trouver comment faire en sorte d'avoir cette colonne dans ma formule de mjc.

En clair, si je récupère l'index de colonne 5, je voudrai que ma formule soit :

Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual,Formula1:="=E$1"

Par avance merci pour vos réponses ou pistes qui pourront m'orienter.

Sébastien.
 

Pierrot93

XLDnaute Barbatruc
Re : Cellule de Conditions Mise en Forme Conditionnelle (VB)

Bonjour,

regarde peut être ceci, enfin si j'ai bien compris :
Code:
Dim i As Long
i = 5
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=" & Cells(1, i).Address(1, 0)

bonne journée
@+
 

sebm1976

XLDnaute Nouveau
Re : Cellule de Conditions Mise en Forme Conditionnelle (VB)

Merci Pierrot,

C'est la solution à mon problème.

Je vais pouvoir continuer à avancer ... jusqu'au prochain blocage.

Edit:

Prochain blocage arrivé.

Problème pour adapter cette formule:

Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotBetween, Formula1:="=B$3+B$4", Formula2:="=B$3+B$5"

Même contrainte que le premier message du poste et j'ai essayé une modification en me basant sur ce que m'a donné Pierrot. Ce code est un exemple de mes multiples essais infructueux.

Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotBetween, Formula1:=" sum (& cells(3,c1).address(1,0),& cells(4,c1).address(1,0))", _
Formula2:="sum (& cells(3,c1).address(1,0),& cells(5,c1).address(1,0))"

Je pense que c'est un problème de syntaxe, car selon les essais soit la condition ne s'applique pas (ou la mise en forme se fait quoiqu'il advienne), soit problème dans l'expression.

Merci d'avance une nouvelle fois pour vos lumières.

Sébastien.
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Cellule de Conditions Mise en Forme Conditionnelle (VB)

Bonjour,

regarde peut être ceci :

Code:
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotBetween, Formula1:="=" & Cells(3, c1).Address(1, 0) & "+" & Cells(4, c1).Address(1, 0) & ")", _
    Formula2:="=" & Cells(3, c1).Address(1, 0) & "+" & Cells(5, c1).Address(1, 0) & ")"

bonne journée
@+
 

Pierrot93

XLDnaute Barbatruc
Re : Cellule de Conditions Mise en Forme Conditionnelle (VB)

Re,

j'ai enlevé les parenthèses à la fin des formules :
Code:
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotBetween, Formula1:="=" & Cells(3, c1).Address(1, 0) & "+" & Cells(4, c1).Address(1, 0), _
    Formula2:="=" & Cells(3, c1).Address(1, 0) & "+" & Cells(5, c1).Address(1, 0)
 

sebm1976

XLDnaute Nouveau
Re : Cellule de Conditions Mise en Forme Conditionnelle (VB)

Merci Pierrot encore une fois,

Cela fonctionne.

J'avais dans un premier temps utilisé l'opérateur "+", mais je n'avais pas la bonne syntaxe (absence de ""). C'est pour çà que j'en étais arrivé à utiliser "sum".

Sébastien.
 

Statistiques des forums

Discussions
312 493
Messages
2 088 958
Membres
103 990
dernier inscrit
lamiadebz