Bonjour,

Je suis novice en matière de VBA excel, ceci est mon tout premier code et j'aimerais savoir si quelqu'un pourrait m'aider pour le problème suivant

Je désire, extraire des variables précises dans un fichier excel constitué de plusieurs feuilles, toutes avec la même structure, et écrire le résultat qui en découle sur une nouvelle feuille.

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
Sub test()
Dim strTri As String
Dim strApp As String
Dim strEqp As String
Dim i As Integer
Dim Ws As Worksheet
Dim Ws2 As Worksheet
 
'Création de la nouvelle feuille
For Each Ws In ActiveWorkbook.Worksheets
       If Ws.Name = "Resultat" Then
           Ws.Delete
           Exit For
       End If
Next
 
Sheets.Add after:=Sheets(7)
ActiveSheet.Name = "Resultat"
 
'Parcours de toutes les feuilles
For Each Ws2 In ActiveWorkbook.Worksheets
'Réinitialisation de i
i = 1
 
'Tant que la cellule n'est pas vide (j'ai moi même mis EOF à la fin de chaque feuille en colonne 1)
 
Do While Ws2.Cells(i, 1).Value <> "EOF"   
'Ignore le traitement si case vide ou contenant la chaine "Nom" (entete colonne)
If Not (IsEmpty(Ws2.Cells(i, 1).Value)) Or Ws2.Cells(i, 1).Value <> "Nom" Then
 
'Copie des valeurs recherchées
strTri = Mid(Ws2.Cells(i, 1).Value, 2, 3)
strApp = Ws2.Cells(i, 4).Value
strEqp = Ws2.Cells(i, 7).Value
 
ActiveSheet.Cells(i, 1) = strTri          'Ecrit dans la nouvelle feuille
ActiveSheet.Cells(i, 2) = strEqp
ActiveSheet.Cells(i, 3) = strApp
 
End If
 
i = i + 1                                            'Passe à la ligne suivante
Loop
Next
End Sub
Lors de l'exécution, pendant un très court instant, je peux voir que ma nouvelle feuille "Résultat" se remplit correctement (au moins sur la 1ère feuille à analyser, je ne peux pas voir pour le reste, le traitement est trop rapide).

J'obtiens une erreur de type "Dépassement de capacité" sur i.
Il semble que ce soit parce que la boucle analyse également la nouvelle feuille juste créée et efface également par dessus... (et n'arrive jamais au EOF puisque la page est auto générée, du coup VBA doit générer cette erreur automatiquement au bout d'un nombre d'itération trop important je pense)

Quelqu'un aurait une solution pour contourner ce problème ?
Je pensais peut-être à écrire sur un nouveau fichier plutôt qu'une nouvelle feuille, mais étant complètement novice dans le domaine ...

Merci d'avance !