Adapter if en while car possibilitées de deux résultats
Bonjour,
j'ai une macro qui me permet de récupérer des données financières dans ma base et fonctionnelle
la partie concernée ici:
If ((Bud(kBg, 1) = Prj(kRp, 1)) And (Prj(kRp, 13) = "Active" Or Prj(kRp, 13) = "Negociation")) Then
.Range("C" & kR) = Bud(kBg, 15)
.Range("D" & kR) = Bud(kBg, 6)
.Range("E" & kR) = Bud(kBg, 15) - Bud(kBg, 6) - Bud(kBg, 10)
.Range("F" & kR) = Bud(kBg, 10)
.Range("G" & kR) = Bud(kBg, 9)
.Range("G" & kR).NumberFormat = "0.00%"
End If
seulement voila je dois la modifier car je n'ai pas forcement qu'une ligne à reporter mais parfois deux désormais
aussi ce n'est plus un if mais un while que je pense devoir utiliser
mais comment l'indiquer afin de respecter la meme condition?
Merci par avance pour votre assistance
bonne journée
bonjour,
ce serait vraiment plus simple si tu nous mettais un classeur et des explications de ce que tu veux faire. (après 392 messages tu devrais l'avoir intégré)
Ici on doit deviner ce que représentent KBg, Krp, et KR et comment ils varient. mais à première vue pas besoin de modifier le if en while, seulement incrémenter Kr quand la condition est vraie.
Bonjour,
oui veuillez m'excuser:
Bud = Worksheets("Budget").ListObjects("T_Budget").DataBodyRange.Value
Prj = Worksheets("Projects").ListObjects("Projects").DataBodyRange.Value
kRp = 1 '--- n° ligne Projet
kBg = 1 '--- n° ligne Budget
If ((Bud(kBg, 1) = Prj(kRp, 1)) And (Prj(kRp, 13) = "Active" Or Prj(kRp, 13) = "Negociation")) Then
Si id du projet de l'onglet budget correspond à l'id projet de l'onglet projet et si l'id du projet à pour statut actif ou negociation
Do
If kBg < UBound(Bud) And Bud(kBg, 1) < Prj(kRp, 1) Then
kBg = kBg + 1
Else
Exit Do '--- sort de la boucle: n° projet atteint ou dépassé, ou dépassement plage
End If
Loop
If ((Bud(kBg, 1) = Prj(kRp, 1)) And (Prj(kRp, 13) = "Active" Or Prj(kRp, 13) = "Negociation")) Then
.Range("C" & kR) = Bud(kBg, 15)
.Range("D" & kR) = Bud(kBg, 6)
.Range("E" & kR) = Bud(kBg, 15) - Bud(kBg, 6) - Bud(kBg, 10)
.Range("F" & kR) = Bud(kBg, 10)
.Range("G" & kR) = Bud(kBg, 9)
.Range("G" & kR).NumberFormat = "0.00%"
End If
a défaut de pouvoir m'éclairer en l'état je préparerais un fichier exemple
merci par avance
Bonjour,
personne pour m'éclairer svp?
j'ai fais quelques tentatives sans succès...
En gros je ne sais pas comment mdofier le If ((Bud(kBg, 1) = Prj(kRp, 1)) And (Prj(kRp, 13) = "Active" Or Prj(kRp, 13) = "Negociation")) qui ne me renvoi qu'un seul résutlat car que dans certains cas je peux en avoir deux
avec while ca bug total e je suis obligé d'interrompe
avec for i=1 to 2 ca n'a aucun impact