VBA Excel 2003 vs 2007

Résolu/Fermé
Signaler
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
-
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
-
Bonjour à toutes et tous,
J'ai transmis ce code (adapté d'un code trouvé quelque part ici même) à un pote qui utilise Xl2007. Je n'ai que la version 2003 et suis donc dans l'impossibilité de l'aider, la macro fonctionnant très bien chez moi...
Quelqu'un aurait il l'amabilité de regarder et de me dire ce qu'il faut modifier pour que le code fonctionne sous Xl2007?
Merci d'avance
Sub txtenxls()
Dim ScanFic As Office.FileSearch
Dim NomFic As Variant
Dim Nbr As Long
Dim R As Long TB()
Dim i As Integer, j As Integer, k As Integer
Set ScanFic = Application.FileSearch
With ScanFic
.NewSearch
.LookIn = ActiveWorkbook.Path
.SearchSubFolders = True
.Filename = "*.txt"
.MatchTextExactly = True
.FileType = msoFileTypeAllFiles
Nbr = .Execute
For Each NomFic In .FoundFiles
Workbooks.OpenText Filename:=NomFic
      R = RechFind("@", ActiveWorkbook.Name, ActiveSheet.Name, Range("A1:A5000").Address, TB())
    If R > 0 Then
    j = j + R
        For i = 0 To R - 1 ' ou ubound(TB)
            'exemple
            Workbooks("txt en xls.xls").Sheets("Feuil1").Cells(i + j, 2) = Range(TB(i))
        Next i
    End If
ActiveWorkbook.Close
Next
Set ScanFic = Nothing
MsgBox ("Macro terminée, ne reste plus qu'un tri manuel à effectuer...")
End Sub

Le débogage lui indique la ligne en gras.

3 réponses

Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 298
Bonjour,

déjà avant de tester, j'ai la ligne
Dim R As Long TB()
, c'est considéré comme une erreur de syntaxe.

Cordialement.
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 666
Juste parce que je l'ai mal collée... En fait j'ai supprimé des variables (et une virgule) en collant ici.
Dim R As Long, TB()
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 298
Finalement je ne vais pas pouvoir t'aider, je n'ai pas Excel 2007 mais 2010.

Désolé, et bon courage.
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 188
Bonjour,

L'objet FileSearch n'est plus supporté depuis Office 2007.

Tu trouveras ici https://silkyroad.developpez.com/vba/classefilesearch/ un moyen de contourner le problème.

Cdlt

Polux

;o)
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 666
Merci Polux.
Pourquoi n'ai je pas pensé plus tôt à l'ami silkyroad???
Toujours présent quand on a besoin de lui.
Par contre pas facile facile à comprendre.
Je ferais ça ce week end.
Merci encore.
@
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 189
Bonjour,
la fonction FileSearch n'est plus reprise dans le 2007
2 solutions
1 - Ajouter un Add in pour l'avoir avec le 2007 (pas conseillé, il faudra avoir cet addin sur tout les PC qui voudront employer ce classeur)
2 - Refaire la macro avec cette astuce
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 188
Bonjour,

Bien vu lermite ...

;o)
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 666
salut,
merci beaucoup à vous 2.
je me penche là dessus dès lundi.
bon week end