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

2 réponses

  1. Contributeur Ambassadeur
    bonjour, peux-tu partager ton programme avec un if qui bloque?
    0
    1. 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. Contributeur Ambassadeur
        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. 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
      3. Contributeur Ambassadeur
        @milawlolanainsi?
        jour = InputBox("date") 
        If Not IsDate(jour) Then 
            MsgBox ("veuillez saisir une date") 
        End If
        0
      4. Contributeur Ambassadeur
        @milawlolanje suggère d’arrêter d'utiliser Select. exemple:
        Range("a" & 1 + valeurdate) = jour
        0
      5. je vais faire comme tu dis. merci beaucoup pour ta réponse
        0