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 : 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
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
Partager