Comment afficher un message box?

Résolu
Bonjour,
Désolée le libellet de mon sujet ne dit pas clairement mon problème mais plus de place ...bref
j'ai plusieurs modules dans mon code où dans le getopenfilename j'autorise la sélection de 2 fichiers seulement j'aimerai afficher un message d'alerte si un seul est sélectionné ou rien du tout au lieu d'avoir un bug mais je ne trouve pas comment faire en faisant comme d'habitude (c'est-à-dire lorsque c'est un seul fichier sélectionné et mettant le msgBox) j'ai l'erreur type mismatch.

Merci d'avance pour votre aide.

5 réponses

  1. Re,

    Mieux comme ca:
    Sub FileName()
        Dim FichiersAOuvrir
        FichiersAOuvrir = Application.GetOpenFilename(, , , , True)
        If VarType(FichiersAOuvrir) <> vbBoolean Then
            If IsArray(FichiersAOuvrir) And UBound(FichiersAOuvrir, 1) > 1 Then
                For i = LBound(FichiersAOuvrir, 1) To UBound(FichiersAOuvrir, 1)
                    'Ouvre les fichiers sélectionnés
                    Workbooks.Open FichiersAOuvrir(i)
                Next i
            Else
                MsgBox "Files not Found. Choose 2 files", vbExclamation, "!! Warning !!"
            End If
        Else
            MsgBox "No chosen file", vbExclamation, "!! WARNING !!"
        End If
    End Sub
    1. Super merci
  2. Merci à tous les deux et surtout pour vos promptes réactions,
    j'ai finalement utilisé celui de f894009 parce que je comprenais mieux les les instructions et commandes qu'il a utilisées, merci yg_be(je suis disposée à comprendre si tu veux bien m'expliquer, je suis là pour apprendre).
    Et pour l'erreur dont yg_be parlait je ne l'ai pas eu quand j'ai compilé.

    Merci encore à vous.
    1. Bonjour a vous deux,

      Sub FileName()
      FichiersAOuvrir = Application.GetOpenFilename(, , , , True)
      If IsArray(FichiersAOuvrir) And UBound(FichiersAOuvrir, 1) > 1 Then
      For i = LBound(FichiersAOuvrir, 1) To UBound(FichiersAOuvrir, 1)
          'Ouvre les fichiers sélectionnés
          Workbooks.Open FichiersAOuvrir(i)
      Next i
      Else
       MsgBox "Files not Found. Choose 2 files", vbExclamation, "!! Warning !!"
      End If
      End Sub
      1. Contributeur
        bonjour, cela donne type "mismatch" dans le cas où getopenfilename retourne un boolean plutôt qu'une array de variants.
      2. @yg_beRe,
        Ok, sur annuler selection fichier
    2. Contributeur
      et ainsi?
       Dim  Quelfichier() As Variant
      Quelfichier = Application.GetOpenFilename("Excel Files (*.csv), *.csv", 2, "Sélection des fichiers", , True)
      Dim ok As Boolean
         ok = False    
          If (VarType(Quelfichier) = vbArray + vbVariant) Then
              If UBound(Quelfichier, 1) - LBound(Quelfichier, 1) + 1 = 2 Then
                  ok = True
              End If
          End If
          If Not ok Then
              'Displaying a message if file not choosed in the above step
              MsgBox "Files not Found. Choose 2 files", vbExclamation, "!! Warning !!"
              Exit Sub
         End If
        1. merci f894009,
          mais j'ai toujours l'erreur type mismatch à moins que je ne l'ai mal adapté à mon code

          Dim Quelfichier() As Variant
          Quelfichier = Application.GetOpenFilename("Excel Files (*.csv), *.csv", 2, "Sélection des fichiers", , True)

          If Not Array(Quelfichier) Then
          'Displaying a message if file not choosed in the above step
          MsgBox "Files not Found. Choose 2 files", vbExclamation, "!! Warning !!"
          Exit Sub
          End If