Difficulté à écrire une macro de type "Fonction SI"

piamibi

XLDnaute Nouveau
Bonjour à tous,
J'essaie, en vain, d'écrire une macro qui me permette un suivi mensuel à partir d'une seule base de donnée tout en figeant les valeurs à chaque changement de date
Pour mieux comprendre ma demande, le plus simple serait d'ouvrir le fichier joint.
En vous remerciant par avance de votre aide
Bon dimanche
Michel
*********
 

Pièces jointes

  • Test recalage date.xls
    16.5 KB · Affichages: 52

pierrejean

XLDnaute Barbatruc
Re : Difficulté à écrire une macro de type "Fonction SI"

bonjour piamibi

teste ceci

Code:
Sub test()
If Format(Sheets("BDD").Range("A1"), "mmmm") = LCase(Sheets("Suivi").Range("F1")) Then
Sheets("Suivi").Range("F3").FormulaLocal = "=BDNBVAL(BDD!$A$2:$B65536;BDD!A2;$N$3:$N$4)"
Else
Sheets("Suivi").Range("F3").FormulaLocal = Sheets("Suivi").Range("F3").Value
End If
End Sub
 

piamibi

XLDnaute Nouveau
Re : Difficulté à écrire une macro de type "Fonction SI"

pierrejean à dit:
bonjour piamibi

teste ceci

Code:
Sub test()
If Format(Sheets("BDD").Range("A1"), "mmmm") = LCase(Sheets("Suivi").Range("F1")) Then
Sheets("Suivi").Range("F3").FormulaLocal = "=BDNBVAL(BDD!$A$2:$B65536;BDD!A2;$N$3:$N$4)"
Else
Sheets("Suivi").Range("F3").FormulaLocal = Sheets("Suivi").Range("F3").Value
End If
End Sub

Merci pierrejean,

Cela marche parfaitement et je t'en remercie beaucoup. Néammoins, je n'ai pas pousser ma reflexion suffisamment loin. Je viens de m'apercevoir que cela oblige à utiliser autant de macro que de mois existant pour passer de l'un à l'autre. Peut-être est-il mieux de retranscrire cette macro sous forme de formule Excel si toutefois cela est posible ?

Avec toutes mes excuses pour ce manquement.
@+
Michel
 

pierrejean

XLDnaute Barbatruc
Re : Difficulté à écrire une macro de type "Fonction SI"

re

voila une version automatisée

teste en modifiant A1 dans BDD et retour en suivi

les codes:

Code:
Private Sub Worksheet_Activate()
  Call test
End Sub
 
Sub test()
For n = 1 To 12
If Format(Sheets("BDD").Range("A1"), "mmmm") = LCase(Sheets("Suivi").Cells(1, n).Value) Then
Sheets("Suivi").Cells(3, n).FormulaLocal = "=BDNBVAL(BDD!$A$2:$B65536;BDD!A2;$N$3:$N$4)"
Else
Sheets("Suivi").Cells(3, n).FormulaLocal = Sheets("Suivi").Cells(3, n).Value
End If
Next n
End Sub
 

Pièces jointes

  • Test_recalage_date.xls
    30.5 KB · Affichages: 38

piamibi

XLDnaute Nouveau
Re : Difficulté à écrire une macro de type "Fonction SI"

Chapeau Pierrejean,

Tu m'as fait gagner énormément de temps car je ne suis pas sûr que j'y serai arrivé tout seul.
Il me reste maintenant à adapter la macro pour qu'elle puisse traiter le reste des lignes de mon tableau

Mille fois merci
Michel
********
 

Discussions similaires

Statistiques des forums

Discussions
312 248
Messages
2 086 594
Membres
103 250
dernier inscrit
keks974