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

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 !

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

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

Discussions similaires

Retour