Changer le format de l'intersection ligne colonne selon réponses d'une Userform

TiPouCostaud

XLDnaute Nouveau
Bonjour le forum,

Je cherche depuis deux jours et je ne trouve pas la solution à mon souci.

Dans le fichier ci-joint, lorsqu'un collègue est prêt à faire facturer un projet, il appuie sur le bouton "facture". Ce bouton charge une userform qui demande le numéro de projet et le mois à facturer. En cliquant sur envoyer courriel, le courriel est généré avec le contenu déjà écrit, il ne reste qu'à valider l'info et envoyer. Cette partie de ma macro fonctionne à merveille. Mon souci est que par la suite, je veux que l'info inscrite dans le textbox1 et le combobox1 de ma userform servent à trouver l'intersection ligne/colonne et change le format de la cellule.

Exemple, je demande de facturer l'OMP # 130201406 pour le mois de janvier. Je veux donc, que les cellules I21 et J21 soit changé de format.

Voici mon fichier qui me casse la tête.
 

Pièces jointes

  • Trouver intersection.xlsm
    73.6 KB · Affichages: 48

Iznogood1

XLDnaute Impliqué
Re : Changer le format de l'intersection ligne colonne selon réponses d'une Userform

Salut,

Tu peux essayer ça :
Code:
Option Explicit

Sub Demo()
  Dim rInter As Range
  Set rInter = FindInterSection("130201406", "Janvier")
  If Not rInter Is Nothing Then
    MsgBox "Lintersection est " & rInter.Address, vbOKOnly Or vbInformation
  Else
    MsgBox "Intersection introuvable", vbOKOnly Or vbCritical
  End If
End Sub

Function FindInterSection(OMP As String, Mois As String) As Range
  Dim rOMP As Range
  Dim rMois As Range
  
  Set rOMP = Feuil3.[E:E].Find(What:=OMP)
  Set rMois = Feuil3.[A3].EntireRow.Find(What:=Mois)
  Set FindInterSection = Intersect(rOMP.EntireRow, rMois.EntireColumn)
End Function

Évidemment tu peux faire plus compact :
Code:
Dim rInter As Range
 Set rInter = Intersect(Feuil3.[E:E].Find(What:="130201406").EntireRow, Feuil3.[A3].EntireRow.Find(What:="Janvier").EntireColumn)
 
Dernière édition:

TiPouCostaud

XLDnaute Nouveau
Re : Changer le format de l'intersection ligne colonne selon réponses d'une Userform

Salut Iznogood1,

Merci pour ta réponse. Le code me semble génial. Par contre, Set rInter = FindInterSection("130201406", "Janvier") Les informations ne sont pas toujours celles là. Elles dépendent des réponses de la Userform.
 

Iznogood1

XLDnaute Impliqué
Re : Changer le format de l'intersection ligne colonne selon réponses d'une Userform

Bien sûr !

Code:
Function FindInterSection(OMP As String, Mois As String) As Range
  Set rInter = FindInterSection(Feuil3.[E:E].Find(What:=OMP).EntireRow, Feuil3.[A3].EntireRow.Find(What:=Mois).EntireColumn)
End Func
 

TiPouCostaud

XLDnaute Nouveau
Re : Changer le format de l'intersection ligne colonne selon réponses d'une Userform

Je ne sais pas si c'est moi qui ne saisit pas mais ça ne fonctionne pas. La fonction utilisé seule trouve l'intersection, mais la macro en un tout ne fonctionne pas. Je veux que ça commence avec l'envoi du courriel et ensuite l'activation de la cellule de l'intersection.
 

TiPouCostaud

XLDnaute Nouveau
Re : Changer le format de l'intersection ligne colonne selon réponses d'une Userform

Quelqu'un a une solution pour moi. Le code seul fonctionne pour trouver l'intersection, mais je n'arrive pas à l'intégrer à ma macro pour faire le cycle complet.
 

Discussions similaires

Statistiques des forums

Discussions
312 204
Messages
2 086 198
Membres
103 153
dernier inscrit
SamirN