Vba

milawlolan -  
 milawlolan -
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

2 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, peux-tu partager ton programme avec un if qui bloque?
    0
  2. milawlolan
     
    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
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      deux 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.
      0
    2. milawlolan
       
      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...
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > milawlolan
         
        ainsi?
        jour = InputBox("date") 
        If Not IsDate(jour) Then 
            MsgBox ("veuillez saisir une date") 
        End If
        0
      2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > milawlolan
         
        je suggère d’arrêter d'utiliser Select. exemple:
        Range("a" & 1 + valeurdate) = jour
        0
    3. milawlolan
       
      je vais faire comme tu dis. merci beaucoup pour ta réponse
      0