Formule IF dans VBA avec MsgBox
Résolu
Chairman_1512
Messages postés
11
Statut
Membre
-
Chairman_1512 Messages postés 11 Statut Membre -
Chairman_1512 Messages postés 11 Statut Membre -
J'ai besoin d'intégrer cette formule dans mon code VBA de sorte que les résultats ("Numéro "&J8&" valide","Numéro "&J8&" non valide"&CHAR(10)&"Veuillez saisir un numéro "&J8& " valide")) soient afficher dans un MsgBox
=IF(J9="","",IF(COUNTIF(OFFSET(Paramètres!F3,,MATCH(J8,Paramètres!G2:I2,0),25,),LEFT(J9,5)*1),"Numéro "&J8&" valide","Numéro "&J8&" non valide"&CHAR(10)&"Veuillez saisir un numéro "&J8& " valide"))
A SAVOIR
- La cellule (J8) contient le nom du réseau
- La cellule (J9), le numéro de téléhone en fonction du réseau sélection en J8.
Si le numéro saisi en J9 ne correspond pas au réseau en J8, afficher un message box "Numéro incoorect. Veuillez saisir un numéro [NOM RESEAU]. S'il correspond, passer à l'étape suivante
Le fichier: https://www.cjoint.com/c/KAAl7zcQIo4
=IF(J9="","",IF(COUNTIF(OFFSET(Paramètres!F3,,MATCH(J8,Paramètres!G2:I2,0),25,),LEFT(J9,5)*1),"Numéro "&J8&" valide","Numéro "&J8&" non valide"&CHAR(10)&"Veuillez saisir un numéro "&J8& " valide"))
A SAVOIR
- La cellule (J8) contient le nom du réseau
- La cellule (J9), le numéro de téléhone en fonction du réseau sélection en J8.
Si le numéro saisi en J9 ne correspond pas au réseau en J8, afficher un message box "Numéro incoorect. Veuillez saisir un numéro [NOM RESEAU]. S'il correspond, passer à l'étape suivante
Le fichier: https://www.cjoint.com/c/KAAl7zcQIo4
A voir également:
- Formule IF dans VBA avec MsgBox
- Formule si et - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Formule mathématique - Télécharger - Études & Formations
- Excel mise en forme conditionnelle formule - Guide
- Formule somme excel colonne - Guide
7 réponses
Bonjour,
Exemple de code à adapter et à compléter
Cdlt
Exemple de code à adapter et à compléter
Sub Test_Numero() Dim f1 As Worksheet, f2 As Worksheet Dim Reseau As String Dim Tel As Long Application.ScreenUpdating = False Set f1 = Sheets("Transfert_Argent") Set f2 = Sheets("Paramètres") Reseau = f1.Range("J8").Value Tel = Left(f1.Range("J9"), 5) * 1 Select Case Reseau Case Is = "Orange" col = 7 Case Is = "MTN" col = 8 Case Is = "Moov" col = 9 End Select Set t = f2.Columns(col).Find(Tel, lookat:=xlWhole) If Not t Is Nothing Then 'METTRE ICI, la suite de votre code si le numéro est correct Else MsgBox "Numéro incorrect. Veuillez saisir un numéro " & Reseau End If Set t = Nothing Set f1 = Nothing Set f2 = Nothing End Sub
Cdlt
Bonjour Frenchie,
Merci d'avoir réagi positivement à ma requête. Cela dit, j'ai djà une Sub(Bouton enrégistrer) pour enrégistrer les infos saisies donc le code est ci-dessous:
Sub Transact_Enregistrer()
With Sheet4
If .Range("J4").Value = Empty Then
MsgBox "Veuillez saisir la date", , vbCritical + vbOKOnly, "Erreur DATE!"
Range("J4").Select
Exit Sub
End If
With Sheet4
If .Range("J5").Value = Empty Then
MsgBox "Veuillez saisir l'heure", , vbCritical + vbOKOnly, "Erreur HEURE!"
Range("J5").Select
Exit Sub
End If
With Sheet4
If .Range("J6").Value = Empty Then
MsgBox "Veuillez sélectionner type transaction", vbCritical + vbOKOnly, "Erreur TYPE TRANSACTION!"
Range("J6").Select
Exit Sub
End If
With Sheet4
If .Range("J7").Value = Empty Then
MsgBox "Veuillez sélectionner type bénéficiaire", vbCritical + vbOKOnly, "Erreur TYPE BENEFICIAIRE!"
Range("J7").Select
Exit Sub
End If
With Sheet4
If .Range("J8").Value = Empty Then
MsgBox "Veuillez sélectionner type réseau", vbCritical + vbOKOnly, "Erreur TYPE RESEAU!"
Range("J8").Select
Exit Sub
End If
With Sheet4
If .Range("J9").Value = Empty Then
MsgBox "Veuillez saisir le numéro de téléphone avec l'indicatif 225", vbCritical + vbOKOnly, "Erreur INDICATIF!"
Range("J9").Select
Exit Sub
End If
With Sheet4
If .Range("J10").Value = Empty Then
MsgBox "Veuillez le montant de la transaction", vbCritical + vbOKOnly, "Erreur MONTANT TRANSACTION!"
Range("J10").Select
Exit Sub
End If
With Sheet4
If .Range("M5").Value = Empty Then
MsgBox "Veuillez saisir la référence de la transaction", vbCritical + vbOKOnly, "Erreur REF. TRANSACTION!"
Range("M5").Select
Exit Sub
End If
With Sheet4
If .Range("M6").Value = Empty Then
MsgBox "Veuillez saisir l'ID de la transaction", vbCritical + vbOKOnly, "Erreur ID TRANSACTION!"
Range("M6").Select
Exit Sub
End If
With Sheet4
If .Range("M7").Value = Empty Then
MsgBox "Veuillez saisir le numéro de reçu", vbCritical + vbOKOnly, "Erreur NUMERO RECU!"
Range("M7").Select
Exit Sub
End If
TransactRow = .Range("D1048567").End(xlUp).Row + 1 'First available Row
For TransactCol = 4 To 17
.Cells(TransactRow, TransactCol).Value = .Range(.Cells(14, TransactCol).Value).Value
Next TransactCol
.Shapes("TransactExist").Visible = msoCTrue
.Shapes("TransactNouv").Visible = msoFalse
.Range("E11").Value = False
End With
End With
End With
End With
End With
End With
End With
End With
End With
End With
End With
End Sub
Comment je pourrai intégrer ton code ici?
Cordialement
Merci d'avoir réagi positivement à ma requête. Cela dit, j'ai djà une Sub(Bouton enrégistrer) pour enrégistrer les infos saisies donc le code est ci-dessous:
Sub Transact_Enregistrer()
With Sheet4
If .Range("J4").Value = Empty Then
MsgBox "Veuillez saisir la date", , vbCritical + vbOKOnly, "Erreur DATE!"
Range("J4").Select
Exit Sub
End If
With Sheet4
If .Range("J5").Value = Empty Then
MsgBox "Veuillez saisir l'heure", , vbCritical + vbOKOnly, "Erreur HEURE!"
Range("J5").Select
Exit Sub
End If
With Sheet4
If .Range("J6").Value = Empty Then
MsgBox "Veuillez sélectionner type transaction", vbCritical + vbOKOnly, "Erreur TYPE TRANSACTION!"
Range("J6").Select
Exit Sub
End If
With Sheet4
If .Range("J7").Value = Empty Then
MsgBox "Veuillez sélectionner type bénéficiaire", vbCritical + vbOKOnly, "Erreur TYPE BENEFICIAIRE!"
Range("J7").Select
Exit Sub
End If
With Sheet4
If .Range("J8").Value = Empty Then
MsgBox "Veuillez sélectionner type réseau", vbCritical + vbOKOnly, "Erreur TYPE RESEAU!"
Range("J8").Select
Exit Sub
End If
With Sheet4
If .Range("J9").Value = Empty Then
MsgBox "Veuillez saisir le numéro de téléphone avec l'indicatif 225", vbCritical + vbOKOnly, "Erreur INDICATIF!"
Range("J9").Select
Exit Sub
End If
With Sheet4
If .Range("J10").Value = Empty Then
MsgBox "Veuillez le montant de la transaction", vbCritical + vbOKOnly, "Erreur MONTANT TRANSACTION!"
Range("J10").Select
Exit Sub
End If
With Sheet4
If .Range("M5").Value = Empty Then
MsgBox "Veuillez saisir la référence de la transaction", vbCritical + vbOKOnly, "Erreur REF. TRANSACTION!"
Range("M5").Select
Exit Sub
End If
With Sheet4
If .Range("M6").Value = Empty Then
MsgBox "Veuillez saisir l'ID de la transaction", vbCritical + vbOKOnly, "Erreur ID TRANSACTION!"
Range("M6").Select
Exit Sub
End If
With Sheet4
If .Range("M7").Value = Empty Then
MsgBox "Veuillez saisir le numéro de reçu", vbCritical + vbOKOnly, "Erreur NUMERO RECU!"
Range("M7").Select
Exit Sub
End If
TransactRow = .Range("D1048567").End(xlUp).Row + 1 'First available Row
For TransactCol = 4 To 17
.Cells(TransactRow, TransactCol).Value = .Range(.Cells(14, TransactCol).Value).Value
Next TransactCol
.Shapes("TransactExist").Visible = msoCTrue
.Shapes("TransactNouv").Visible = msoFalse
.Range("E11").Value = False
End With
End With
End With
End With
End With
End With
End With
End With
End With
End With
End With
End Sub
Comment je pourrai intégrer ton code ici?
Cordialement
A l'emplacement laissé (en remarque dans mon code), il suffit d'y coller le nom de la macro "Transact_Enregistrer" comme ci-dessous
Cdlt
Sub Test_Numero() Dim f1 As Worksheet, f2 As Worksheet Dim Reseau As String Dim Tel As Long Application.ScreenUpdating = False Set f1 = Sheets("Transfert_Argent") Set f2 = Sheets("Paramètres") Reseau = f1.Range("J8").Value Tel = Left(f1.Range("J9"), 5) * 1 Select Case Reseau Case Is = "Orange" col = 7 Case Is = "MTN" col = 8 Case Is = "Moov" col = 9 End Select Set t = f2.Columns(col).Find(Tel, lookat:=xlWhole) If Not t Is Nothing Then Transact_Enregistrer Else MsgBox "Numéro incorrect. Veuillez saisir un numéro " & Reseau End If Set t = Nothing Set f1 = Nothing Set f2 = Nothing End Sub
Cdlt
Bonjour,
Votre Macro "Transact_Enregistrer" est incluse dans le code que j'ai fourni à cet emplacement:
Il vous suffit simplement d'affecter la macro "Test_Numero" à votre bouton "Enregistrer". C'est tout.
Cdlt
Votre Macro "Transact_Enregistrer" est incluse dans le code que j'ai fourni à cet emplacement:
If Not t Is Nothing Then Transact_Enregistrer Else
Il vous suffit simplement d'affecter la macro "Test_Numero" à votre bouton "Enregistrer". C'est tout.
Cdlt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pour le message d'erreur, c'est qu'il manque la déclaration de la variable "Col".
Pour le reste, voici:
https://mon-partage.fr/f/aevjLGE0/
Le fichier étant assez volumineux, je l'ai enregistré avec l'extension "Xlxb", ce qui diminue fortement le nombre de kiloOctets, mais le fonctionnement reste le même.
Cdlt
Pour le reste, voici:
https://mon-partage.fr/f/aevjLGE0/
Le fichier étant assez volumineux, je l'ai enregistré avec l'extension "Xlxb", ce qui diminue fortement le nombre de kiloOctets, mais le fonctionnement reste le même.
Cdlt