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

  • Initiateur de la discussion Initiateur de la discussion piamibi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

piamibi

Guest
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

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

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
********
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
814
Réponses
15
Affichages
2 K
Compte Supprimé 979
C
Retour