Bonsoir,

Je suis novice en VBA et je souhaite coder un fichier qui contient plusieurs fonctions if mais qui ont chacune des conditions différentes. Ma difficulté se trouve dans la condition si celle ci est fausse, car j'ai fait une boucle qui démarre du début de mon fichier jusqu'à la dernière ligne (variable derl que j'ai définit) qui va me chercher un code et d'après ce code la fonction if renvoie un nombre dans la colonne F. Pour tous les codes les nombres renvoyés sont tous dans la colonne F à des lignes différentes en fonction de la boucle, mais par contre si la condition est fausse je souhaite qu'il n'affiche rien dans la colonne à l'endroit du code cherché et c'est la que je fais appelle aux experts du vba, car pour moi toutes les fonctions quand la condition est fausse sont les mêmes du coup parfois tout s'efface alors que j'ai simplement une condition de fausse et les autres non.
Je ne sais pas si je suis très clair dans mes explications, mais j'espère que le fichier joint vous aidera à m'aider.

Merci par avance à vous tous.

Cordialement

Voici le code en question :

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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Sub Base()
 
Dim ws As Worksheet
Dim i As Integer
Dim derl As Long
 
Application.ScreenUpdating = False
 
Set ws = ActiveWorkbook.Worksheets(1)
derl = ws.Range("B" & Rows.Count).End(xlUp).Row
 
For i = 6 To derl
code = ws.Range("B" & i).Value
statut = ws.Range("D" & i).Value
 
        If code = "101" And IsEmpty(statut) Then
        ws.Cells(i, 6) = ws.Range("M9").Value
        Else
        ws.Cells(i, 6).ClearContents
        End If
 
            If code = "181" And IsEmpty(statut) Then
            ws.Cells(i, 6) = ws.Range("M14").Value
            Else
            ws.Cells(i, 6).ClearContents
            End If
 
                If ws.Range("M14").Value <> "" And code = "400" Then
                ws.Cells(i, 6) = ws.Range("M21").Value
                Else
                ws.Cells(i, 6).ClearContents
                End If
 
 
Next i
 
End Sub