Vba
Bonjour,
Je suis novice en vba et j'aimerais qu'au fur et à mesure que je remplis des lignes, le tableau se fasse automatiquement. J'essaie d'utiliser if mais ça bloque. Est-ce que quelqu'un peut m'aider? Merci d'avance
Je suis novice en vba et j'aimerais qu'au fur et à mesure que je remplis des lignes, le tableau se fasse automatiquement. J'essaie d'utiliser if mais ça bloque. Est-ce que quelqu'un peut m'aider? Merci d'avance
2 réponses
-
Contributeur Ambassadeurbonjour, peux-tu partager ton programme avec un if qui bloque?
-
toto = InputBox("date")
tata = InputBox("intitulé")
titi = InputBox("CQ ou CB")
tutu = InputBox("débit")
momo = InputBox("crédit")
valeurdate = Application.WorksheetFunction.CountA(Range("a:a"))
'range (r[+1]c)).select
'range("a2").Select
Range("a" & 1 + valeurdate).Select
Selection = toto
If Not IsDate(toto) Then
MsgBox ("veuillez saisir une date")
End If
Range("b" & 1 + valeurdate).Select
Selection = tata
Range("c" & 1 + valeurdate).Select
Selection = titi
selelection = UCase(titi)
'majuscule
'Range("c" & 1 + valeurcqcb).Select
'Selection.Value = UCase(titi)
Range("d" & 1 + valeurdate).Select
Selection = -tutu
Range("d" & 1 + valeurdate).Select
Selection.Font.Color = RGB(248, 16, 16)
If Not IsNumeric(tutu) Then
MsgBox ("vous devez saisir un nombre")
End If
Range("e" & 1 + valeurdate).Select
Selection = momo
Selection.Font.Color = RGB(8, 148, 47)
If Not IsNumeric(momo) Then
MsgBox ("vous devez saisir un nombre")
End If-
Contributeur Ambassadeurdeux choses à faire, avant tout:
1) ajouter "option explicit" en début de module
2) utiliser des noms compréhensibles pour les variables, des noms qui aident à comprendre à quoi servent ces variables.
ensuite, quand tu auras corrigé cela, poste à nouveau ton code, en expliquant quel "if" bloque. -
Option Explicit
Sub entree()
Dim jour As Date
Dim intitulé As String
Dim moyen_paiement As String
Dim dépense As Currency
Dim versement As Currency
Dim valeurdate As Double
jour = InputBox("date")
intitulé = InputBox("intitulé")
moyen_paiement = InputBox("CQ ou CB")
dépense = InputBox("débit")
versement = InputBox("crédit")
valeurdate = Application.WorksheetFunction.CountA(Range("a:a"))
'range (r[+1]c)).select
'range("a2").Select
Range("a" & 1 + valeurdate).Select
Selection = jour
If Not IsDate(jour) Then
MsgBox ("veuillez saisir une date")
End If
Range("b" & 1 + valeurdate).Select
Selection = intitulé
Range("c" & 1 + valeurdate).Select
UCase (moyen_paiement)
'majuscule
'Range("c" & 1 + valeurcqcb).Select
'Selection.Value = UCase(titi)
Range("d" & 1 + valeurdate).Select
Selection = -dépense
Range("d" & 1 + valeurdate).Select
Selection.Font.Color = RGB(248, 16, 16)
If Not IsNumeric(dépense) Then
MsgBox ("vous devez saisir un nombre")
End If
Range("e" & 1 + valeurdate).Select
Selection = versement
Selection.Font.Color = RGB(8, 148, 47)
If Not IsNumeric(versement) Then
MsgBox ("vous devez saisir un nombre")
End If
en fait, par exemple, si je prends l'inputbox date, je peux entrer n'importe quoi. vba continue son déroulement d'inputbox et après le dernier, il fait mon message d'erreur sue la date. Moi j'aimerais que le message apparaisse juste après l'erreur de date dans l'inputbox. Pas sure d'être très claire... -
Contributeur Ambassadeur@milawlolanainsi?
jour = InputBox("date") If Not IsDate(jour) Then MsgBox ("veuillez saisir une date") End If -
-
-