Excel : Afficher date mise à jour en VBA sur plusieurs lignes

Résolu/Fermé
Tibooo Messages postés 3 Date d'inscription mardi 7 juin 2016 Statut Membre Dernière intervention 8 juin 2016 - 7 juin 2016 à 15:26
Tibooo Messages postés 3 Date d'inscription mardi 7 juin 2016 Statut Membre Dernière intervention 8 juin 2016 - 8 juin 2016 à 08:38
Bonjour à tous et avant tout merci pour tous les sujets que comporte votre forum et qui m'ont ôter une épine du pied plus d'une fois,

Je suis entrain de faire un tableau excel avec des tarifs de câbles qu'on utilise fréquemment par fournisseurs (je suis électricien). Comme le prix du câble varie en fonction du cours du cuivre, je veux avoir mes prix et la date de mise à jour pour savoir si le prix affiché est fiable ou s'il faut faire une consultation pour avoir des prix plus récents.
Je veux afficher sur ma ligne 5 les différents type de câbles, sur ma ligne 6 le nom du fournisseur fusionné sur la longueur, sur ma ligne 7 les prix pour chaque câble rentré à la main et sur ma ligne 8 la date de mise à jour du prix affiché. Jusque là, tout va bien j'ai trouvé grâce à un sujet sur votre forum cette formule qui marche très bien :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim col As Byte

If Intersect(Target, Range("B7:V7")) Is Nothing Or Target.Count > 1 Then: Exit Sub
col = Target.Column
Cells(8, col) = Format(Date, "mm/dd/yy")

End Sub


Le soucis, c'est quand je m'attaque au 2e fournisseur. J'ai mon fournisseur sur la ligne 9, le prix sur la ligne 10 et la date de MàJ sur la ligne 11. J'ai essayé ça :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim col As Byte

If Intersect(Target, Range("B7:V7")) Is Nothing Or Target.Count > 1 Then: Exit Sub
col = Target.Column
Cells(8, col) = Format(Date, "mm/dd/yy")
If Intersect(Target, Range("B10:V10")) Is Nothing Or Target.Count > 1 Then: Exit Sub
col = Target.Column
Cells(11, col) = Format(Date, "mm/dd/yy")

End Sub


mais ça ne marche pas, la première marche toujours très bien, mais il ne se passe rien dans ma ligne 11 quand je tape un prix dans la ligne 10.
j'ai essayé avec ElseIf, j'ai un message d'erreur, j'ai essayé Else tout seul entre les 2, j'ai essayé de mettre EndIf mais ça fait égament un emssage d'erreur (j'ai pas compris pourquoi par contre...) j'ai essayé de mettre ma deuxième formule après le Then de la première formule, j'ai essayé de faire 2 Worksheet_Change ça ne marche évidemment pas, j'ai tenté de mettre un And entre les 2 mais j'ai vu que ça ne se fait pas. Je ne sais pas s'il me manque juste un petit mot pour que la 2e soit prise en compte ou s'il faut passer par des macros pour les faire s'enchainer l'une après l'autre quand l'une n'est pas validée.
Pour résumer ce que j'essaie de faire c'est
"Si quelque chose dans B7:V7 alors date dans B8 et Si quelque chose dans B10:V10 alors date dans B11, etc... pour tous mes fournisseurs."

Merci d'avance et bonne journée
A voir également:

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
7 juin 2016 à 16:58
suite au MP
Mettre le classeur sans données confidentielles en pièce jointe sur https://www.cjoint.com/
et coller le raccourci par un clic droit sur le lien proposé dans le message de réponse

Dans l’attente

1
Tibooo Messages postés 3 Date d'inscription mardi 7 juin 2016 Statut Membre Dernière intervention 8 juin 2016
7 juin 2016 à 17:02
Bonjour,

Merci pour la réponse rapide :)

https://www.cjoint.com/c/FFhpbEdNqmc
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310 > Tibooo Messages postés 3 Date d'inscription mardi 7 juin 2016 Statut Membre Dernière intervention 8 juin 2016
Modifié par michel_m le 7/06/2016 à 17:34
Private Sub Worksheet_Change(ByVal Target As Range)
Dim col As Byte
If Not Intersect(Target, Range("B7:AD7, B10:AD10, B13:AD13,B16:AD16")) Is Nothing Then
col = Target.Column
Target.Offset(1, 0) = Format(Date, "mm/dd/yy")
End If
End Sub
...
0
Tibooo Messages postés 3 Date d'inscription mardi 7 juin 2016 Statut Membre Dernière intervention 8 juin 2016 > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
8 juin 2016 à 08:38
Merveilleux !! Merci infiniment !
Il va falloir que je me fasse des cours de VBA moi...
0