Entrée de string conditionnelle dans une cellule en fonction de l'input de l'user

Cela suit une question précédente où j'ai demandé comment développer une input box qui exigeait que datatables soient inputs dans un format spécifique par l'user (p. Ex., Q4 2010)

Je dois maintenant prendre le premier 2 caractère de l'input de l'user (toujours Q1, Q2, Q3 ou Q4) et modifier le text dans une autre cellule en fonction du résultat. Plus précisément, si l'user entre une string commençant par Q1 ou Q3, j'ai besoin de copyr <insert text1> dans une cellule dans Sheet3 , et s'ils entrent Q2 ou Q4, il copy <insert text2> dans la même cellule.

Je n'ai aucune idée de la façon de considérer seulement une partie d'une input, donc toute aide est la bienvenue 🙂

Vous pourriez essayer de remplir A1 d'une feuille appelée Sheet3 avec les deux cordes

[ Mis à jour selon la requête msgbox demandant que l'input de l'user sur un format spécifique soit à l'épreuve des balises à l' aide d'expressions régulières]

 Option Explicit Sub Rattle_and_hmmmm2() Dim strReply As Ssortingng Dim strTitle As Ssortingng Dim objRegex As Object Dim objRegMC As Object Set objRegex = CreateObject("vbscript.regexp") With objRegex .ignorecase = True .Pattern = "^Q([1-4])\s20[10-20]{2}$" Do If strReply <> vbNullSsortingng Then strTitle = "Please retry" strReply = Application.InputBox("Enter period (format: Q4 2010) to update, or hit enter to escape", strTitle, "Q" & Int((Month(Now()) - 1) / 3) + 1 & " " & Year(Now()), , , , , 2) If strReply = "False" Then MsgBox "User hit cancel, exiting code", vbCritical Exit Sub End If Loop Until .test(strReply) Set objRegMC = .Execute(strReply) End With Select Case objRegMC(0).submatches(0) Case 2, 4 Sheets("Sheet3").[a1] = "insert text2" Case 1, 3 Sheets("Sheet3").[a1] = "insert text1" End Select Sheets("Sheet1").[b14].Value = UCase$(strReply) End Sub