CyberNeo99
XLDnaute Occasionnel
Bonjour à tous,
J'ai trouvé une solution au problème que j'avais mais lorsque je l'applique à mon formulaire j'ai une erreur d'exécution 1004 qui dit "Impossible de lire la propriété VLookup de la classe WorkSheetFunction". Je joint le fichier pour lequel tous fonctionne bien, il fait exactement ce que je veux. Voici le code pour lequel j'ai mon erreur
If Application.Intersect(Target, Range("G35:G74")) Is Nothing Then Exit Sub 'limite l'action a la plage G35:G74
If Selection.Cells.Count > 1 Then Exit Sub 'limite l'action a une seule cellule
If Target.Value = "" Then 'condition : si la cellule est effacée
Target.Offset(0, 14).Value = "" 'efface la cellule de la colonne D
Else 'sinon
For I = 35 To 74
If Sheets("Détail projet").Cells(I, 18) < Application.WorksheetFunction.VLookup(Sheets("Détail projet").Cells(I, 7), Sheets("Prévisions listées").Range("A2:V101"), 9, False) - (0.1 * (Application.WorksheetFunction.VLookup(Sheets("Détail projet").Cells(I, 7), Sheets("Prévisions listées").Range("A2:V101"), 9, False))) Then
Sheets("Détail projet").Cells(I, 21) = Application.WorksheetFunction.VLookup(Sheets("Détail projet").Cells(I, 7), Sheets("Prévisions listées").Range("A2:V101"), 19, False)
Else
If Sheets("Détail projet").Cells(I, 18) > Application.WorksheetFunction.VLookup(Sheets("Détail projet").Cells(I, 7), Sheets("Prévisions listées").Range("A2:V101"), 9, False) + (0.1 * (Application.WorksheetFunction.VLookup(Sheets("Détail projet").Cells(I, 7), Sheets("Prévisions listées").Range("A2:V101"), 9, False))) Then
Sheets("Détail projet").Cells(I, 21) = Application.WorksheetFunction.VLookup(Sheets("Détail projet").Cells(I, 7), Sheets("Prévisions listées").Range("A2:V101"), 20, False)
Else
Sheets("Détail projet").Cells(I, 21) = Application.WorksheetFunction.VLookup(Sheets("Détail projet").Cells(I, 7), Sheets("Prévisions listées").Range("A2:V101"), 18, False)
End If
End If
Next
End If
End Sub
J'ai essayé d'enlever la partie WorksheetFunction pour ne laisser que le VLookup et il me sort une autre erreur de Type 13 incompatibilité. L'erreur semble être dans le code en rouge mais en fait le reste est similaire donc si il y a une solution pour régler le code en rouge il suffira d'appliquer cette solution au reste.
J'ai beau me creusé la tête regardé sur Internet je ne toruve rien. Je ne sais pas si le fait de changer la partie de code Cells(I, 18) par exemple par un code du même type pourrait changer quelque chsoe. Il n'arrive pas à lire la donnée dans le tableau je crois.... Il y a peut être une information qui peut vous aidez le tableau où il va lire la données, il est protégé. J'ai pourtant mis le code VBA pour enlever la protection et la remettre et j'ai toujours une erreur.
Je suis désespéré. Si qqu peut me donner une piste ou encore mieux trouver une solution je serais aux anges....
Grand Merci à l'avance
Neo
J'ai trouvé une solution au problème que j'avais mais lorsque je l'applique à mon formulaire j'ai une erreur d'exécution 1004 qui dit "Impossible de lire la propriété VLookup de la classe WorkSheetFunction". Je joint le fichier pour lequel tous fonctionne bien, il fait exactement ce que je veux. Voici le code pour lequel j'ai mon erreur
If Application.Intersect(Target, Range("G35:G74")) Is Nothing Then Exit Sub 'limite l'action a la plage G35:G74
If Selection.Cells.Count > 1 Then Exit Sub 'limite l'action a une seule cellule
If Target.Value = "" Then 'condition : si la cellule est effacée
Target.Offset(0, 14).Value = "" 'efface la cellule de la colonne D
Else 'sinon
For I = 35 To 74
If Sheets("Détail projet").Cells(I, 18) < Application.WorksheetFunction.VLookup(Sheets("Détail projet").Cells(I, 7), Sheets("Prévisions listées").Range("A2:V101"), 9, False) - (0.1 * (Application.WorksheetFunction.VLookup(Sheets("Détail projet").Cells(I, 7), Sheets("Prévisions listées").Range("A2:V101"), 9, False))) Then
Sheets("Détail projet").Cells(I, 21) = Application.WorksheetFunction.VLookup(Sheets("Détail projet").Cells(I, 7), Sheets("Prévisions listées").Range("A2:V101"), 19, False)
Else
If Sheets("Détail projet").Cells(I, 18) > Application.WorksheetFunction.VLookup(Sheets("Détail projet").Cells(I, 7), Sheets("Prévisions listées").Range("A2:V101"), 9, False) + (0.1 * (Application.WorksheetFunction.VLookup(Sheets("Détail projet").Cells(I, 7), Sheets("Prévisions listées").Range("A2:V101"), 9, False))) Then
Sheets("Détail projet").Cells(I, 21) = Application.WorksheetFunction.VLookup(Sheets("Détail projet").Cells(I, 7), Sheets("Prévisions listées").Range("A2:V101"), 20, False)
Else
Sheets("Détail projet").Cells(I, 21) = Application.WorksheetFunction.VLookup(Sheets("Détail projet").Cells(I, 7), Sheets("Prévisions listées").Range("A2:V101"), 18, False)
End If
End If
Next
End If
End Sub
J'ai essayé d'enlever la partie WorksheetFunction pour ne laisser que le VLookup et il me sort une autre erreur de Type 13 incompatibilité. L'erreur semble être dans le code en rouge mais en fait le reste est similaire donc si il y a une solution pour régler le code en rouge il suffira d'appliquer cette solution au reste.
J'ai beau me creusé la tête regardé sur Internet je ne toruve rien. Je ne sais pas si le fait de changer la partie de code Cells(I, 18) par exemple par un code du même type pourrait changer quelque chsoe. Il n'arrive pas à lire la donnée dans le tableau je crois.... Il y a peut être une information qui peut vous aidez le tableau où il va lire la données, il est protégé. J'ai pourtant mis le code VBA pour enlever la protection et la remettre et j'ai toujours une erreur.
Je suis désespéré. Si qqu peut me donner une piste ou encore mieux trouver une solution je serais aux anges....
Grand Merci à l'avance
Neo
Pièces jointes
-
Insertion de formule dans une cellule si autre cellule non vide par code VBA v4.xls32 KB · Affichages: 77
-
Insertion de formule dans une cellule si autre cellule non vide par code VBA v4.xls32 KB · Affichages: 93
-
Insertion de formule dans une cellule si autre cellule non vide par code VBA v4.xls32 KB · Affichages: 93