Erreur importation des données

Bonjour,

Ce code me permet d'importer des données dans un fichier excel d'une autre feuille excel si dans le cas où la rangée AQ = XX ou YY

Option Explicit
Option Base 1
'--------
Sub Importdatav2()
Dim Source As Workbook, Dercol As Integer
Dim Nbre As Integer, Tablo, Cptr As Integer, derlig As Integer, Lig As Integer, Col As Integer
Dim FichiersAOuvrir, I As Integer

  Application.ScreenUpdating = False

  FichiersAOuvrir = Application.GetOpenFilename(, , , , True)
  If IsArray(FichiersAOuvrir) Then
    For I = LBound(FichiersAOuvrir, 1) To UBound(FichiersAOuvrir, 1)
      Set Source = Application.Workbooks.Open(FichiersAOuvrir(I), , True)
      With Sheets("Workload - Charge de travail")
       Dercol = Cells(2, Columns.Count).End(xlToLeft).Column
        Nbre = Application.CountIf(.Columns("AQ"), "YY", '' XX'')
        ReDim Tablo(Nbre, Dercol)
        Lig = 1
        For Cptr = 1 To Nbre
          Lig = .Columns("AQ").Find("XX",'' YY'' .Cells(Lig, "AQ"), xlValues).Row
          For Col = 1 To Dercol

            Tablo(Cptr, Col) = .Cells(Lig, Col).FormulaLocal
          Next Col
        Next Cptr
      End With
      Source.Close False

 With ThisWorkbook.Sheets("Sheet1")
        derlig = .Range("A" & Rows.Count).End(xlUp).Row + 1 'premiere cellules vide colonne A
         .Range("A" & derlig).Resize(Cptr, Dercol) = Tablo
        '.Activate
     End With

    Next I
  Else
    MsgBox "Aucun choix"
  End If
End Sub

J'ai une erreur ici

.Range("A" & derlig).Resize(Cptr, Dercol) = Tablo 

voici mon message d'erreur :

Method 'Resize' of object 'Range' failed

aussi j'aimerais bien savoir si c'est possible de selectionner plusieurs fichiers excel à la fois au moment de l'imporation ?

Merci

Bonjour,

J'ai trouvé des erreurs de compilation dans ton code. En tout cas, je te propose celui ci-dessous. Pour ce qui concerne

la sélection multiple, utilise Application.FileDialog (msoFileDialogOpen).

  Sub Importdatav2()
  Dim Source As Workbook
  Dim FichiersAOuvrir, I As Integer, nb_col As Integer, nb_lig As Integer
  Dim ligne As Range, lignes_à_importer As Object

  Application.ScreenUpdating = False

  FichiersAOuvrir = Application.GetOpenFilename(, , , , True)
  If IsArray(FichiersAOuvrir) Then
    For I = LBound(FichiersAOuvrir, 1) To UBound(FichiersAOuvrir, 1)
        Set Source = Application.Workbooks.Open(FichiersAOuvrir(I), , True)

        Set lignes_à_importer = CreateObject("System.Collections.Arraylist")
        With Sheets("Workload - Charge de travail").UsedRange        'plage utilisée
           nb_col = .Columns.Count
          For Each ligne In .Rows
              If ligne.Columns("AQ") = "XX" Or ligne.Columns("AQ") = "YY" Then
                  lignes_à_importer.Add (ligne.Formula)
              End If
          Next
        End With

        Source.Close False

        With ThisWorkbook.Sheets("Sheet1").UsedRange     'plage utilisée
             nb_lig = lignes_à_importer.Count
            .Offset(1).Resize(nb_lig, nb_col).Formula = Application.Transpose(Application.Transpose(lignes_à_importer.ToArray))
        End With
        Set lignes_à_importer = Nothing

    Next I

  Else
    MsgBox "Aucun choix"

  End If

Merci Beaucoup pour ton initiative y'a t-il une façon d'afficher un message d'erreur ou quitter Sub dans le cas ou l'utilisateur choisira un fichier qui ne respecte pas les conditions qui ont été mises en vigeur , pour le moment cela m'enméne a une erreur de codage.

Bonsoir,

Qu'entends-tu exactement par non respect des conditions de mise en vigueur ? S'il s'agit d'une condition par exemple sur les extensions de fichier, la propriété Filters de Application.FileDialog permet de restreindre le choix offert à l'utilisateur.

Rechercher des sujets similaires à "erreur importation donnees"