VBA - Problèmes If Else If
Bonjour à tous, j'ai déjà pas mal utilisé ce forum pour trouver des solutions à mes problèmes sur VBA, et cette fois-ci c'est moi qui écrit ...!
J'ai voulu modifier une de mes macros avec un code que je pensais simple mais je n'arrive pas à le faire fonctionner correctement...
Je veux bien de votre aide si le cœur vous en dit ... :)
* Mon code complet permet d'aller remplir un onglet précis d'un fichier choisit, il fonctionne très bien sans ajouts des quelques lignes de codes
Il fonctionne avec un Boolean (Si faux, prends les valeurs et remplit le fichier de destination // Si vrai, passe au suivant)
J'ai voulu rajouter une petite complexité en encastrant un If dans un autre If mais cela ne fonctionne pas
Pour faire simple, selon les 2 premières lettres de ma référence, je veux faire correspondre un type de contrat (Exemple, référence AL000001 commence par "AL" donc le type de contrat est LOA)
Voici la section qui pose problème : (quelques variables ont été définies plus haut)
Les rajouts qui coincent :
Valcell (ligne 6)
Ligne 17 à 27
Ligne 39
Merci beaucoup !
Code:
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 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| Sheets("sheet1").Select 'Selectionne la feuille "sheet1"
Dim L As Long
L = Sheets("sheet1").Range("A1048576").End(xlUp).Row
Dim datecycle As Date, client As String, montant As Double, ref As String, transmis As Boolean, Valcell As String 'Définit les variables
For i = 2 To L
transmis = Sheets("sheet1").Range("N" & i).Value 'Vérifie si la valeur de la cellule de la colonne N est égale à VRAI ou FAUX
If transmis = False Then 'Si FAUX, stocke les valeurs des cellules des colonnes C,A et I et G dans les variables
datecycle = Sheets("sheet1").Range("C" & i).Value
client = Sheets("sheet1").Range("A" & i).Value
montant = Sheets("sheet1").Range("I" & i).Value
ref = Sheets("sheet1").Range("G" & i).Value
If Left(ref.Value, 2) = "AL" Then
Valcell.Value = "LOA"
ElseIf Left(ref.Value, 2) = "AC" Then
Valcell.Value = "Crédit"
ElseIf Left(ref.Value, 2) = "AF" Then
Valcell.Value = "LLD"
ElseIf Left(ref.Value, 2) = "AD" Then
Valcell.Value = "Collab Toy (autre)"
Else
Valcell.Value = "Non défini"
End If
Workbooks(fichier_destination).Activate 'Active le fichier de destination
Sheets(onglet_destination).Select
Dim L2 As Long
L2 = Sheets(onglet_destination).Range("A1048576").End(xlUp).Row + 1 'Définit la dernière ligne du sheet1
Sheets(onglet_destination).Range("C" & L2).Value = datecycle 'Renseigne les valeurs des variables dans les cellules correspondantes
Sheets(onglet_destination).Range("B" & L2).Value = client
Sheets(onglet_destination).Range("D" & L2).Value = montant
Sheets(onglet_destination).Range("A" & L2).Value = ref
Sheets(onglet_destination).Range("E" & L2).Value = Valcell
Workbooks(monfichier).Activate 'Active le fichier source
Sheets("sheet1").Select
Sheets("sheet1").Range("N" & i).Value = True
Else
GoTo suivant 'Si c'est pas FAUX (VRAI), passe à la ligne suivante
End If
suivant:
Next i |