Peu pas dire a ma macro si une lettre sortir
Résolu
benoit
-
benoit -
benoit -
Bonjour,
voici mon code, ce que j'aimerai est que si Rep = a rien alors sortir du sub mais j'ai essayé et cela ne marche pas et si vous avez une solution ou même pour améliorer mon code c avec plaisir...
' déclaration de variable
Dim Rep As Integer, Lig As Integer, Col As Integer
' demande le jour de la caisse
Rep = InputBox("quel est le jour du mois de caisse à réaliser ?", "JOUR", 0)
If Not 1 < Rep < 31 Then
Exit Sub
ElseIf Rep = 0 Then
Exit Sub
End If
' recherche la ligne correspondante au jour de caisse
Lig = 6: Col = 1
Do While Rep <> Cells(Lig, Col).Value
If Cells(Lig, Col) = "" Then
MsgBox "Référence introuvable"
Exit Sub
End If
Lig = Lig + 1
Loop
Merci
voici mon code, ce que j'aimerai est que si Rep = a rien alors sortir du sub mais j'ai essayé et cela ne marche pas et si vous avez une solution ou même pour améliorer mon code c avec plaisir...
' déclaration de variable
Dim Rep As Integer, Lig As Integer, Col As Integer
' demande le jour de la caisse
Rep = InputBox("quel est le jour du mois de caisse à réaliser ?", "JOUR", 0)
If Not 1 < Rep < 31 Then
Exit Sub
ElseIf Rep = 0 Then
Exit Sub
End If
' recherche la ligne correspondante au jour de caisse
Lig = 6: Col = 1
Do While Rep <> Cells(Lig, Col).Value
If Cells(Lig, Col) = "" Then
MsgBox "Référence introuvable"
Exit Sub
End If
Lig = Lig + 1
Loop
Merci
A voir également:
- Peu pas dire a ma macro si une lettre sortir
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Clavier iphone chiffre et lettre - Guide
- Caractere speciaux lettre - Guide
- Changer lettre disque dur - Guide
3 réponses
Salut le forum
Modifie ta condition de test
Mytå
Merci de donner suite à votre question, nous ne sommes pas des robots...
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
Modifie ta condition de test
Rep = InputBox("veuillez saisir le taux de change") If Rep = "" Or Not IsNumeric(Rep) Then MsgBox "Erreur !" Exit Sub Else If Rep < 1 Or Rep > 31 Then Exit Sub End If
Mytå
Merci de donner suite à votre question, nous ne sommes pas des robots...
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
salut,
j'ai éssayé cela ne fonctionne pas je te montre tout le code pour que tu vois ce que j'aimerai : ( ce que je veux se n'est pas le taux de change mais le jour de caisse) c'est mal présenté mais si tu le copi/cole dans VB cela sera plus lisible
'message d'accueil et date
datduJour = Date
MsgBox vbCr & "Nous somme le : " & vbCr & vbCr & " " & datduJour, vbInformation
' sélection onglet Cash-Paid out-Service
Sheets("Cash-Paid out-Service").Select
' déclaration de variable
Dim Rep As Integer, Lig As Integer, Col As Integer
' demande le jour de la caisse
Rep = InputBox("quel est le jour du mois de caisse à réaliser ?", "JOUR", 0)
JE VEUX QUE SI Rep = 0 OU "" OU AUTRE QUE DES CHIFFRES ALORS SORTIR DE LA MACRO ET SA NE MARCHE PAS
'If Rep = "" Or Not IsNumeric(Rep) Then
'MsgBox "Erreur !"
'Exit Sub
'Else
'If Rep < 1 Or Rep > 31 Then Exit Sub
'End If
' recherche la ligne correspondante au jour de caisse
Lig = 6: Col = 1
Do While Rep <> Cells(Lig, Col).Value
If Cells(Lig, Col) = "" Then
MsgBox "Référence introuvable"
Exit Sub
End If
Lig = Lig + 1
Loop
' demande le montant cash balance
Cells(Lig, Col + 1).Select
ActiveCell.FormulaR1C1 = InputBox("entrer le montant cash figurant sur la balance", "MONTANT CASH BALANCE", 0)
' demande le montant paid out et foreign currenc
Cells(Lig, Col + 2).Select
ActiveCell.FormulaR1C1 = InputBox("entrer le montant paid out figurant sur la balance", "MONTANT PAID OUT and FOREIGN CURRENCY BALANCE", 0)
' sélection onglet Cash&Devises
Sheets("Cash&Devises").Select
' demande le montant dans les enveloppes
Cells(Lig, Col + 1).Select
ActiveCell.FormulaR1C1 = InputBox("entrer le total de cash des enveloppes", "MONTANT ENVELOPPE", 0)
' demande le montant en euros des devises
Cells(Lig, Col + 2).Select
ActiveCell.FormulaR1C1 = InputBox("entrer le total des devises", "MONTANT DEVISE sans les paid out", 0)
' demande le montant des chèques
Cells(Lig, Col + 3).Select
ActiveCell.FormulaR1C1 = InputBox("entrer le total des chèques", "MONTANT CHEQUE", 0)
' sélection onglet de contôle
Sheets("Control").Select
' mise en couleur de la cellule de différence opéra et enveloppe
Cells(Lig, Col + 3).Select
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
' déclaration de variable pour bon fonctionnement
Dim colonne As Integer
' affectation de la cellule courante à la variable colonne
colonne = Cells(Lig, Col + 3).Value
' comparaison de la caisse si 0 caisse juste
If colonne <> 0# Then
Rep = MsgBox("problème en caisse vérifier les chiffres", vbCritical)
Else: Rep = MsgBox("caisse juste", vbInformation)
End If
' remise de la couleur d'origine
Cells(Lig, Col + 3).Select
With Selection.Interior
.ColorIndex = 15
.Pattern = xlSolid
End With
j'ai éssayé cela ne fonctionne pas je te montre tout le code pour que tu vois ce que j'aimerai : ( ce que je veux se n'est pas le taux de change mais le jour de caisse) c'est mal présenté mais si tu le copi/cole dans VB cela sera plus lisible
'message d'accueil et date
datduJour = Date
MsgBox vbCr & "Nous somme le : " & vbCr & vbCr & " " & datduJour, vbInformation
' sélection onglet Cash-Paid out-Service
Sheets("Cash-Paid out-Service").Select
' déclaration de variable
Dim Rep As Integer, Lig As Integer, Col As Integer
' demande le jour de la caisse
Rep = InputBox("quel est le jour du mois de caisse à réaliser ?", "JOUR", 0)
JE VEUX QUE SI Rep = 0 OU "" OU AUTRE QUE DES CHIFFRES ALORS SORTIR DE LA MACRO ET SA NE MARCHE PAS
'If Rep = "" Or Not IsNumeric(Rep) Then
'MsgBox "Erreur !"
'Exit Sub
'Else
'If Rep < 1 Or Rep > 31 Then Exit Sub
'End If
' recherche la ligne correspondante au jour de caisse
Lig = 6: Col = 1
Do While Rep <> Cells(Lig, Col).Value
If Cells(Lig, Col) = "" Then
MsgBox "Référence introuvable"
Exit Sub
End If
Lig = Lig + 1
Loop
' demande le montant cash balance
Cells(Lig, Col + 1).Select
ActiveCell.FormulaR1C1 = InputBox("entrer le montant cash figurant sur la balance", "MONTANT CASH BALANCE", 0)
' demande le montant paid out et foreign currenc
Cells(Lig, Col + 2).Select
ActiveCell.FormulaR1C1 = InputBox("entrer le montant paid out figurant sur la balance", "MONTANT PAID OUT and FOREIGN CURRENCY BALANCE", 0)
' sélection onglet Cash&Devises
Sheets("Cash&Devises").Select
' demande le montant dans les enveloppes
Cells(Lig, Col + 1).Select
ActiveCell.FormulaR1C1 = InputBox("entrer le total de cash des enveloppes", "MONTANT ENVELOPPE", 0)
' demande le montant en euros des devises
Cells(Lig, Col + 2).Select
ActiveCell.FormulaR1C1 = InputBox("entrer le total des devises", "MONTANT DEVISE sans les paid out", 0)
' demande le montant des chèques
Cells(Lig, Col + 3).Select
ActiveCell.FormulaR1C1 = InputBox("entrer le total des chèques", "MONTANT CHEQUE", 0)
' sélection onglet de contôle
Sheets("Control").Select
' mise en couleur de la cellule de différence opéra et enveloppe
Cells(Lig, Col + 3).Select
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
' déclaration de variable pour bon fonctionnement
Dim colonne As Integer
' affectation de la cellule courante à la variable colonne
colonne = Cells(Lig, Col + 3).Value
' comparaison de la caisse si 0 caisse juste
If colonne <> 0# Then
Rep = MsgBox("problème en caisse vérifier les chiffres", vbCritical)
Else: Rep = MsgBox("caisse juste", vbInformation)
End If
' remise de la couleur d'origine
Cells(Lig, Col + 3).Select
With Selection.Interior
.ColorIndex = 15
.Pattern = xlSolid
End With
Bonjour,
Au lieu de tester les 3 conditions (rep vide ou égal à 0 ou non numérique) en même temps, je te conseille de les faire l'une après l'autre. Pour éviter aussi des erreurs d'incompatibilité de type, je te conseille de déclarer rep en String (car issu d'une InputBox) et après les tests la transformer en Integer. Un peu comme ceci :
Au lieu de tester les 3 conditions (rep vide ou égal à 0 ou non numérique) en même temps, je te conseille de les faire l'une après l'autre. Pour éviter aussi des erreurs d'incompatibilité de type, je te conseille de déclarer rep en String (car issu d'une InputBox) et après les tests la transformer en Integer. Un peu comme ceci :
Dim rep As String rep = InputBox("quel est le jour du mois de caisse à réaliser ?", "JOUR", 0) If rep = "" Then MsgBox "Erreur type 1!" Exit Sub End If If Not IsNumeric(rep) Then MsgBox "Erreur type 2!" Exit Sub End If If CInt(rep) = 0 Then MsgBox "Erreur type 3!" Exit Sub End If If CInt(rep) < 1 Or CInt(rep) > 31 Then MsgBox "Erreur type 4!" Exit Sub End If