Bonjour,

Ma problématique est la suivante: je construis dynamiquement un fichier de saisie. Mon fichier contient des en-têtes de lignes, et 36 colonnes de saisie. Cela correspond pour chaque mois à 3 colonnes de saisie: prix, augmentation du prix en montant, augmentation du prix en pourcentage.
J'arrive à contruire mon fichier, à formater mes colonnes en termes de couleurs et formats de nombres.
Il me reste une chose que je n'arrive pas à faire:
Je veux interdire la saisie d'un montant d'augmentation si une augmentation en pourcentage est déjà saisie et inversement.


Pour mieux comprendre le code ci-dessous, je formate (couleurs) des colonnes dépendant de paramètres, pour bien comprendre, il s'agit par exemple des colonnes T, W, Z, AC, AF, AI, AL, AR, AO, AU, AX, BA (il s'agit des montants d'augmentation).
Je souhaiterais qu'on ne puisse pas saisir une valeur dans ces colonnes si il y a déjà une valeur dans les colonnes U, X, AA, AD, AG, etc. (il s'agit des pourcentages d'augmentation).

Mon essai de code est le suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    'Colonnes de saisie des montants d'augmentation
    Union(ws_in.Cells(val(sRowNumber), nColData + 9), ws_in.Cells(val(sRowNumber), nColData + 12), ws_in.Cells(val(sRowNumber), nColData + 15), ws_in.Cells(val(sRowNumber), nColData + 18), ws_in.Cells(val(sRowNumber), nColData + 21), ws_in.Cells(val(sRowNumber), nColData + 24), ws_in.Cells(val(sRowNumber), nColData + 27), ws_in.Cells(val(sRowNumber), nColData + 30), ws_in.Cells(val(sRowNumber), nColData + 33), ws_in.Cells(val(sRowNumber), nColData + 36), ws_in.Cells(val(sRowNumber), nColData + 39), ws_in.Cells(val(sRowNumber), nColData + 42)).Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 8248754
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    'Essai de formatage conditionnel par une validation
    'With Selection.Validation
    '    .Delete
    '    .Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
    '    xlBetween, Formula1:="U25=0"
    '    .IgnoreBlank = True
    '    .InCellDropdown = True
    '    .InputTitle = ""
    '    .ErrorTitle = ""
    '    .InputMessage = ""
    '    .ErrorMessage = ""
    '    .ShowInput = True
    '    .ShowError = True
    'End With
Techniquement, la question est: comment rendre relative la partie xlBetween, Formula1:="U25=0" relative ?

Quelqu'un peut-il m'aider?

Merci