Débutant VBA - Erreur 13 incompatibilité de Type 13

Bonjour à tous,

Je suis débutante en VBA et je suis face à une erreur de compatibilité de type 13 que j'ai essayé de comprendre...sans succès pour le moment. (les Types de données me semblent ok, c'est peut-être dans les procédures...)

Je vous joins mon fichier.

Dans ma Sub "Verif", on but est de vérifier une liste de conditions dans plusieurs fichiers d'un répertoire, et si ces conditions ne sont pas remplies, de répertorier le nom du fichier et son chemin d'accès pour obtenir la liste des fichiers en erreur. Les fichiers à tester commencent tous au même endroit, mais ont un nombre de lignes différent.

Un grand merci d'avance à ceux qui prendront le temps de regarder et de m'expliquer le pourquoi de mon (ou mes) erreur(s).

bonjour,

ta variable subfolder est vide et n'a pas le bon type lors de l'exécution de cette instruction

 Set SourceFolder = Fso.GetFolder(SubFolder)

le paramètre devrait être le nom d'un répertoire (de type string)

après je pense que ceci ne fera pas ce que tu souhaites

"C6" & lignedeb

si lignedeb vaut 10 cela pointera vers la cellule C610, je pense que le 6 est en trop.

tes variables autofin, coldeb, colfin, lignedeb, lignefin ne sont pas initialisées.

Bonjour,

cette erreur intervient lorsque le type de donnée n'est pas celui attendu.

Par exemple une chaine pour une variable numérique.

Déposer ton fichier n'apporte pas grand chose vu qu'il n'y a aucune donnée. Coller le code ici aurait été suffisant.

Tu n'indiques pas la ligne en erreur...

eric

Merci h2so4 ça m'aide.

J'ai modifié mon code, mais ça continue de bloquer avec une erreur d'exécution type 5 à la ligne 12 apparemment...

C'est peut-être trop ambitieux pour mon niveau de débutante

Sub Valid()

Dim onglet As String
Dim Fso As Object
Dim SourceFolder As Object
Dim SubFolder As String

Dim fichier As Object
Dim lignedeb As String
Dim lignefin, autofin, coldeb, colfin As String
Dim i As Long

    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set SourceFolder = Fso.GetFolder(SubFolder) 

    coldeb = Range("coldeb").Value
    colfin = Range("colfin").Value
    lignedeb = Range("lignedeb").Value
    lignefin = Range("lignefin").Value
    onglet = Range("onglet").Value
    autofin = False
    If lignefin = "" Then autofin = True

    ' boucle sur tous les fichiers du répertoire
    For Each fichier In SourceFolder.Files
        'Si le fichier a la bonne extension...
        If Right(fichier. Name, 4) = ".xls" Or Right(fichier. Name, 5) = ".xlsx" Or Right(fichier. Name, 5) = ".xlsm" Or Right(fichier. Name, 4) = ".ods" Then
            If Left(fichier. Name, 2) <> "~$" Then
               Workbooks.Open Filename:=SubFolder & "\" & fichier. Name
         'Si l'onglet s'appelle bien Feuill1
                If Sheets(onglet).Name = "Feuil1" Then
                Sheets(onglet).Select
  'Trouve la dernière ligne remplie du fichier
       Range(coldeb & (lignedeb - 1)).End(xlDown).Select
        If autofin Then lignefin = ActiveCell.Row
  ' sélectionne la région à vérifier
      Range(coldeb & lignedeb & ":" & colfin & lignefin).Select
  'verifie si la colonne est vide
    If Range(coldeb & lignedeb & ":" & colfin & lignefin) <> 0 Or " " Then ActiveWorkbook.Close SaveChanges:=False

                    Else
                   TestListeFichiers
                    'Répertorie l'erreur
                    Cells(i, 6) = "Donnée manquante"
                    ActiveWorkbook.Close SaveChanges:=False
                    End If

        'Si l'onglet ne s'appelle pas Feuill1, renomme-le Feuil1
                Else
               Sheets(onglet).Name = "Feuil1"
               ActiveWorkbook.Close SaveChanges:=True
                End If

        'Si le fichier n'a pas la bonne extension...
        Else
       TestListeFichiers
        'Répertorie l'erreur
      Cells(i, 6) = "Extension du fichier non reconnue"
        ActiveWorkbook.Close SaveChanges:=False

    End If

    Next fichier

End Sub

re-Bonjour,

tu dois initialiser ta variable subfolder.

doit contenir le chemin du répertoire que tu veux examiner. Probablement celui-ci

subfolder = "C:\Users\lebargya\Desktop\TEST\Bon à compiler - 24 JANV"

Set Fso = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = Fso.GetFolder(SubFolder) 

Merci ! ce bug-là est résolu.

Il reste encore plein de bugs (Erreur 1004 à la ligne suivante...) mais je vais essayer de m'y pencher pour voir ce que je peux résoudre.

Merci encore pour ton aide.

Rechercher des sujets similaires à "debutant vba erreur incompatibilite type"